Tests: Move to just linefeed to simply cross-platform test changes.
diff --git a/.gitattributes b/.gitattributes
index 3382e82..cade390 100755
--- a/.gitattributes
+++ b/.gitattributes
@@ -12,3 +12,6 @@
 *.c text eof=lf
 *.cpp text eof=lf
 *.y text eof=lf
+*.out text eof=lf
+*.conf text eof=lf
+*.err text eof=lf
diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out
index f468a68..2c39cad 100644
--- a/Test/baseResults/100.frag.out
+++ b/Test/baseResults/100.frag.out
@@ -1,735 +1,735 @@
-100.frag

-ERROR: 0:3: '{ } style initializers' : not supported with this profile: es

-ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions 

-ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions 

-ERROR: 0:3: 'non-constant global initializer' : not supported with this profile: es

-ERROR: 0:4: '#version' : must occur first in shader 

-ERROR: 0:7: 'attribute' : not supported in this stage: fragment

-ERROR: 0:7: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:9: '=' :  cannot convert from 'const int' to 'global mediump float'

-ERROR: 0:11: 'uniform block' : not supported for this version or the enabled extensions 

-ERROR: 0:19: 'foo' : no matching overloaded function found 

-ERROR: 0:20: 'bit shift left' : not supported for this version or the enabled extensions 

-ERROR: 0:21: 'bit shift right' : not supported for this version or the enabled extensions 

-ERROR: 0:22: 'array comparison' : not supported for this version or the enabled extensions 

-ERROR: 0:24: 'bitwise and' : not supported for this version or the enabled extensions 

-ERROR: 0:25: '%' : not supported for this version or the enabled extensions 

-ERROR: 0:26: 'bitwise inclusive or' : not supported for this version or the enabled extensions 

-ERROR: 0:27: 'bit-shift right assign' : not supported for this version or the enabled extensions 

-ERROR: 0:28: 'bit-shift left assign' : not supported for this version or the enabled extensions 

-ERROR: 0:29: '%=' : not supported for this version or the enabled extensions 

-ERROR: 0:36: 'array assignment' : not supported for this version or the enabled extensions 

-ERROR: 0:37: 'array comparison' : not supported for this version or the enabled extensions 

-ERROR: 0:38: 'array comparison' : not supported for this version or the enabled extensions 

-ERROR: 0:40: 'switch' : Reserved word. 

-ERROR: 0:40: 'switch statements' : not supported for this version or the enabled extensions 

-ERROR: 0:45: '' : array size required 

-ERROR: 0:47: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:49: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:50: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:56: 'invariant' : not allowed in nested scope 

-ERROR: 0:56: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:57: 'invariant' : not allowed in nested scope 

-ERROR: 0:57: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:59: 'invariant' : not allowed in nested scope 

-ERROR: 0:59: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:63: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:64: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:66: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: glob2D

-ERROR: 0:69: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: v2D

-ERROR: 0:71: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: vary2D

-ERROR: 0:75: 'in for stage inputs' : not supported for this version or the enabled extensions 

-ERROR: 0:77: 'invariant' : can only apply to an output, or to an input in a non-vertex stage

- 

-ERROR: 0:75: 'g' : cannot use storage or interpolation qualifiers on structure members 

-ERROR: 0:76: 'h' : cannot use storage or interpolation qualifiers on structure members 

-ERROR: 0:77: 'i' : cannot use invariant qualifier on structure members 

-ERROR: 0:80: 'sampler3D' : Reserved word. 

-ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:91: 'dFdx' : required extension not requested: GL_OES_standard_derivatives

-ERROR: 0:92: 'dFdy' : required extension not requested: GL_OES_standard_derivatives

-ERROR: 0:93: 'fwidth' : required extension not requested: GL_OES_standard_derivatives

-ERROR: 0:103: 'gl_FragDepth' : undeclared identifier 

-ERROR: 0:104: 'gl_FragDepthEXT' : required extension not requested: GL_EXT_frag_depth

-ERROR: 0:111: 'gl_FragDepth' : undeclared identifier 

-ERROR: 0:134: 'texture3D' : no matching overloaded function found 

-ERROR: 0:135: 'texture2DProjLod' : no matching overloaded function found 

-ERROR: 0:137: 'bitwise not' : not supported for this version or the enabled extensions 

-ERROR: 0:138: 'bitwise inclusive or' : not supported for this version or the enabled extensions 

-ERROR: 0:139: 'bitwise and' : not supported for this version or the enabled extensions 

-ERROR: 0:145: 'a' : redefinition 

-ERROR: 0:147: 'texture2DProjGradEXT' : required extension not requested: GL_EXT_shader_texture_lod

-ERROR: 0:151: 'floating-point suffix' : not supported for this version or the enabled extensions 

-ERROR: 0:152: 'floating-point suffix' : not supported for this version or the enabled extensions 

-ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2

-ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions 

-ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions 

-ERROR: 0:179: 'fragment-shader struct input' : not supported for this version or the enabled extensions 

-ERROR: 0:183: 'v' : illegal use of type 'void' 

-ERROR: 0:184: 'void' : cannot be an argument type except for '(void)' 

-ERROR: 0:185: 'v' : illegal use of type 'void' 

-ERROR: 0:185: 'void' : cannot be an argument type except for '(void)' 

-ERROR: 0:190: '.' : cannot apply to an array: y

-ERROR: 0:191: '.' : cannot apply to an array: zy

-ERROR: 0:192: '.' : cannot apply to an array: nothing

-ERROR: 0:193: '.length' : not supported for this version or the enabled extensions 

-ERROR: 0:194: '.' : cannot apply to an array: method

-ERROR: 0:194: 'a' : can't use function syntax on variable 

-ERROR: 0:214: 'non-constant global initializer' : not supported with this profile: es

-ERROR: 0:3000: '#error' : line of this error should be 3000  

-ERROR: 0:3002: '' :  syntax error

-ERROR: 78 compilation errors.  No code generated.

-

-

-Shader version: 100

-Requested GL_EXT_frag_depth

-Requested GL_EXT_shader_texture_lod

-Requested GL_OES_EGL_image_external

-Requested GL_OES_standard_derivatives

-Requested GL_OES_texture_3D

-ERROR: node is still EOpNull!

-0:3  Sequence

-0:3    move second child to first child (temp 3-element array of mediump int)

-0:3      'a' (global 3-element array of mediump int)

-0:3      Constant:

-0:3        2 (const int)

-0:3        3 (const int)

-0:3        4 (const int)

-0:17  Function Definition: main( (global void)

-0:17    Function Parameters: 

-0:19    Sequence

-0:19      Constant:

-0:19        0.000000

-0:20      Sequence

-0:20        move second child to first child (temp mediump int)

-0:20          's' (temp mediump int)

-0:20          Constant:

-0:20            16 (const int)

-0:21      move second child to first child (temp mediump int)

-0:21        's' (temp mediump int)

-0:21        Constant:

-0:21          4 (const int)

-0:22      Test condition and select (temp void)

-0:22        Condition

-0:22        Compare Equal (temp bool)

-0:22          'a' (global 3-element array of mediump int)

-0:22          'a' (global 3-element array of mediump int)

-0:22        true case is null

-0:24      move second child to first child (temp mediump int)

-0:24        'b' (temp mediump int)

-0:24        bitwise and (temp mediump int)

-0:24          'c' (temp mediump int)

-0:24          Constant:

-0:24            4 (const int)

-0:25      move second child to first child (temp mediump int)

-0:25        'b' (temp mediump int)

-0:25        mod (temp mediump int)

-0:25          'c' (temp mediump int)

-0:25          Constant:

-0:25            4 (const int)

-0:26      move second child to first child (temp mediump int)

-0:26        'b' (temp mediump int)

-0:26        inclusive-or (temp mediump int)

-0:26          'c' (temp mediump int)

-0:26          Constant:

-0:26            4 (const int)

-0:27      right shift second child into first child (temp mediump int)

-0:27        'b' (temp mediump int)

-0:27        Constant:

-0:27          2 (const int)

-0:28      left shift second child into first child (temp mediump int)

-0:28        'b' (temp mediump int)

-0:28        Constant:

-0:28          2 (const int)

-0:29      mod second child into first child (temp mediump int)

-0:29        'b' (temp mediump int)

-0:29        Constant:

-0:29          3 (const int)

-0:36      move second child to first child (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:36        's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:36        's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:37      Test condition and select (temp void)

-0:37        Condition

-0:37        Compare Equal (temp bool)

-0:37          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:37          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:37        true case is null

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Not Equal (temp bool)

-0:38          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:38          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:38        true case is null

-0:40      'b' (temp mediump int)

-0:54  Function Definition: foo10( (global void)

-0:54    Function Parameters: 

-0:67  Function Definition: f11(s21; (global void)

-0:67    Function Parameters: 

-0:67      'p2d' (in lowp sampler2D)

-0:87  Function Definition: foo234( (global void)

-0:87    Function Parameters: 

-0:89    Sequence

-0:89      texture (global highp 4-component vector of float)

-0:89        's3D2' (uniform highp sampler3D)

-0:89        Constant:

-0:89          0.200000

-0:89          0.200000

-0:89          0.200000

-0:89        Constant:

-0:89          0.200000

-0:90      textureProj (global highp 4-component vector of float)

-0:90        's3D2' (uniform highp sampler3D)

-0:90        direct index (smooth temp mediump 4-component vector of float)

-0:90          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:90          Constant:

-0:90            1 (const int)

-0:90        Constant:

-0:90          0.400000

-0:91      dPdx (global mediump 4-component vector of float)

-0:91        direct index (smooth temp mediump 4-component vector of float)

-0:91          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:91          Constant:

-0:91            0 (const int)

-0:92      Constant:

-0:92        0.000000

-0:93      fwidth (global mediump float)

-0:93        'f13' (invariant global mediump float)

-0:98  Function Definition: foo236( (global void)

-0:98    Function Parameters: 

-0:100    Sequence

-0:100      dPdx (global mediump 4-component vector of float)

-0:100        direct index (smooth temp mediump 4-component vector of float)

-0:100          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:100          Constant:

-0:100            0 (const int)

-0:101      Constant:

-0:101        0.000000

-0:102      fwidth (global mediump float)

-0:102        'f13' (invariant global mediump float)

-0:103      move second child to first child (temp mediump float)

-0:103        'gl_FragDepth' (temp mediump float)

-0:103        'f13' (invariant global mediump float)

-0:104      move second child to first child (temp highp float)

-0:104        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)

-0:104        'f13' (invariant global mediump float)

-0:109  Function Definition: foo239( (global void)

-0:109    Function Parameters: 

-0:111    Sequence

-0:111      move second child to first child (temp mediump float)

-0:111        'gl_FragDepth' (temp mediump float)

-0:111        'f13' (invariant global mediump float)

-0:112      move second child to first child (temp highp float)

-0:112        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)

-0:112        'f13' (invariant global mediump float)

-0:119  Function Definition: foo245( (global void)

-0:119    Function Parameters: 

-0:121    Sequence

-0:121      texture (global lowp 4-component vector of float)

-0:121        'sExt' (uniform lowp samplerExternalOES)

-0:121        Constant:

-0:121          0.200000

-0:121          0.200000

-0:122      textureProj (global lowp 4-component vector of float)

-0:122        'sExt' (uniform lowp samplerExternalOES)

-0:122        Construct vec3 (temp lowp 3-component vector of float)

-0:122          'f13' (invariant global mediump float)

-0:123      textureProj (global lowp 4-component vector of float)

-0:123        'sExt' (uniform lowp samplerExternalOES)

-0:123        direct index (smooth temp mediump 4-component vector of float)

-0:123          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:123          Constant:

-0:123            2 (const int)

-0:130  Function Definition: foo246( (global void)

-0:130    Function Parameters: 

-0:132    Sequence

-0:132      texture (global mediump 4-component vector of float)

-0:132        'mediumExt' (uniform mediump samplerExternalOES)

-0:132        Constant:

-0:132          0.200000

-0:132          0.200000

-0:133      textureProj (global highp 4-component vector of float)

-0:133        'highExt' (uniform highp samplerExternalOES)

-0:133        direct index (smooth temp mediump 4-component vector of float)

-0:133          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:133          Constant:

-0:133            2 (const int)

-0:134      Constant:

-0:134        0.000000

-0:135      Constant:

-0:135        0.000000

-0:137      Bitwise not (temp mediump int)

-0:137        'a' (temp mediump int)

-0:138      inclusive-or (temp mediump int)

-0:138        'a' (temp mediump int)

-0:138        'a' (temp mediump int)

-0:139      bitwise and (temp mediump int)

-0:139        'a' (temp mediump int)

-0:139        'a' (temp mediump int)

-0:145  Function Definition: foo203940(i1;f1;f1; (global mediump int)

-0:145    Function Parameters: 

-0:145      'a' (in mediump int)

-0:145      'b' (in mediump float)

-0:147    Sequence

-0:147      textureProjGrad (global lowp 4-component vector of float)

-0:147        's2Dg' (uniform lowp sampler2D)

-0:147        Construct vec3 (temp mediump 3-component vector of float)

-0:147          'f13' (invariant global mediump float)

-0:147        'uv2' (invariant uniform mediump 2-component vector of float)

-0:147        'uv2' (invariant uniform mediump 2-component vector of float)

-0:148      Branch: Return with expression

-0:148        'a' (in mediump int)

-0:151  Sequence

-0:151    move second child to first child (temp mediump float)

-0:151      'f123' (global mediump float)

-0:151      Constant:

-0:151        4.000000

-0:152  Sequence

-0:152    move second child to first child (temp mediump float)

-0:152      'f124' (global mediump float)

-0:152      Constant:

-0:152        50000000000.000000

-0:158  Function Definition: foo323433( (global void)

-0:158    Function Parameters: 

-0:160    Sequence

-0:160      textureLod (global lowp 4-component vector of float)

-0:160        's2Dg' (uniform lowp sampler2D)

-0:160        'uv2' (invariant uniform mediump 2-component vector of float)

-0:160        'f13' (invariant global mediump float)

-0:161      textureProjGrad (global lowp 4-component vector of float)

-0:161        's2Dg' (uniform lowp sampler2D)

-0:161        Construct vec3 (temp mediump 3-component vector of float)

-0:161          'f13' (invariant global mediump float)

-0:161        'uv2' (invariant uniform mediump 2-component vector of float)

-0:161        'uv2' (invariant uniform mediump 2-component vector of float)

-0:162      textureGrad (global lowp 4-component vector of float)

-0:162        's2Dg' (uniform lowp sampler2D)

-0:162        'uv2' (invariant uniform mediump 2-component vector of float)

-0:162        'uv2' (invariant uniform mediump 2-component vector of float)

-0:162        'uv2' (invariant uniform mediump 2-component vector of float)

-0:163      textureGrad (global lowp 4-component vector of float)

-0:163        'sCube' (uniform lowp samplerCube)

-0:163        Construct vec3 (temp lowp 3-component vector of float)

-0:163          'f13' (invariant global mediump float)

-0:163        Construct vec3 (temp lowp 3-component vector of float)

-0:163          'f13' (invariant global mediump float)

-0:163        Construct vec3 (temp lowp 3-component vector of float)

-0:163          'f13' (invariant global mediump float)

-0:167  Function Definition: fgfg(f1;i1; (global mediump int)

-0:167    Function Parameters: 

-0:167      'f' (in mediump float)

-0:167      'i' (in highp int)

-0:167    Sequence

-0:167      Branch: Return with expression

-0:167        Constant:

-0:167          2 (const int)

-0:173  Function Definition: gggf(f1; (global mediump int)

-0:173    Function Parameters: 

-0:173      'f' (in mediump float)

-0:173    Sequence

-0:173      Branch: Return with expression

-0:173        Constant:

-0:173          2 (const int)

-0:175  Function Definition: agggf(f1; (global mediump int)

-0:175    Function Parameters: 

-0:175      'f' (in mediump float)

-0:175    Sequence

-0:175      Branch: Return with expression

-0:175        Constant:

-0:175          2 (const int)

-0:187  Function Definition: badswizzle( (global void)

-0:187    Function Parameters: 

-0:?     Sequence

-0:190      'a' (temp 5-element array of mediump 3-component vector of float)

-0:191      'a' (temp 5-element array of mediump 3-component vector of float)

-0:192      'a' (temp 5-element array of mediump 3-component vector of float)

-0:193      Constant:

-0:193        5 (const int)

-0:194      Constant:

-0:194        0.000000

-0:199  Function Definition: fooinittest( (global mediump float)

-0:199    Function Parameters: 

-0:201    Sequence

-0:201      Branch: Return with expression

-0:201        Function Call: fooinit( (global mediump float)

-0:209  Function Definition: fooinit( (global mediump float)

-0:209    Function Parameters: 

-0:211    Sequence

-0:211      Branch: Return with expression

-0:211        Constant:

-0:211          12.000000

-0:214  Sequence

-0:214    move second child to first child (temp mediump int)

-0:214      'init1' (global mediump int)

-0:214      Test condition and select (temp mediump int)

-0:214        Condition

-0:214        'gl_FrontFacing' (gl_FrontFacing bool Face)

-0:214        true case

-0:214        Constant:

-0:214          1 (const int)

-0:214        false case

-0:214        Constant:

-0:214          2 (const int)

-0:?   Linker Objects

-0:?     'a' (global 3-element array of mediump int)

-0:?     'uint' (global mediump int)

-0:?     'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:?     'f' (global mediump float)

-0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})

-0:?     'fa' (global implicitly-sized array of mediump float)

-0:?     'f13' (global mediump float)

-0:?     'fi' (invariant temp mediump float)

-0:?     'av' (smooth in mediump 4-component vector of float)

-0:?     'uv2' (uniform mediump 2-component vector of float)

-0:?     'uv3' (invariant uniform mediump 3-component vector of float)

-0:?     'glob2D' (global lowp sampler2D)

-0:?     'vary2D' (smooth in lowp sampler2D)

-0:?     's3D' (uniform mediump sampler3D)

-0:?     's3D2' (uniform highp sampler3D)

-0:?     'sExt' (uniform lowp samplerExternalOES)

-0:?     'mediumExt' (uniform mediump samplerExternalOES)

-0:?     'highExt' (uniform highp samplerExternalOES)

-0:?     's2Dg' (uniform lowp sampler2D)

-0:?     'f123' (global mediump float)

-0:?     'f124' (global mediump float)

-0:?     'sCube' (uniform lowp samplerCube)

-0:?     's' (smooth in structure{global mediump float f})

-0:?     'fi1' (const mediump float)

-0:?       3.000000

-0:?     'fi2' (const mediump float)

-0:?       4.000000

-0:?     'fi3' (const mediump float)

-0:?       5.000000

-0:?     'init1' (global mediump int)

-

-

-Linked fragment stage:

-

-

-Shader version: 100

-Requested GL_EXT_frag_depth

-Requested GL_EXT_shader_texture_lod

-Requested GL_OES_EGL_image_external

-Requested GL_OES_standard_derivatives

-Requested GL_OES_texture_3D

-ERROR: node is still EOpNull!

-0:3  Sequence

-0:3    move second child to first child (temp 3-element array of mediump int)

-0:3      'a' (global 3-element array of mediump int)

-0:3      Constant:

-0:3        2 (const int)

-0:3        3 (const int)

-0:3        4 (const int)

-0:17  Function Definition: main( (global void)

-0:17    Function Parameters: 

-0:19    Sequence

-0:19      Constant:

-0:19        0.000000

-0:20      Sequence

-0:20        move second child to first child (temp mediump int)

-0:20          's' (temp mediump int)

-0:20          Constant:

-0:20            16 (const int)

-0:21      move second child to first child (temp mediump int)

-0:21        's' (temp mediump int)

-0:21        Constant:

-0:21          4 (const int)

-0:22      Test condition and select (temp void)

-0:22        Condition

-0:22        Compare Equal (temp bool)

-0:22          'a' (global 3-element array of mediump int)

-0:22          'a' (global 3-element array of mediump int)

-0:22        true case is null

-0:24      move second child to first child (temp mediump int)

-0:24        'b' (temp mediump int)

-0:24        bitwise and (temp mediump int)

-0:24          'c' (temp mediump int)

-0:24          Constant:

-0:24            4 (const int)

-0:25      move second child to first child (temp mediump int)

-0:25        'b' (temp mediump int)

-0:25        mod (temp mediump int)

-0:25          'c' (temp mediump int)

-0:25          Constant:

-0:25            4 (const int)

-0:26      move second child to first child (temp mediump int)

-0:26        'b' (temp mediump int)

-0:26        inclusive-or (temp mediump int)

-0:26          'c' (temp mediump int)

-0:26          Constant:

-0:26            4 (const int)

-0:27      right shift second child into first child (temp mediump int)

-0:27        'b' (temp mediump int)

-0:27        Constant:

-0:27          2 (const int)

-0:28      left shift second child into first child (temp mediump int)

-0:28        'b' (temp mediump int)

-0:28        Constant:

-0:28          2 (const int)

-0:29      mod second child into first child (temp mediump int)

-0:29        'b' (temp mediump int)

-0:29        Constant:

-0:29          3 (const int)

-0:36      move second child to first child (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:36        's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:36        's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:37      Test condition and select (temp void)

-0:37        Condition

-0:37        Compare Equal (temp bool)

-0:37          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:37          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:37        true case is null

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Not Equal (temp bool)

-0:38          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:38          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})

-0:38        true case is null

-0:40      'b' (temp mediump int)

-0:54  Function Definition: foo10( (global void)

-0:54    Function Parameters: 

-0:67  Function Definition: f11(s21; (global void)

-0:67    Function Parameters: 

-0:67      'p2d' (in lowp sampler2D)

-0:87  Function Definition: foo234( (global void)

-0:87    Function Parameters: 

-0:89    Sequence

-0:89      texture (global highp 4-component vector of float)

-0:89        's3D2' (uniform highp sampler3D)

-0:89        Constant:

-0:89          0.200000

-0:89          0.200000

-0:89          0.200000

-0:89        Constant:

-0:89          0.200000

-0:90      textureProj (global highp 4-component vector of float)

-0:90        's3D2' (uniform highp sampler3D)

-0:90        direct index (smooth temp mediump 4-component vector of float)

-0:90          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:90          Constant:

-0:90            1 (const int)

-0:90        Constant:

-0:90          0.400000

-0:91      dPdx (global mediump 4-component vector of float)

-0:91        direct index (smooth temp mediump 4-component vector of float)

-0:91          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:91          Constant:

-0:91            0 (const int)

-0:92      Constant:

-0:92        0.000000

-0:93      fwidth (global mediump float)

-0:93        'f13' (invariant global mediump float)

-0:98  Function Definition: foo236( (global void)

-0:98    Function Parameters: 

-0:100    Sequence

-0:100      dPdx (global mediump 4-component vector of float)

-0:100        direct index (smooth temp mediump 4-component vector of float)

-0:100          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:100          Constant:

-0:100            0 (const int)

-0:101      Constant:

-0:101        0.000000

-0:102      fwidth (global mediump float)

-0:102        'f13' (invariant global mediump float)

-0:103      move second child to first child (temp mediump float)

-0:103        'gl_FragDepth' (temp mediump float)

-0:103        'f13' (invariant global mediump float)

-0:104      move second child to first child (temp highp float)

-0:104        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)

-0:104        'f13' (invariant global mediump float)

-0:109  Function Definition: foo239( (global void)

-0:109    Function Parameters: 

-0:111    Sequence

-0:111      move second child to first child (temp mediump float)

-0:111        'gl_FragDepth' (temp mediump float)

-0:111        'f13' (invariant global mediump float)

-0:112      move second child to first child (temp highp float)

-0:112        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)

-0:112        'f13' (invariant global mediump float)

-0:119  Function Definition: foo245( (global void)

-0:119    Function Parameters: 

-0:121    Sequence

-0:121      texture (global lowp 4-component vector of float)

-0:121        'sExt' (uniform lowp samplerExternalOES)

-0:121        Constant:

-0:121          0.200000

-0:121          0.200000

-0:122      textureProj (global lowp 4-component vector of float)

-0:122        'sExt' (uniform lowp samplerExternalOES)

-0:122        Construct vec3 (temp lowp 3-component vector of float)

-0:122          'f13' (invariant global mediump float)

-0:123      textureProj (global lowp 4-component vector of float)

-0:123        'sExt' (uniform lowp samplerExternalOES)

-0:123        direct index (smooth temp mediump 4-component vector of float)

-0:123          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:123          Constant:

-0:123            2 (const int)

-0:130  Function Definition: foo246( (global void)

-0:130    Function Parameters: 

-0:132    Sequence

-0:132      texture (global mediump 4-component vector of float)

-0:132        'mediumExt' (uniform mediump samplerExternalOES)

-0:132        Constant:

-0:132          0.200000

-0:132          0.200000

-0:133      textureProj (global highp 4-component vector of float)

-0:133        'highExt' (uniform highp samplerExternalOES)

-0:133        direct index (smooth temp mediump 4-component vector of float)

-0:133          'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:133          Constant:

-0:133            2 (const int)

-0:134      Constant:

-0:134        0.000000

-0:135      Constant:

-0:135        0.000000

-0:137      Bitwise not (temp mediump int)

-0:137        'a' (temp mediump int)

-0:138      inclusive-or (temp mediump int)

-0:138        'a' (temp mediump int)

-0:138        'a' (temp mediump int)

-0:139      bitwise and (temp mediump int)

-0:139        'a' (temp mediump int)

-0:139        'a' (temp mediump int)

-0:145  Function Definition: foo203940(i1;f1;f1; (global mediump int)

-0:145    Function Parameters: 

-0:145      'a' (in mediump int)

-0:145      'b' (in mediump float)

-0:147    Sequence

-0:147      textureProjGrad (global lowp 4-component vector of float)

-0:147        's2Dg' (uniform lowp sampler2D)

-0:147        Construct vec3 (temp mediump 3-component vector of float)

-0:147          'f13' (invariant global mediump float)

-0:147        'uv2' (invariant uniform mediump 2-component vector of float)

-0:147        'uv2' (invariant uniform mediump 2-component vector of float)

-0:148      Branch: Return with expression

-0:148        'a' (in mediump int)

-0:151  Sequence

-0:151    move second child to first child (temp mediump float)

-0:151      'f123' (global mediump float)

-0:151      Constant:

-0:151        4.000000

-0:152  Sequence

-0:152    move second child to first child (temp mediump float)

-0:152      'f124' (global mediump float)

-0:152      Constant:

-0:152        50000000000.000000

-0:158  Function Definition: foo323433( (global void)

-0:158    Function Parameters: 

-0:160    Sequence

-0:160      textureLod (global lowp 4-component vector of float)

-0:160        's2Dg' (uniform lowp sampler2D)

-0:160        'uv2' (invariant uniform mediump 2-component vector of float)

-0:160        'f13' (invariant global mediump float)

-0:161      textureProjGrad (global lowp 4-component vector of float)

-0:161        's2Dg' (uniform lowp sampler2D)

-0:161        Construct vec3 (temp mediump 3-component vector of float)

-0:161          'f13' (invariant global mediump float)

-0:161        'uv2' (invariant uniform mediump 2-component vector of float)

-0:161        'uv2' (invariant uniform mediump 2-component vector of float)

-0:162      textureGrad (global lowp 4-component vector of float)

-0:162        's2Dg' (uniform lowp sampler2D)

-0:162        'uv2' (invariant uniform mediump 2-component vector of float)

-0:162        'uv2' (invariant uniform mediump 2-component vector of float)

-0:162        'uv2' (invariant uniform mediump 2-component vector of float)

-0:163      textureGrad (global lowp 4-component vector of float)

-0:163        'sCube' (uniform lowp samplerCube)

-0:163        Construct vec3 (temp lowp 3-component vector of float)

-0:163          'f13' (invariant global mediump float)

-0:163        Construct vec3 (temp lowp 3-component vector of float)

-0:163          'f13' (invariant global mediump float)

-0:163        Construct vec3 (temp lowp 3-component vector of float)

-0:163          'f13' (invariant global mediump float)

-0:167  Function Definition: fgfg(f1;i1; (global mediump int)

-0:167    Function Parameters: 

-0:167      'f' (in mediump float)

-0:167      'i' (in highp int)

-0:167    Sequence

-0:167      Branch: Return with expression

-0:167        Constant:

-0:167          2 (const int)

-0:173  Function Definition: gggf(f1; (global mediump int)

-0:173    Function Parameters: 

-0:173      'f' (in mediump float)

-0:173    Sequence

-0:173      Branch: Return with expression

-0:173        Constant:

-0:173          2 (const int)

-0:175  Function Definition: agggf(f1; (global mediump int)

-0:175    Function Parameters: 

-0:175      'f' (in mediump float)

-0:175    Sequence

-0:175      Branch: Return with expression

-0:175        Constant:

-0:175          2 (const int)

-0:187  Function Definition: badswizzle( (global void)

-0:187    Function Parameters: 

-0:?     Sequence

-0:190      'a' (temp 5-element array of mediump 3-component vector of float)

-0:191      'a' (temp 5-element array of mediump 3-component vector of float)

-0:192      'a' (temp 5-element array of mediump 3-component vector of float)

-0:193      Constant:

-0:193        5 (const int)

-0:194      Constant:

-0:194        0.000000

-0:199  Function Definition: fooinittest( (global mediump float)

-0:199    Function Parameters: 

-0:201    Sequence

-0:201      Branch: Return with expression

-0:201        Function Call: fooinit( (global mediump float)

-0:209  Function Definition: fooinit( (global mediump float)

-0:209    Function Parameters: 

-0:211    Sequence

-0:211      Branch: Return with expression

-0:211        Constant:

-0:211          12.000000

-0:214  Sequence

-0:214    move second child to first child (temp mediump int)

-0:214      'init1' (global mediump int)

-0:214      Test condition and select (temp mediump int)

-0:214        Condition

-0:214        'gl_FrontFacing' (gl_FrontFacing bool Face)

-0:214        true case

-0:214        Constant:

-0:214          1 (const int)

-0:214        false case

-0:214        Constant:

-0:214          2 (const int)

-0:?   Linker Objects

-0:?     'a' (global 3-element array of mediump int)

-0:?     'uint' (global mediump int)

-0:?     'v' (smooth in 3-element array of mediump 4-component vector of float)

-0:?     'f' (global mediump float)

-0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})

-0:?     'fa' (global 1-element array of mediump float)

-0:?     'f13' (global mediump float)

-0:?     'fi' (invariant temp mediump float)

-0:?     'av' (smooth in mediump 4-component vector of float)

-0:?     'uv2' (uniform mediump 2-component vector of float)

-0:?     'uv3' (invariant uniform mediump 3-component vector of float)

-0:?     'glob2D' (global lowp sampler2D)

-0:?     'vary2D' (smooth in lowp sampler2D)

-0:?     's3D' (uniform mediump sampler3D)

-0:?     's3D2' (uniform highp sampler3D)

-0:?     'sExt' (uniform lowp samplerExternalOES)

-0:?     'mediumExt' (uniform mediump samplerExternalOES)

-0:?     'highExt' (uniform highp samplerExternalOES)

-0:?     's2Dg' (uniform lowp sampler2D)

-0:?     'f123' (global mediump float)

-0:?     'f124' (global mediump float)

-0:?     'sCube' (uniform lowp samplerCube)

-0:?     's' (smooth in structure{global mediump float f})

-0:?     'fi1' (const mediump float)

-0:?       3.000000

-0:?     'fi2' (const mediump float)

-0:?       4.000000

-0:?     'fi3' (const mediump float)

-0:?       5.000000

-0:?     'init1' (global mediump int)

-

+100.frag
+ERROR: 0:3: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions 
+ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions 
+ERROR: 0:3: 'non-constant global initializer' : not supported with this profile: es
+ERROR: 0:4: '#version' : must occur first in shader 
+ERROR: 0:7: 'attribute' : not supported in this stage: fragment
+ERROR: 0:7: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:9: '=' :  cannot convert from 'const int' to 'global mediump float'
+ERROR: 0:11: 'uniform block' : not supported for this version or the enabled extensions 
+ERROR: 0:19: 'foo' : no matching overloaded function found 
+ERROR: 0:20: 'bit shift left' : not supported for this version or the enabled extensions 
+ERROR: 0:21: 'bit shift right' : not supported for this version or the enabled extensions 
+ERROR: 0:22: 'array comparison' : not supported for this version or the enabled extensions 
+ERROR: 0:24: 'bitwise and' : not supported for this version or the enabled extensions 
+ERROR: 0:25: '%' : not supported for this version or the enabled extensions 
+ERROR: 0:26: 'bitwise inclusive or' : not supported for this version or the enabled extensions 
+ERROR: 0:27: 'bit-shift right assign' : not supported for this version or the enabled extensions 
+ERROR: 0:28: 'bit-shift left assign' : not supported for this version or the enabled extensions 
+ERROR: 0:29: '%=' : not supported for this version or the enabled extensions 
+ERROR: 0:36: 'array assignment' : not supported for this version or the enabled extensions 
+ERROR: 0:37: 'array comparison' : not supported for this version or the enabled extensions 
+ERROR: 0:38: 'array comparison' : not supported for this version or the enabled extensions 
+ERROR: 0:40: 'switch' : Reserved word. 
+ERROR: 0:40: 'switch statements' : not supported for this version or the enabled extensions 
+ERROR: 0:45: '' : array size required 
+ERROR: 0:47: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:49: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:50: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:56: 'invariant' : not allowed in nested scope 
+ERROR: 0:56: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:57: 'invariant' : not allowed in nested scope 
+ERROR: 0:57: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:59: 'invariant' : not allowed in nested scope 
+ERROR: 0:59: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:63: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:64: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:66: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: glob2D
+ERROR: 0:69: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: v2D
+ERROR: 0:71: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: vary2D
+ERROR: 0:75: 'in for stage inputs' : not supported for this version or the enabled extensions 
+ERROR: 0:77: 'invariant' : can only apply to an output, or to an input in a non-vertex stage
+ 
+ERROR: 0:75: 'g' : cannot use storage or interpolation qualifiers on structure members 
+ERROR: 0:76: 'h' : cannot use storage or interpolation qualifiers on structure members 
+ERROR: 0:77: 'i' : cannot use invariant qualifier on structure members 
+ERROR: 0:80: 'sampler3D' : Reserved word. 
+ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:91: 'dFdx' : required extension not requested: GL_OES_standard_derivatives
+ERROR: 0:92: 'dFdy' : required extension not requested: GL_OES_standard_derivatives
+ERROR: 0:93: 'fwidth' : required extension not requested: GL_OES_standard_derivatives
+ERROR: 0:103: 'gl_FragDepth' : undeclared identifier 
+ERROR: 0:104: 'gl_FragDepthEXT' : required extension not requested: GL_EXT_frag_depth
+ERROR: 0:111: 'gl_FragDepth' : undeclared identifier 
+ERROR: 0:134: 'texture3D' : no matching overloaded function found 
+ERROR: 0:135: 'texture2DProjLod' : no matching overloaded function found 
+ERROR: 0:137: 'bitwise not' : not supported for this version or the enabled extensions 
+ERROR: 0:138: 'bitwise inclusive or' : not supported for this version or the enabled extensions 
+ERROR: 0:139: 'bitwise and' : not supported for this version or the enabled extensions 
+ERROR: 0:145: 'a' : redefinition 
+ERROR: 0:147: 'texture2DProjGradEXT' : required extension not requested: GL_EXT_shader_texture_lod
+ERROR: 0:151: 'floating-point suffix' : not supported for this version or the enabled extensions 
+ERROR: 0:152: 'floating-point suffix' : not supported for this version or the enabled extensions 
+ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2
+ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions 
+ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions 
+ERROR: 0:179: 'fragment-shader struct input' : not supported for this version or the enabled extensions 
+ERROR: 0:183: 'v' : illegal use of type 'void' 
+ERROR: 0:184: 'void' : cannot be an argument type except for '(void)' 
+ERROR: 0:185: 'v' : illegal use of type 'void' 
+ERROR: 0:185: 'void' : cannot be an argument type except for '(void)' 
+ERROR: 0:190: '.' : cannot apply to an array: y
+ERROR: 0:191: '.' : cannot apply to an array: zy
+ERROR: 0:192: '.' : cannot apply to an array: nothing
+ERROR: 0:193: '.length' : not supported for this version or the enabled extensions 
+ERROR: 0:194: '.' : cannot apply to an array: method
+ERROR: 0:194: 'a' : can't use function syntax on variable 
+ERROR: 0:214: 'non-constant global initializer' : not supported with this profile: es
+ERROR: 0:3000: '#error' : line of this error should be 3000  
+ERROR: 0:3002: '' :  syntax error
+ERROR: 78 compilation errors.  No code generated.
+
+
+Shader version: 100
+Requested GL_EXT_frag_depth
+Requested GL_EXT_shader_texture_lod
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+ERROR: node is still EOpNull!
+0:3  Sequence
+0:3    move second child to first child (temp 3-element array of mediump int)
+0:3      'a' (global 3-element array of mediump int)
+0:3      Constant:
+0:3        2 (const int)
+0:3        3 (const int)
+0:3        4 (const int)
+0:17  Function Definition: main( (global void)
+0:17    Function Parameters: 
+0:19    Sequence
+0:19      Constant:
+0:19        0.000000
+0:20      Sequence
+0:20        move second child to first child (temp mediump int)
+0:20          's' (temp mediump int)
+0:20          Constant:
+0:20            16 (const int)
+0:21      move second child to first child (temp mediump int)
+0:21        's' (temp mediump int)
+0:21        Constant:
+0:21          4 (const int)
+0:22      Test condition and select (temp void)
+0:22        Condition
+0:22        Compare Equal (temp bool)
+0:22          'a' (global 3-element array of mediump int)
+0:22          'a' (global 3-element array of mediump int)
+0:22        true case is null
+0:24      move second child to first child (temp mediump int)
+0:24        'b' (temp mediump int)
+0:24        bitwise and (temp mediump int)
+0:24          'c' (temp mediump int)
+0:24          Constant:
+0:24            4 (const int)
+0:25      move second child to first child (temp mediump int)
+0:25        'b' (temp mediump int)
+0:25        mod (temp mediump int)
+0:25          'c' (temp mediump int)
+0:25          Constant:
+0:25            4 (const int)
+0:26      move second child to first child (temp mediump int)
+0:26        'b' (temp mediump int)
+0:26        inclusive-or (temp mediump int)
+0:26          'c' (temp mediump int)
+0:26          Constant:
+0:26            4 (const int)
+0:27      right shift second child into first child (temp mediump int)
+0:27        'b' (temp mediump int)
+0:27        Constant:
+0:27          2 (const int)
+0:28      left shift second child into first child (temp mediump int)
+0:28        'b' (temp mediump int)
+0:28        Constant:
+0:28          2 (const int)
+0:29      mod second child into first child (temp mediump int)
+0:29        'b' (temp mediump int)
+0:29        Constant:
+0:29          3 (const int)
+0:36      move second child to first child (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36        's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36        's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37      Test condition and select (temp void)
+0:37        Condition
+0:37        Compare Equal (temp bool)
+0:37          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37        true case is null
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Not Equal (temp bool)
+0:38          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38        true case is null
+0:40      'b' (temp mediump int)
+0:54  Function Definition: foo10( (global void)
+0:54    Function Parameters: 
+0:67  Function Definition: f11(s21; (global void)
+0:67    Function Parameters: 
+0:67      'p2d' (in lowp sampler2D)
+0:87  Function Definition: foo234( (global void)
+0:87    Function Parameters: 
+0:89    Sequence
+0:89      texture (global highp 4-component vector of float)
+0:89        's3D2' (uniform highp sampler3D)
+0:89        Constant:
+0:89          0.200000
+0:89          0.200000
+0:89          0.200000
+0:89        Constant:
+0:89          0.200000
+0:90      textureProj (global highp 4-component vector of float)
+0:90        's3D2' (uniform highp sampler3D)
+0:90        direct index (smooth temp mediump 4-component vector of float)
+0:90          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:90          Constant:
+0:90            1 (const int)
+0:90        Constant:
+0:90          0.400000
+0:91      dPdx (global mediump 4-component vector of float)
+0:91        direct index (smooth temp mediump 4-component vector of float)
+0:91          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:91          Constant:
+0:91            0 (const int)
+0:92      Constant:
+0:92        0.000000
+0:93      fwidth (global mediump float)
+0:93        'f13' (invariant global mediump float)
+0:98  Function Definition: foo236( (global void)
+0:98    Function Parameters: 
+0:100    Sequence
+0:100      dPdx (global mediump 4-component vector of float)
+0:100        direct index (smooth temp mediump 4-component vector of float)
+0:100          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:100          Constant:
+0:100            0 (const int)
+0:101      Constant:
+0:101        0.000000
+0:102      fwidth (global mediump float)
+0:102        'f13' (invariant global mediump float)
+0:103      move second child to first child (temp mediump float)
+0:103        'gl_FragDepth' (temp mediump float)
+0:103        'f13' (invariant global mediump float)
+0:104      move second child to first child (temp highp float)
+0:104        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:104        'f13' (invariant global mediump float)
+0:109  Function Definition: foo239( (global void)
+0:109    Function Parameters: 
+0:111    Sequence
+0:111      move second child to first child (temp mediump float)
+0:111        'gl_FragDepth' (temp mediump float)
+0:111        'f13' (invariant global mediump float)
+0:112      move second child to first child (temp highp float)
+0:112        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:112        'f13' (invariant global mediump float)
+0:119  Function Definition: foo245( (global void)
+0:119    Function Parameters: 
+0:121    Sequence
+0:121      texture (global lowp 4-component vector of float)
+0:121        'sExt' (uniform lowp samplerExternalOES)
+0:121        Constant:
+0:121          0.200000
+0:121          0.200000
+0:122      textureProj (global lowp 4-component vector of float)
+0:122        'sExt' (uniform lowp samplerExternalOES)
+0:122        Construct vec3 (temp lowp 3-component vector of float)
+0:122          'f13' (invariant global mediump float)
+0:123      textureProj (global lowp 4-component vector of float)
+0:123        'sExt' (uniform lowp samplerExternalOES)
+0:123        direct index (smooth temp mediump 4-component vector of float)
+0:123          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:123          Constant:
+0:123            2 (const int)
+0:130  Function Definition: foo246( (global void)
+0:130    Function Parameters: 
+0:132    Sequence
+0:132      texture (global mediump 4-component vector of float)
+0:132        'mediumExt' (uniform mediump samplerExternalOES)
+0:132        Constant:
+0:132          0.200000
+0:132          0.200000
+0:133      textureProj (global highp 4-component vector of float)
+0:133        'highExt' (uniform highp samplerExternalOES)
+0:133        direct index (smooth temp mediump 4-component vector of float)
+0:133          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:133          Constant:
+0:133            2 (const int)
+0:134      Constant:
+0:134        0.000000
+0:135      Constant:
+0:135        0.000000
+0:137      Bitwise not (temp mediump int)
+0:137        'a' (temp mediump int)
+0:138      inclusive-or (temp mediump int)
+0:138        'a' (temp mediump int)
+0:138        'a' (temp mediump int)
+0:139      bitwise and (temp mediump int)
+0:139        'a' (temp mediump int)
+0:139        'a' (temp mediump int)
+0:145  Function Definition: foo203940(i1;f1;f1; (global mediump int)
+0:145    Function Parameters: 
+0:145      'a' (in mediump int)
+0:145      'b' (in mediump float)
+0:147    Sequence
+0:147      textureProjGrad (global lowp 4-component vector of float)
+0:147        's2Dg' (uniform lowp sampler2D)
+0:147        Construct vec3 (temp mediump 3-component vector of float)
+0:147          'f13' (invariant global mediump float)
+0:147        'uv2' (invariant uniform mediump 2-component vector of float)
+0:147        'uv2' (invariant uniform mediump 2-component vector of float)
+0:148      Branch: Return with expression
+0:148        'a' (in mediump int)
+0:151  Sequence
+0:151    move second child to first child (temp mediump float)
+0:151      'f123' (global mediump float)
+0:151      Constant:
+0:151        4.000000
+0:152  Sequence
+0:152    move second child to first child (temp mediump float)
+0:152      'f124' (global mediump float)
+0:152      Constant:
+0:152        50000000000.000000
+0:158  Function Definition: foo323433( (global void)
+0:158    Function Parameters: 
+0:160    Sequence
+0:160      textureLod (global lowp 4-component vector of float)
+0:160        's2Dg' (uniform lowp sampler2D)
+0:160        'uv2' (invariant uniform mediump 2-component vector of float)
+0:160        'f13' (invariant global mediump float)
+0:161      textureProjGrad (global lowp 4-component vector of float)
+0:161        's2Dg' (uniform lowp sampler2D)
+0:161        Construct vec3 (temp mediump 3-component vector of float)
+0:161          'f13' (invariant global mediump float)
+0:161        'uv2' (invariant uniform mediump 2-component vector of float)
+0:161        'uv2' (invariant uniform mediump 2-component vector of float)
+0:162      textureGrad (global lowp 4-component vector of float)
+0:162        's2Dg' (uniform lowp sampler2D)
+0:162        'uv2' (invariant uniform mediump 2-component vector of float)
+0:162        'uv2' (invariant uniform mediump 2-component vector of float)
+0:162        'uv2' (invariant uniform mediump 2-component vector of float)
+0:163      textureGrad (global lowp 4-component vector of float)
+0:163        'sCube' (uniform lowp samplerCube)
+0:163        Construct vec3 (temp lowp 3-component vector of float)
+0:163          'f13' (invariant global mediump float)
+0:163        Construct vec3 (temp lowp 3-component vector of float)
+0:163          'f13' (invariant global mediump float)
+0:163        Construct vec3 (temp lowp 3-component vector of float)
+0:163          'f13' (invariant global mediump float)
+0:167  Function Definition: fgfg(f1;i1; (global mediump int)
+0:167    Function Parameters: 
+0:167      'f' (in mediump float)
+0:167      'i' (in highp int)
+0:167    Sequence
+0:167      Branch: Return with expression
+0:167        Constant:
+0:167          2 (const int)
+0:173  Function Definition: gggf(f1; (global mediump int)
+0:173    Function Parameters: 
+0:173      'f' (in mediump float)
+0:173    Sequence
+0:173      Branch: Return with expression
+0:173        Constant:
+0:173          2 (const int)
+0:175  Function Definition: agggf(f1; (global mediump int)
+0:175    Function Parameters: 
+0:175      'f' (in mediump float)
+0:175    Sequence
+0:175      Branch: Return with expression
+0:175        Constant:
+0:175          2 (const int)
+0:187  Function Definition: badswizzle( (global void)
+0:187    Function Parameters: 
+0:?     Sequence
+0:190      'a' (temp 5-element array of mediump 3-component vector of float)
+0:191      'a' (temp 5-element array of mediump 3-component vector of float)
+0:192      'a' (temp 5-element array of mediump 3-component vector of float)
+0:193      Constant:
+0:193        5 (const int)
+0:194      Constant:
+0:194        0.000000
+0:199  Function Definition: fooinittest( (global mediump float)
+0:199    Function Parameters: 
+0:201    Sequence
+0:201      Branch: Return with expression
+0:201        Function Call: fooinit( (global mediump float)
+0:209  Function Definition: fooinit( (global mediump float)
+0:209    Function Parameters: 
+0:211    Sequence
+0:211      Branch: Return with expression
+0:211        Constant:
+0:211          12.000000
+0:214  Sequence
+0:214    move second child to first child (temp mediump int)
+0:214      'init1' (global mediump int)
+0:214      Test condition and select (temp mediump int)
+0:214        Condition
+0:214        'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:214        true case
+0:214        Constant:
+0:214          1 (const int)
+0:214        false case
+0:214        Constant:
+0:214          2 (const int)
+0:?   Linker Objects
+0:?     'a' (global 3-element array of mediump int)
+0:?     'uint' (global mediump int)
+0:?     'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:?     'f' (global mediump float)
+0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})
+0:?     'fa' (global implicitly-sized array of mediump float)
+0:?     'f13' (global mediump float)
+0:?     'fi' (invariant temp mediump float)
+0:?     'av' (smooth in mediump 4-component vector of float)
+0:?     'uv2' (uniform mediump 2-component vector of float)
+0:?     'uv3' (invariant uniform mediump 3-component vector of float)
+0:?     'glob2D' (global lowp sampler2D)
+0:?     'vary2D' (smooth in lowp sampler2D)
+0:?     's3D' (uniform mediump sampler3D)
+0:?     's3D2' (uniform highp sampler3D)
+0:?     'sExt' (uniform lowp samplerExternalOES)
+0:?     'mediumExt' (uniform mediump samplerExternalOES)
+0:?     'highExt' (uniform highp samplerExternalOES)
+0:?     's2Dg' (uniform lowp sampler2D)
+0:?     'f123' (global mediump float)
+0:?     'f124' (global mediump float)
+0:?     'sCube' (uniform lowp samplerCube)
+0:?     's' (smooth in structure{global mediump float f})
+0:?     'fi1' (const mediump float)
+0:?       3.000000
+0:?     'fi2' (const mediump float)
+0:?       4.000000
+0:?     'fi3' (const mediump float)
+0:?       5.000000
+0:?     'init1' (global mediump int)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+Requested GL_EXT_frag_depth
+Requested GL_EXT_shader_texture_lod
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+ERROR: node is still EOpNull!
+0:3  Sequence
+0:3    move second child to first child (temp 3-element array of mediump int)
+0:3      'a' (global 3-element array of mediump int)
+0:3      Constant:
+0:3        2 (const int)
+0:3        3 (const int)
+0:3        4 (const int)
+0:17  Function Definition: main( (global void)
+0:17    Function Parameters: 
+0:19    Sequence
+0:19      Constant:
+0:19        0.000000
+0:20      Sequence
+0:20        move second child to first child (temp mediump int)
+0:20          's' (temp mediump int)
+0:20          Constant:
+0:20            16 (const int)
+0:21      move second child to first child (temp mediump int)
+0:21        's' (temp mediump int)
+0:21        Constant:
+0:21          4 (const int)
+0:22      Test condition and select (temp void)
+0:22        Condition
+0:22        Compare Equal (temp bool)
+0:22          'a' (global 3-element array of mediump int)
+0:22          'a' (global 3-element array of mediump int)
+0:22        true case is null
+0:24      move second child to first child (temp mediump int)
+0:24        'b' (temp mediump int)
+0:24        bitwise and (temp mediump int)
+0:24          'c' (temp mediump int)
+0:24          Constant:
+0:24            4 (const int)
+0:25      move second child to first child (temp mediump int)
+0:25        'b' (temp mediump int)
+0:25        mod (temp mediump int)
+0:25          'c' (temp mediump int)
+0:25          Constant:
+0:25            4 (const int)
+0:26      move second child to first child (temp mediump int)
+0:26        'b' (temp mediump int)
+0:26        inclusive-or (temp mediump int)
+0:26          'c' (temp mediump int)
+0:26          Constant:
+0:26            4 (const int)
+0:27      right shift second child into first child (temp mediump int)
+0:27        'b' (temp mediump int)
+0:27        Constant:
+0:27          2 (const int)
+0:28      left shift second child into first child (temp mediump int)
+0:28        'b' (temp mediump int)
+0:28        Constant:
+0:28          2 (const int)
+0:29      mod second child into first child (temp mediump int)
+0:29        'b' (temp mediump int)
+0:29        Constant:
+0:29          3 (const int)
+0:36      move second child to first child (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36        's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:36        's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37      Test condition and select (temp void)
+0:37        Condition
+0:37        Compare Equal (temp bool)
+0:37          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:37        true case is null
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Not Equal (temp bool)
+0:38          's1' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38          's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a})
+0:38        true case is null
+0:40      'b' (temp mediump int)
+0:54  Function Definition: foo10( (global void)
+0:54    Function Parameters: 
+0:67  Function Definition: f11(s21; (global void)
+0:67    Function Parameters: 
+0:67      'p2d' (in lowp sampler2D)
+0:87  Function Definition: foo234( (global void)
+0:87    Function Parameters: 
+0:89    Sequence
+0:89      texture (global highp 4-component vector of float)
+0:89        's3D2' (uniform highp sampler3D)
+0:89        Constant:
+0:89          0.200000
+0:89          0.200000
+0:89          0.200000
+0:89        Constant:
+0:89          0.200000
+0:90      textureProj (global highp 4-component vector of float)
+0:90        's3D2' (uniform highp sampler3D)
+0:90        direct index (smooth temp mediump 4-component vector of float)
+0:90          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:90          Constant:
+0:90            1 (const int)
+0:90        Constant:
+0:90          0.400000
+0:91      dPdx (global mediump 4-component vector of float)
+0:91        direct index (smooth temp mediump 4-component vector of float)
+0:91          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:91          Constant:
+0:91            0 (const int)
+0:92      Constant:
+0:92        0.000000
+0:93      fwidth (global mediump float)
+0:93        'f13' (invariant global mediump float)
+0:98  Function Definition: foo236( (global void)
+0:98    Function Parameters: 
+0:100    Sequence
+0:100      dPdx (global mediump 4-component vector of float)
+0:100        direct index (smooth temp mediump 4-component vector of float)
+0:100          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:100          Constant:
+0:100            0 (const int)
+0:101      Constant:
+0:101        0.000000
+0:102      fwidth (global mediump float)
+0:102        'f13' (invariant global mediump float)
+0:103      move second child to first child (temp mediump float)
+0:103        'gl_FragDepth' (temp mediump float)
+0:103        'f13' (invariant global mediump float)
+0:104      move second child to first child (temp highp float)
+0:104        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:104        'f13' (invariant global mediump float)
+0:109  Function Definition: foo239( (global void)
+0:109    Function Parameters: 
+0:111    Sequence
+0:111      move second child to first child (temp mediump float)
+0:111        'gl_FragDepth' (temp mediump float)
+0:111        'f13' (invariant global mediump float)
+0:112      move second child to first child (temp highp float)
+0:112        'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth)
+0:112        'f13' (invariant global mediump float)
+0:119  Function Definition: foo245( (global void)
+0:119    Function Parameters: 
+0:121    Sequence
+0:121      texture (global lowp 4-component vector of float)
+0:121        'sExt' (uniform lowp samplerExternalOES)
+0:121        Constant:
+0:121          0.200000
+0:121          0.200000
+0:122      textureProj (global lowp 4-component vector of float)
+0:122        'sExt' (uniform lowp samplerExternalOES)
+0:122        Construct vec3 (temp lowp 3-component vector of float)
+0:122          'f13' (invariant global mediump float)
+0:123      textureProj (global lowp 4-component vector of float)
+0:123        'sExt' (uniform lowp samplerExternalOES)
+0:123        direct index (smooth temp mediump 4-component vector of float)
+0:123          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:123          Constant:
+0:123            2 (const int)
+0:130  Function Definition: foo246( (global void)
+0:130    Function Parameters: 
+0:132    Sequence
+0:132      texture (global mediump 4-component vector of float)
+0:132        'mediumExt' (uniform mediump samplerExternalOES)
+0:132        Constant:
+0:132          0.200000
+0:132          0.200000
+0:133      textureProj (global highp 4-component vector of float)
+0:133        'highExt' (uniform highp samplerExternalOES)
+0:133        direct index (smooth temp mediump 4-component vector of float)
+0:133          'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:133          Constant:
+0:133            2 (const int)
+0:134      Constant:
+0:134        0.000000
+0:135      Constant:
+0:135        0.000000
+0:137      Bitwise not (temp mediump int)
+0:137        'a' (temp mediump int)
+0:138      inclusive-or (temp mediump int)
+0:138        'a' (temp mediump int)
+0:138        'a' (temp mediump int)
+0:139      bitwise and (temp mediump int)
+0:139        'a' (temp mediump int)
+0:139        'a' (temp mediump int)
+0:145  Function Definition: foo203940(i1;f1;f1; (global mediump int)
+0:145    Function Parameters: 
+0:145      'a' (in mediump int)
+0:145      'b' (in mediump float)
+0:147    Sequence
+0:147      textureProjGrad (global lowp 4-component vector of float)
+0:147        's2Dg' (uniform lowp sampler2D)
+0:147        Construct vec3 (temp mediump 3-component vector of float)
+0:147          'f13' (invariant global mediump float)
+0:147        'uv2' (invariant uniform mediump 2-component vector of float)
+0:147        'uv2' (invariant uniform mediump 2-component vector of float)
+0:148      Branch: Return with expression
+0:148        'a' (in mediump int)
+0:151  Sequence
+0:151    move second child to first child (temp mediump float)
+0:151      'f123' (global mediump float)
+0:151      Constant:
+0:151        4.000000
+0:152  Sequence
+0:152    move second child to first child (temp mediump float)
+0:152      'f124' (global mediump float)
+0:152      Constant:
+0:152        50000000000.000000
+0:158  Function Definition: foo323433( (global void)
+0:158    Function Parameters: 
+0:160    Sequence
+0:160      textureLod (global lowp 4-component vector of float)
+0:160        's2Dg' (uniform lowp sampler2D)
+0:160        'uv2' (invariant uniform mediump 2-component vector of float)
+0:160        'f13' (invariant global mediump float)
+0:161      textureProjGrad (global lowp 4-component vector of float)
+0:161        's2Dg' (uniform lowp sampler2D)
+0:161        Construct vec3 (temp mediump 3-component vector of float)
+0:161          'f13' (invariant global mediump float)
+0:161        'uv2' (invariant uniform mediump 2-component vector of float)
+0:161        'uv2' (invariant uniform mediump 2-component vector of float)
+0:162      textureGrad (global lowp 4-component vector of float)
+0:162        's2Dg' (uniform lowp sampler2D)
+0:162        'uv2' (invariant uniform mediump 2-component vector of float)
+0:162        'uv2' (invariant uniform mediump 2-component vector of float)
+0:162        'uv2' (invariant uniform mediump 2-component vector of float)
+0:163      textureGrad (global lowp 4-component vector of float)
+0:163        'sCube' (uniform lowp samplerCube)
+0:163        Construct vec3 (temp lowp 3-component vector of float)
+0:163          'f13' (invariant global mediump float)
+0:163        Construct vec3 (temp lowp 3-component vector of float)
+0:163          'f13' (invariant global mediump float)
+0:163        Construct vec3 (temp lowp 3-component vector of float)
+0:163          'f13' (invariant global mediump float)
+0:167  Function Definition: fgfg(f1;i1; (global mediump int)
+0:167    Function Parameters: 
+0:167      'f' (in mediump float)
+0:167      'i' (in highp int)
+0:167    Sequence
+0:167      Branch: Return with expression
+0:167        Constant:
+0:167          2 (const int)
+0:173  Function Definition: gggf(f1; (global mediump int)
+0:173    Function Parameters: 
+0:173      'f' (in mediump float)
+0:173    Sequence
+0:173      Branch: Return with expression
+0:173        Constant:
+0:173          2 (const int)
+0:175  Function Definition: agggf(f1; (global mediump int)
+0:175    Function Parameters: 
+0:175      'f' (in mediump float)
+0:175    Sequence
+0:175      Branch: Return with expression
+0:175        Constant:
+0:175          2 (const int)
+0:187  Function Definition: badswizzle( (global void)
+0:187    Function Parameters: 
+0:?     Sequence
+0:190      'a' (temp 5-element array of mediump 3-component vector of float)
+0:191      'a' (temp 5-element array of mediump 3-component vector of float)
+0:192      'a' (temp 5-element array of mediump 3-component vector of float)
+0:193      Constant:
+0:193        5 (const int)
+0:194      Constant:
+0:194        0.000000
+0:199  Function Definition: fooinittest( (global mediump float)
+0:199    Function Parameters: 
+0:201    Sequence
+0:201      Branch: Return with expression
+0:201        Function Call: fooinit( (global mediump float)
+0:209  Function Definition: fooinit( (global mediump float)
+0:209    Function Parameters: 
+0:211    Sequence
+0:211      Branch: Return with expression
+0:211        Constant:
+0:211          12.000000
+0:214  Sequence
+0:214    move second child to first child (temp mediump int)
+0:214      'init1' (global mediump int)
+0:214      Test condition and select (temp mediump int)
+0:214        Condition
+0:214        'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:214        true case
+0:214        Constant:
+0:214          1 (const int)
+0:214        false case
+0:214        Constant:
+0:214          2 (const int)
+0:?   Linker Objects
+0:?     'a' (global 3-element array of mediump int)
+0:?     'uint' (global mediump int)
+0:?     'v' (smooth in 3-element array of mediump 4-component vector of float)
+0:?     'f' (global mediump float)
+0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})
+0:?     'fa' (global 1-element array of mediump float)
+0:?     'f13' (global mediump float)
+0:?     'fi' (invariant temp mediump float)
+0:?     'av' (smooth in mediump 4-component vector of float)
+0:?     'uv2' (uniform mediump 2-component vector of float)
+0:?     'uv3' (invariant uniform mediump 3-component vector of float)
+0:?     'glob2D' (global lowp sampler2D)
+0:?     'vary2D' (smooth in lowp sampler2D)
+0:?     's3D' (uniform mediump sampler3D)
+0:?     's3D2' (uniform highp sampler3D)
+0:?     'sExt' (uniform lowp samplerExternalOES)
+0:?     'mediumExt' (uniform mediump samplerExternalOES)
+0:?     'highExt' (uniform highp samplerExternalOES)
+0:?     's2Dg' (uniform lowp sampler2D)
+0:?     'f123' (global mediump float)
+0:?     'f124' (global mediump float)
+0:?     'sCube' (uniform lowp samplerCube)
+0:?     's' (smooth in structure{global mediump float f})
+0:?     'fi1' (const mediump float)
+0:?       3.000000
+0:?     'fi2' (const mediump float)
+0:?       4.000000
+0:?     'fi3' (const mediump float)
+0:?       5.000000
+0:?     'init1' (global mediump int)
+
diff --git a/Test/baseResults/100Limits.vert.out b/Test/baseResults/100Limits.vert.out
index eae74ce..46c2560 100644
--- a/Test/baseResults/100Limits.vert.out
+++ b/Test/baseResults/100Limits.vert.out
@@ -1,889 +1,889 @@
-100Limits.vert

-Shader version: 100

-0:? Sequence

-0:15  Function Definition: foo(f1; (global void)

-0:15    Function Parameters: 

-0:15      'a' (inout highp float)

-0:17  Function Definition: bar( (global highp int)

-0:17    Function Parameters: 

-0:19    Sequence

-0:19      Branch: Return with expression

-0:19        Constant:

-0:19          1 (const int)

-0:22  Function Definition: main( (global void)

-0:22    Function Parameters: 

-0:24    Sequence

-0:24      Loop with condition tested first

-0:24        Loop Condition

-0:24        Compare Less Than (temp bool)

-0:24          'ga' (global highp int)

-0:24          'gb' (global highp int)

-0:24        No loop body

-0:26      Loop with condition not tested first

-0:26        Loop Condition

-0:26        Constant:

-0:26          false (const bool)

-0:26        No loop body

-0:28      Sequence

-0:28        Loop with condition tested first

-0:28          No loop condition

-0:28          No loop body

-0:29      Sequence

-0:29        Loop with condition tested first

-0:29          Loop Condition

-0:29          Compare Equal (temp bool)

-0:29            'ga' (global highp int)

-0:29            'gb' (global highp int)

-0:29          No loop body

-0:30      Sequence

-0:30        Loop with condition tested first

-0:30          No loop condition

-0:30          No loop body

-0:30          Loop Terminal Expression

-0:30          Post-Increment (temp highp float)

-0:30            'f' (global highp float)

-0:31      Sequence

-0:31        move second child to first child (temp highp int)

-0:31          'ga' (global highp int)

-0:31          Constant:

-0:31            0 (const int)

-0:31        Loop with condition tested first

-0:31          No loop condition

-0:31          No loop body

-0:32      Sequence

-0:32        Sequence

-0:32          move second child to first child (temp bool)

-0:32            'a' (temp bool)

-0:32            Constant:

-0:32              false (const bool)

-0:32        Loop with condition tested first

-0:32          No loop condition

-0:32          No loop body

-0:33      Sequence

-0:33        Sequence

-0:33          move second child to first child (temp highp float)

-0:33            'a' (temp highp float)

-0:33            Constant:

-0:33              0.000000

-0:33        Loop with condition tested first

-0:33          Loop Condition

-0:33          Compare Equal (temp bool)

-0:33            'a' (temp highp float)

-0:33            sine (global highp float)

-0:33              'f' (global highp float)

-0:33          No loop body

-0:34      Sequence

-0:34        Sequence

-0:34          move second child to first child (temp highp int)

-0:34            'a' (temp highp int)

-0:34            Constant:

-0:34              0 (const int)

-0:34        Loop with condition tested first

-0:34          Loop Condition

-0:34          Compare Less Than (temp bool)

-0:34            'a' (temp highp int)

-0:34            Constant:

-0:34              10 (const int)

-0:34          No loop body

-0:34          Loop Terminal Expression

-0:34          multiply second child into first child (temp highp int)

-0:34            'a' (temp highp int)

-0:34            Constant:

-0:34              2 (const int)

-0:35      Sequence

-0:35        Sequence

-0:35          move second child to first child (temp highp int)

-0:35            'a' (temp highp int)

-0:35            Constant:

-0:35              0 (const int)

-0:35        Loop with condition tested first

-0:35          Loop Condition

-0:35          Compare Less Than or Equal (temp bool)

-0:35            'a' (temp highp int)

-0:35            Constant:

-0:35              20 (const int)

-0:35          Loop Body

-0:35          Pre-Decrement (temp highp int)

-0:35            'a' (temp highp int)

-0:35          Loop Terminal Expression

-0:35          Post-Increment (temp highp int)

-0:35            'a' (temp highp int)

-0:36      Sequence

-0:36        Sequence

-0:36          move second child to first child (temp highp int)

-0:36            'a' (temp highp int)

-0:36            Constant:

-0:36              0 (const int)

-0:36        Loop with condition tested first

-0:36          Loop Condition

-0:36          Compare Less Than or Equal (temp bool)

-0:36            'a' (temp highp int)

-0:36            Constant:

-0:36              20 (const int)

-0:36          Loop Body

-0:36          Sequence

-0:36            Test condition and select (temp void)

-0:36              Condition

-0:36              Compare Equal (temp bool)

-0:36                'ga' (global highp int)

-0:36                Constant:

-0:36                  0 (const int)

-0:36              true case

-0:36              move second child to first child (temp highp int)

-0:36                'a' (temp highp int)

-0:36                Constant:

-0:36                  4 (const int)

-0:36          Loop Terminal Expression

-0:36          Post-Increment (temp highp int)

-0:36            'a' (temp highp int)

-0:37      Sequence

-0:37        Sequence

-0:37          move second child to first child (temp highp float)

-0:37            'a' (temp highp float)

-0:37            Constant:

-0:37              0.000000

-0:37        Loop with condition tested first

-0:37          Loop Condition

-0:37          Compare Less Than or Equal (temp bool)

-0:37            'a' (temp highp float)

-0:37            Constant:

-0:37              20.000000

-0:37          No loop body

-0:37          Loop Terminal Expression

-0:37          add second child into first child (temp highp float)

-0:37            'a' (temp highp float)

-0:37            Constant:

-0:37              2.000000

-0:38      Sequence

-0:38        Sequence

-0:38          move second child to first child (temp highp float)

-0:38            'a' (temp highp float)

-0:38            Constant:

-0:38              0.000000

-0:38        Loop with condition tested first

-0:38          Loop Condition

-0:38          Compare Not Equal (temp bool)

-0:38            'a' (temp highp float)

-0:38            Constant:

-0:38              20.000000

-0:38          Loop Body

-0:38          Sequence

-0:38            Test condition and select (temp void)

-0:38              Condition

-0:38              Compare Equal (temp bool)

-0:38                'ga' (global highp int)

-0:38                Constant:

-0:38                  0 (const int)

-0:38              true case

-0:38              move second child to first child (temp highp int)

-0:38                'ga' (global highp int)

-0:38                Constant:

-0:38                  4 (const int)

-0:38          Loop Terminal Expression

-0:38          subtract second child into first child (temp highp float)

-0:38            'a' (temp highp float)

-0:38            Constant:

-0:38              2.000000

-0:39      Sequence

-0:39        Sequence

-0:39          move second child to first child (temp highp float)

-0:39            'a' (temp highp float)

-0:39            Constant:

-0:39              0.000000

-0:39        Loop with condition tested first

-0:39          Loop Condition

-0:39          Compare Equal (temp bool)

-0:39            'a' (temp highp float)

-0:39            Constant:

-0:39              20.000000

-0:39          Loop Body

-0:39          Sequence

-0:39            Sequence

-0:39              move second child to first child (temp highp float)

-0:39                'a' (temp highp float)

-0:39                Constant:

-0:39                  0.000000

-0:39            Loop with condition tested first

-0:39              Loop Condition

-0:39              Compare Equal (temp bool)

-0:39                'a' (temp highp float)

-0:39                Constant:

-0:39                  20.000000

-0:39              No loop body

-0:39              Loop Terminal Expression

-0:39              Post-Decrement (temp highp float)

-0:39                'a' (temp highp float)

-0:39          Loop Terminal Expression

-0:39          Post-Decrement (temp highp float)

-0:39            'a' (temp highp float)

-0:40      Sequence

-0:40        Sequence

-0:40          move second child to first child (temp highp float)

-0:40            'a' (temp highp float)

-0:40            Constant:

-0:40              0.000000

-0:40        Loop with condition tested first

-0:40          Loop Condition

-0:40          Compare Less Than or Equal (temp bool)

-0:40            'a' (temp highp float)

-0:40            Constant:

-0:40              20.000000

-0:40          No loop body

-0:40          Loop Terminal Expression

-0:40          add second child into first child (temp highp float)

-0:40            'a' (temp highp float)

-0:40            Constant:

-0:40              2.000000

-0:41      Sequence

-0:41        Sequence

-0:41          move second child to first child (temp highp float)

-0:41            'a' (temp highp float)

-0:41            Constant:

-0:41              0.000000

-0:41        Loop with condition tested first

-0:41          Loop Condition

-0:41          Compare Less Than or Equal (temp bool)

-0:41            'a' (temp highp float)

-0:41            Constant:

-0:41              20.000000

-0:41          No loop body

-0:41          Loop Terminal Expression

-0:41          add second child into first child (temp highp float)

-0:41            'a' (temp highp float)

-0:41            Constant:

-0:41              2.000000

-0:42      Sequence

-0:42        Sequence

-0:42          move second child to first child (temp highp float)

-0:42            'a' (temp highp float)

-0:42            Constant:

-0:42              0.000000

-0:42        Loop with condition tested first

-0:42          Loop Condition

-0:42          Compare Greater Than (temp bool)

-0:42            'a' (temp highp float)

-0:42            Constant:

-0:42              40.000000

-0:42          No loop body

-0:42          Loop Terminal Expression

-0:42          add second child into first child (temp highp float)

-0:42            'a' (temp highp float)

-0:42            Constant:

-0:42              2.000000

-0:43      Sequence

-0:43        Sequence

-0:43          move second child to first child (temp highp float)

-0:43            'a' (temp highp float)

-0:43            Constant:

-0:43              0.000000

-0:43        Loop with condition tested first

-0:43          Loop Condition

-0:43          Compare Greater Than or Equal (temp bool)

-0:43            'a' (temp highp float)

-0:43            Constant:

-0:43              20.000000

-0:43          Loop Body

-0:43          Function Call: foo(f1; (global void)

-0:43            'a' (temp highp float)

-0:43          Loop Terminal Expression

-0:43          add second child into first child (temp highp float)

-0:43            'a' (temp highp float)

-0:43            Constant:

-0:43              2.000000

-0:47      indirect index (temp lowp sampler2D)

-0:47        'fsa' (uniform 3-element array of lowp sampler2D)

-0:47        'ga' (global highp int)

-0:48      indirect index (temp highp float)

-0:48        'fua' (uniform 10-element array of highp float)

-0:48        'ga' (global highp int)

-0:49      indirect index (temp highp 3-component vector of float)

-0:49        'am3' (in highp 3X3 matrix of float)

-0:49        'ga' (global highp int)

-0:50      indirect index (temp highp float)

-0:50        'av2' (in highp 2-component vector of float)

-0:50        'ga' (global highp int)

-0:51      indirect index (smooth temp highp 4-component vector of float)

-0:51        'va' (smooth out 4-element array of highp 4-component vector of float)

-0:51        add (temp highp int)

-0:51          Constant:

-0:51            2 (const int)

-0:51          'ga' (global highp int)

-0:52      indirect index (temp highp 2-component vector of float)

-0:52        Constant:

-0:52          1.000000

-0:52          0.000000

-0:52          0.000000

-0:52          1.000000

-0:52        'ga' (global highp int)

-0:53      indirect index (temp highp float)

-0:53        Constant:

-0:53          2.000000

-0:53          2.000000

-0:53          2.000000

-0:53        divide (temp highp int)

-0:53          'ga' (global highp int)

-0:53          Constant:

-0:53            2 (const int)

-0:54      indirect index (temp highp int)

-0:54        'ia' (temp 9-element array of highp int)

-0:54        'ga' (global highp int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp highp int)

-0:56            'a' (temp highp int)

-0:56            Constant:

-0:56              3 (const int)

-0:56        Loop with condition tested first

-0:56          Loop Condition

-0:56          Compare Greater Than or Equal (temp bool)

-0:56            'a' (temp highp int)

-0:56            Constant:

-0:56              0 (const int)

-0:56          Loop Body

-0:57          Sequence

-0:57            indirect index (temp lowp sampler2D)

-0:57              'fsa' (uniform 3-element array of lowp sampler2D)

-0:57              'a' (temp highp int)

-0:58            indirect index (temp highp float)

-0:58              'fua' (uniform 10-element array of highp float)

-0:58              add (temp highp int)

-0:58                'a' (temp highp int)

-0:58                Constant:

-0:58                  2 (const int)

-0:59            indirect index (temp highp 3-component vector of float)

-0:59              'am3' (in highp 3X3 matrix of float)

-0:59              component-wise multiply (temp highp int)

-0:59                Constant:

-0:59                  3 (const int)

-0:59                'a' (temp highp int)

-0:60            indirect index (temp highp float)

-0:60              'av2' (in highp 2-component vector of float)

-0:60              component-wise multiply (temp highp int)

-0:60                Constant:

-0:60                  3 (const int)

-0:60                'a' (temp highp int)

-0:61            indirect index (smooth temp highp 4-component vector of float)

-0:61              'va' (smooth out 4-element array of highp 4-component vector of float)

-0:61              subtract (temp highp int)

-0:61                'a' (temp highp int)

-0:61                Constant:

-0:61                  1 (const int)

-0:62            indirect index (temp highp 2-component vector of float)

-0:62              Constant:

-0:62                1.000000

-0:62                0.000000

-0:62                0.000000

-0:62                1.000000

-0:62              divide (temp highp int)

-0:62                'a' (temp highp int)

-0:62                Constant:

-0:62                  2 (const int)

-0:63            indirect index (temp highp float)

-0:63              Constant:

-0:63                2.000000

-0:63                2.000000

-0:63                2.000000

-0:63              'a' (temp highp int)

-0:64            indirect index (temp highp int)

-0:64              'ia' (temp 9-element array of highp int)

-0:64              'a' (temp highp int)

-0:65            indirect index (temp highp int)

-0:65              'ia' (temp 9-element array of highp int)

-0:65              Function Call: bar( (global highp int)

-0:56          Loop Terminal Expression

-0:56          Post-Decrement (temp highp int)

-0:56            'a' (temp highp int)

-0:68      direct index (temp lowp sampler2D)

-0:68        'fsa' (uniform 3-element array of lowp sampler2D)

-0:68        Constant:

-0:68          2 (const int)

-0:69      direct index (temp highp float)

-0:69        'fua' (uniform 10-element array of highp float)

-0:69        Constant:

-0:69          3 (const int)

-0:70      direct index (temp highp 3-component vector of float)

-0:70        'am3' (in highp 3X3 matrix of float)

-0:70        Constant:

-0:70          2 (const int)

-0:71      direct index (temp highp float)

-0:71        'av2' (in highp 2-component vector of float)

-0:71        Constant:

-0:71          1 (const int)

-0:72      direct index (smooth temp highp 4-component vector of float)

-0:72        'va' (smooth out 4-element array of highp 4-component vector of float)

-0:72        Constant:

-0:72          1 (const int)

-0:73      Constant:

-0:73        0.000000

-0:73        1.000000

-0:74      Constant:

-0:74        2.000000

-0:75      direct index (temp highp int)

-0:75        'ia' (temp 9-element array of highp int)

-0:75        Constant:

-0:75          3 (const int)

-0:?   Linker Objects

-0:?     'ga' (global highp int)

-0:?     'gb' (global highp int)

-0:?     'f' (global highp float)

-0:?     'fsa' (uniform 3-element array of lowp sampler2D)

-0:?     'fua' (uniform 10-element array of highp float)

-0:?     'am3' (in highp 3X3 matrix of float)

-0:?     'av2' (in highp 2-component vector of float)

-0:?     'va' (smooth out 4-element array of highp 4-component vector of float)

-0:?     'm2' (const highp 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'v3' (const highp 3-component vector of float)

-0:?       2.000000

-0:?       2.000000

-0:?       2.000000

-

-

-Linked vertex stage:

-

-

-Shader version: 100

-0:? Sequence

-0:15  Function Definition: foo(f1; (global void)

-0:15    Function Parameters: 

-0:15      'a' (inout highp float)

-0:17  Function Definition: bar( (global highp int)

-0:17    Function Parameters: 

-0:19    Sequence

-0:19      Branch: Return with expression

-0:19        Constant:

-0:19          1 (const int)

-0:22  Function Definition: main( (global void)

-0:22    Function Parameters: 

-0:24    Sequence

-0:24      Loop with condition tested first

-0:24        Loop Condition

-0:24        Compare Less Than (temp bool)

-0:24          'ga' (global highp int)

-0:24          'gb' (global highp int)

-0:24        No loop body

-0:26      Loop with condition not tested first

-0:26        Loop Condition

-0:26        Constant:

-0:26          false (const bool)

-0:26        No loop body

-0:28      Sequence

-0:28        Loop with condition tested first

-0:28          No loop condition

-0:28          No loop body

-0:29      Sequence

-0:29        Loop with condition tested first

-0:29          Loop Condition

-0:29          Compare Equal (temp bool)

-0:29            'ga' (global highp int)

-0:29            'gb' (global highp int)

-0:29          No loop body

-0:30      Sequence

-0:30        Loop with condition tested first

-0:30          No loop condition

-0:30          No loop body

-0:30          Loop Terminal Expression

-0:30          Post-Increment (temp highp float)

-0:30            'f' (global highp float)

-0:31      Sequence

-0:31        move second child to first child (temp highp int)

-0:31          'ga' (global highp int)

-0:31          Constant:

-0:31            0 (const int)

-0:31        Loop with condition tested first

-0:31          No loop condition

-0:31          No loop body

-0:32      Sequence

-0:32        Sequence

-0:32          move second child to first child (temp bool)

-0:32            'a' (temp bool)

-0:32            Constant:

-0:32              false (const bool)

-0:32        Loop with condition tested first

-0:32          No loop condition

-0:32          No loop body

-0:33      Sequence

-0:33        Sequence

-0:33          move second child to first child (temp highp float)

-0:33            'a' (temp highp float)

-0:33            Constant:

-0:33              0.000000

-0:33        Loop with condition tested first

-0:33          Loop Condition

-0:33          Compare Equal (temp bool)

-0:33            'a' (temp highp float)

-0:33            sine (global highp float)

-0:33              'f' (global highp float)

-0:33          No loop body

-0:34      Sequence

-0:34        Sequence

-0:34          move second child to first child (temp highp int)

-0:34            'a' (temp highp int)

-0:34            Constant:

-0:34              0 (const int)

-0:34        Loop with condition tested first

-0:34          Loop Condition

-0:34          Compare Less Than (temp bool)

-0:34            'a' (temp highp int)

-0:34            Constant:

-0:34              10 (const int)

-0:34          No loop body

-0:34          Loop Terminal Expression

-0:34          multiply second child into first child (temp highp int)

-0:34            'a' (temp highp int)

-0:34            Constant:

-0:34              2 (const int)

-0:35      Sequence

-0:35        Sequence

-0:35          move second child to first child (temp highp int)

-0:35            'a' (temp highp int)

-0:35            Constant:

-0:35              0 (const int)

-0:35        Loop with condition tested first

-0:35          Loop Condition

-0:35          Compare Less Than or Equal (temp bool)

-0:35            'a' (temp highp int)

-0:35            Constant:

-0:35              20 (const int)

-0:35          Loop Body

-0:35          Pre-Decrement (temp highp int)

-0:35            'a' (temp highp int)

-0:35          Loop Terminal Expression

-0:35          Post-Increment (temp highp int)

-0:35            'a' (temp highp int)

-0:36      Sequence

-0:36        Sequence

-0:36          move second child to first child (temp highp int)

-0:36            'a' (temp highp int)

-0:36            Constant:

-0:36              0 (const int)

-0:36        Loop with condition tested first

-0:36          Loop Condition

-0:36          Compare Less Than or Equal (temp bool)

-0:36            'a' (temp highp int)

-0:36            Constant:

-0:36              20 (const int)

-0:36          Loop Body

-0:36          Sequence

-0:36            Test condition and select (temp void)

-0:36              Condition

-0:36              Compare Equal (temp bool)

-0:36                'ga' (global highp int)

-0:36                Constant:

-0:36                  0 (const int)

-0:36              true case

-0:36              move second child to first child (temp highp int)

-0:36                'a' (temp highp int)

-0:36                Constant:

-0:36                  4 (const int)

-0:36          Loop Terminal Expression

-0:36          Post-Increment (temp highp int)

-0:36            'a' (temp highp int)

-0:37      Sequence

-0:37        Sequence

-0:37          move second child to first child (temp highp float)

-0:37            'a' (temp highp float)

-0:37            Constant:

-0:37              0.000000

-0:37        Loop with condition tested first

-0:37          Loop Condition

-0:37          Compare Less Than or Equal (temp bool)

-0:37            'a' (temp highp float)

-0:37            Constant:

-0:37              20.000000

-0:37          No loop body

-0:37          Loop Terminal Expression

-0:37          add second child into first child (temp highp float)

-0:37            'a' (temp highp float)

-0:37            Constant:

-0:37              2.000000

-0:38      Sequence

-0:38        Sequence

-0:38          move second child to first child (temp highp float)

-0:38            'a' (temp highp float)

-0:38            Constant:

-0:38              0.000000

-0:38        Loop with condition tested first

-0:38          Loop Condition

-0:38          Compare Not Equal (temp bool)

-0:38            'a' (temp highp float)

-0:38            Constant:

-0:38              20.000000

-0:38          Loop Body

-0:38          Sequence

-0:38            Test condition and select (temp void)

-0:38              Condition

-0:38              Compare Equal (temp bool)

-0:38                'ga' (global highp int)

-0:38                Constant:

-0:38                  0 (const int)

-0:38              true case

-0:38              move second child to first child (temp highp int)

-0:38                'ga' (global highp int)

-0:38                Constant:

-0:38                  4 (const int)

-0:38          Loop Terminal Expression

-0:38          subtract second child into first child (temp highp float)

-0:38            'a' (temp highp float)

-0:38            Constant:

-0:38              2.000000

-0:39      Sequence

-0:39        Sequence

-0:39          move second child to first child (temp highp float)

-0:39            'a' (temp highp float)

-0:39            Constant:

-0:39              0.000000

-0:39        Loop with condition tested first

-0:39          Loop Condition

-0:39          Compare Equal (temp bool)

-0:39            'a' (temp highp float)

-0:39            Constant:

-0:39              20.000000

-0:39          Loop Body

-0:39          Sequence

-0:39            Sequence

-0:39              move second child to first child (temp highp float)

-0:39                'a' (temp highp float)

-0:39                Constant:

-0:39                  0.000000

-0:39            Loop with condition tested first

-0:39              Loop Condition

-0:39              Compare Equal (temp bool)

-0:39                'a' (temp highp float)

-0:39                Constant:

-0:39                  20.000000

-0:39              No loop body

-0:39              Loop Terminal Expression

-0:39              Post-Decrement (temp highp float)

-0:39                'a' (temp highp float)

-0:39          Loop Terminal Expression

-0:39          Post-Decrement (temp highp float)

-0:39            'a' (temp highp float)

-0:40      Sequence

-0:40        Sequence

-0:40          move second child to first child (temp highp float)

-0:40            'a' (temp highp float)

-0:40            Constant:

-0:40              0.000000

-0:40        Loop with condition tested first

-0:40          Loop Condition

-0:40          Compare Less Than or Equal (temp bool)

-0:40            'a' (temp highp float)

-0:40            Constant:

-0:40              20.000000

-0:40          No loop body

-0:40          Loop Terminal Expression

-0:40          add second child into first child (temp highp float)

-0:40            'a' (temp highp float)

-0:40            Constant:

-0:40              2.000000

-0:41      Sequence

-0:41        Sequence

-0:41          move second child to first child (temp highp float)

-0:41            'a' (temp highp float)

-0:41            Constant:

-0:41              0.000000

-0:41        Loop with condition tested first

-0:41          Loop Condition

-0:41          Compare Less Than or Equal (temp bool)

-0:41            'a' (temp highp float)

-0:41            Constant:

-0:41              20.000000

-0:41          No loop body

-0:41          Loop Terminal Expression

-0:41          add second child into first child (temp highp float)

-0:41            'a' (temp highp float)

-0:41            Constant:

-0:41              2.000000

-0:42      Sequence

-0:42        Sequence

-0:42          move second child to first child (temp highp float)

-0:42            'a' (temp highp float)

-0:42            Constant:

-0:42              0.000000

-0:42        Loop with condition tested first

-0:42          Loop Condition

-0:42          Compare Greater Than (temp bool)

-0:42            'a' (temp highp float)

-0:42            Constant:

-0:42              40.000000

-0:42          No loop body

-0:42          Loop Terminal Expression

-0:42          add second child into first child (temp highp float)

-0:42            'a' (temp highp float)

-0:42            Constant:

-0:42              2.000000

-0:43      Sequence

-0:43        Sequence

-0:43          move second child to first child (temp highp float)

-0:43            'a' (temp highp float)

-0:43            Constant:

-0:43              0.000000

-0:43        Loop with condition tested first

-0:43          Loop Condition

-0:43          Compare Greater Than or Equal (temp bool)

-0:43            'a' (temp highp float)

-0:43            Constant:

-0:43              20.000000

-0:43          Loop Body

-0:43          Function Call: foo(f1; (global void)

-0:43            'a' (temp highp float)

-0:43          Loop Terminal Expression

-0:43          add second child into first child (temp highp float)

-0:43            'a' (temp highp float)

-0:43            Constant:

-0:43              2.000000

-0:47      indirect index (temp lowp sampler2D)

-0:47        'fsa' (uniform 3-element array of lowp sampler2D)

-0:47        'ga' (global highp int)

-0:48      indirect index (temp highp float)

-0:48        'fua' (uniform 10-element array of highp float)

-0:48        'ga' (global highp int)

-0:49      indirect index (temp highp 3-component vector of float)

-0:49        'am3' (in highp 3X3 matrix of float)

-0:49        'ga' (global highp int)

-0:50      indirect index (temp highp float)

-0:50        'av2' (in highp 2-component vector of float)

-0:50        'ga' (global highp int)

-0:51      indirect index (smooth temp highp 4-component vector of float)

-0:51        'va' (smooth out 4-element array of highp 4-component vector of float)

-0:51        add (temp highp int)

-0:51          Constant:

-0:51            2 (const int)

-0:51          'ga' (global highp int)

-0:52      indirect index (temp highp 2-component vector of float)

-0:52        Constant:

-0:52          1.000000

-0:52          0.000000

-0:52          0.000000

-0:52          1.000000

-0:52        'ga' (global highp int)

-0:53      indirect index (temp highp float)

-0:53        Constant:

-0:53          2.000000

-0:53          2.000000

-0:53          2.000000

-0:53        divide (temp highp int)

-0:53          'ga' (global highp int)

-0:53          Constant:

-0:53            2 (const int)

-0:54      indirect index (temp highp int)

-0:54        'ia' (temp 9-element array of highp int)

-0:54        'ga' (global highp int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp highp int)

-0:56            'a' (temp highp int)

-0:56            Constant:

-0:56              3 (const int)

-0:56        Loop with condition tested first

-0:56          Loop Condition

-0:56          Compare Greater Than or Equal (temp bool)

-0:56            'a' (temp highp int)

-0:56            Constant:

-0:56              0 (const int)

-0:56          Loop Body

-0:57          Sequence

-0:57            indirect index (temp lowp sampler2D)

-0:57              'fsa' (uniform 3-element array of lowp sampler2D)

-0:57              'a' (temp highp int)

-0:58            indirect index (temp highp float)

-0:58              'fua' (uniform 10-element array of highp float)

-0:58              add (temp highp int)

-0:58                'a' (temp highp int)

-0:58                Constant:

-0:58                  2 (const int)

-0:59            indirect index (temp highp 3-component vector of float)

-0:59              'am3' (in highp 3X3 matrix of float)

-0:59              component-wise multiply (temp highp int)

-0:59                Constant:

-0:59                  3 (const int)

-0:59                'a' (temp highp int)

-0:60            indirect index (temp highp float)

-0:60              'av2' (in highp 2-component vector of float)

-0:60              component-wise multiply (temp highp int)

-0:60                Constant:

-0:60                  3 (const int)

-0:60                'a' (temp highp int)

-0:61            indirect index (smooth temp highp 4-component vector of float)

-0:61              'va' (smooth out 4-element array of highp 4-component vector of float)

-0:61              subtract (temp highp int)

-0:61                'a' (temp highp int)

-0:61                Constant:

-0:61                  1 (const int)

-0:62            indirect index (temp highp 2-component vector of float)

-0:62              Constant:

-0:62                1.000000

-0:62                0.000000

-0:62                0.000000

-0:62                1.000000

-0:62              divide (temp highp int)

-0:62                'a' (temp highp int)

-0:62                Constant:

-0:62                  2 (const int)

-0:63            indirect index (temp highp float)

-0:63              Constant:

-0:63                2.000000

-0:63                2.000000

-0:63                2.000000

-0:63              'a' (temp highp int)

-0:64            indirect index (temp highp int)

-0:64              'ia' (temp 9-element array of highp int)

-0:64              'a' (temp highp int)

-0:65            indirect index (temp highp int)

-0:65              'ia' (temp 9-element array of highp int)

-0:65              Function Call: bar( (global highp int)

-0:56          Loop Terminal Expression

-0:56          Post-Decrement (temp highp int)

-0:56            'a' (temp highp int)

-0:68      direct index (temp lowp sampler2D)

-0:68        'fsa' (uniform 3-element array of lowp sampler2D)

-0:68        Constant:

-0:68          2 (const int)

-0:69      direct index (temp highp float)

-0:69        'fua' (uniform 10-element array of highp float)

-0:69        Constant:

-0:69          3 (const int)

-0:70      direct index (temp highp 3-component vector of float)

-0:70        'am3' (in highp 3X3 matrix of float)

-0:70        Constant:

-0:70          2 (const int)

-0:71      direct index (temp highp float)

-0:71        'av2' (in highp 2-component vector of float)

-0:71        Constant:

-0:71          1 (const int)

-0:72      direct index (smooth temp highp 4-component vector of float)

-0:72        'va' (smooth out 4-element array of highp 4-component vector of float)

-0:72        Constant:

-0:72          1 (const int)

-0:73      Constant:

-0:73        0.000000

-0:73        1.000000

-0:74      Constant:

-0:74        2.000000

-0:75      direct index (temp highp int)

-0:75        'ia' (temp 9-element array of highp int)

-0:75        Constant:

-0:75          3 (const int)

-0:?   Linker Objects

-0:?     'ga' (global highp int)

-0:?     'gb' (global highp int)

-0:?     'f' (global highp float)

-0:?     'fsa' (uniform 3-element array of lowp sampler2D)

-0:?     'fua' (uniform 10-element array of highp float)

-0:?     'am3' (in highp 3X3 matrix of float)

-0:?     'av2' (in highp 2-component vector of float)

-0:?     'va' (smooth out 4-element array of highp 4-component vector of float)

-0:?     'm2' (const highp 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'v3' (const highp 3-component vector of float)

-0:?       2.000000

-0:?       2.000000

-0:?       2.000000

-

+100Limits.vert
+Shader version: 100
+0:? Sequence
+0:15  Function Definition: foo(f1; (global void)
+0:15    Function Parameters: 
+0:15      'a' (inout highp float)
+0:17  Function Definition: bar( (global highp int)
+0:17    Function Parameters: 
+0:19    Sequence
+0:19      Branch: Return with expression
+0:19        Constant:
+0:19          1 (const int)
+0:22  Function Definition: main( (global void)
+0:22    Function Parameters: 
+0:24    Sequence
+0:24      Loop with condition tested first
+0:24        Loop Condition
+0:24        Compare Less Than (temp bool)
+0:24          'ga' (global highp int)
+0:24          'gb' (global highp int)
+0:24        No loop body
+0:26      Loop with condition not tested first
+0:26        Loop Condition
+0:26        Constant:
+0:26          false (const bool)
+0:26        No loop body
+0:28      Sequence
+0:28        Loop with condition tested first
+0:28          No loop condition
+0:28          No loop body
+0:29      Sequence
+0:29        Loop with condition tested first
+0:29          Loop Condition
+0:29          Compare Equal (temp bool)
+0:29            'ga' (global highp int)
+0:29            'gb' (global highp int)
+0:29          No loop body
+0:30      Sequence
+0:30        Loop with condition tested first
+0:30          No loop condition
+0:30          No loop body
+0:30          Loop Terminal Expression
+0:30          Post-Increment (temp highp float)
+0:30            'f' (global highp float)
+0:31      Sequence
+0:31        move second child to first child (temp highp int)
+0:31          'ga' (global highp int)
+0:31          Constant:
+0:31            0 (const int)
+0:31        Loop with condition tested first
+0:31          No loop condition
+0:31          No loop body
+0:32      Sequence
+0:32        Sequence
+0:32          move second child to first child (temp bool)
+0:32            'a' (temp bool)
+0:32            Constant:
+0:32              false (const bool)
+0:32        Loop with condition tested first
+0:32          No loop condition
+0:32          No loop body
+0:33      Sequence
+0:33        Sequence
+0:33          move second child to first child (temp highp float)
+0:33            'a' (temp highp float)
+0:33            Constant:
+0:33              0.000000
+0:33        Loop with condition tested first
+0:33          Loop Condition
+0:33          Compare Equal (temp bool)
+0:33            'a' (temp highp float)
+0:33            sine (global highp float)
+0:33              'f' (global highp float)
+0:33          No loop body
+0:34      Sequence
+0:34        Sequence
+0:34          move second child to first child (temp highp int)
+0:34            'a' (temp highp int)
+0:34            Constant:
+0:34              0 (const int)
+0:34        Loop with condition tested first
+0:34          Loop Condition
+0:34          Compare Less Than (temp bool)
+0:34            'a' (temp highp int)
+0:34            Constant:
+0:34              10 (const int)
+0:34          No loop body
+0:34          Loop Terminal Expression
+0:34          multiply second child into first child (temp highp int)
+0:34            'a' (temp highp int)
+0:34            Constant:
+0:34              2 (const int)
+0:35      Sequence
+0:35        Sequence
+0:35          move second child to first child (temp highp int)
+0:35            'a' (temp highp int)
+0:35            Constant:
+0:35              0 (const int)
+0:35        Loop with condition tested first
+0:35          Loop Condition
+0:35          Compare Less Than or Equal (temp bool)
+0:35            'a' (temp highp int)
+0:35            Constant:
+0:35              20 (const int)
+0:35          Loop Body
+0:35          Pre-Decrement (temp highp int)
+0:35            'a' (temp highp int)
+0:35          Loop Terminal Expression
+0:35          Post-Increment (temp highp int)
+0:35            'a' (temp highp int)
+0:36      Sequence
+0:36        Sequence
+0:36          move second child to first child (temp highp int)
+0:36            'a' (temp highp int)
+0:36            Constant:
+0:36              0 (const int)
+0:36        Loop with condition tested first
+0:36          Loop Condition
+0:36          Compare Less Than or Equal (temp bool)
+0:36            'a' (temp highp int)
+0:36            Constant:
+0:36              20 (const int)
+0:36          Loop Body
+0:36          Sequence
+0:36            Test condition and select (temp void)
+0:36              Condition
+0:36              Compare Equal (temp bool)
+0:36                'ga' (global highp int)
+0:36                Constant:
+0:36                  0 (const int)
+0:36              true case
+0:36              move second child to first child (temp highp int)
+0:36                'a' (temp highp int)
+0:36                Constant:
+0:36                  4 (const int)
+0:36          Loop Terminal Expression
+0:36          Post-Increment (temp highp int)
+0:36            'a' (temp highp int)
+0:37      Sequence
+0:37        Sequence
+0:37          move second child to first child (temp highp float)
+0:37            'a' (temp highp float)
+0:37            Constant:
+0:37              0.000000
+0:37        Loop with condition tested first
+0:37          Loop Condition
+0:37          Compare Less Than or Equal (temp bool)
+0:37            'a' (temp highp float)
+0:37            Constant:
+0:37              20.000000
+0:37          No loop body
+0:37          Loop Terminal Expression
+0:37          add second child into first child (temp highp float)
+0:37            'a' (temp highp float)
+0:37            Constant:
+0:37              2.000000
+0:38      Sequence
+0:38        Sequence
+0:38          move second child to first child (temp highp float)
+0:38            'a' (temp highp float)
+0:38            Constant:
+0:38              0.000000
+0:38        Loop with condition tested first
+0:38          Loop Condition
+0:38          Compare Not Equal (temp bool)
+0:38            'a' (temp highp float)
+0:38            Constant:
+0:38              20.000000
+0:38          Loop Body
+0:38          Sequence
+0:38            Test condition and select (temp void)
+0:38              Condition
+0:38              Compare Equal (temp bool)
+0:38                'ga' (global highp int)
+0:38                Constant:
+0:38                  0 (const int)
+0:38              true case
+0:38              move second child to first child (temp highp int)
+0:38                'ga' (global highp int)
+0:38                Constant:
+0:38                  4 (const int)
+0:38          Loop Terminal Expression
+0:38          subtract second child into first child (temp highp float)
+0:38            'a' (temp highp float)
+0:38            Constant:
+0:38              2.000000
+0:39      Sequence
+0:39        Sequence
+0:39          move second child to first child (temp highp float)
+0:39            'a' (temp highp float)
+0:39            Constant:
+0:39              0.000000
+0:39        Loop with condition tested first
+0:39          Loop Condition
+0:39          Compare Equal (temp bool)
+0:39            'a' (temp highp float)
+0:39            Constant:
+0:39              20.000000
+0:39          Loop Body
+0:39          Sequence
+0:39            Sequence
+0:39              move second child to first child (temp highp float)
+0:39                'a' (temp highp float)
+0:39                Constant:
+0:39                  0.000000
+0:39            Loop with condition tested first
+0:39              Loop Condition
+0:39              Compare Equal (temp bool)
+0:39                'a' (temp highp float)
+0:39                Constant:
+0:39                  20.000000
+0:39              No loop body
+0:39              Loop Terminal Expression
+0:39              Post-Decrement (temp highp float)
+0:39                'a' (temp highp float)
+0:39          Loop Terminal Expression
+0:39          Post-Decrement (temp highp float)
+0:39            'a' (temp highp float)
+0:40      Sequence
+0:40        Sequence
+0:40          move second child to first child (temp highp float)
+0:40            'a' (temp highp float)
+0:40            Constant:
+0:40              0.000000
+0:40        Loop with condition tested first
+0:40          Loop Condition
+0:40          Compare Less Than or Equal (temp bool)
+0:40            'a' (temp highp float)
+0:40            Constant:
+0:40              20.000000
+0:40          No loop body
+0:40          Loop Terminal Expression
+0:40          add second child into first child (temp highp float)
+0:40            'a' (temp highp float)
+0:40            Constant:
+0:40              2.000000
+0:41      Sequence
+0:41        Sequence
+0:41          move second child to first child (temp highp float)
+0:41            'a' (temp highp float)
+0:41            Constant:
+0:41              0.000000
+0:41        Loop with condition tested first
+0:41          Loop Condition
+0:41          Compare Less Than or Equal (temp bool)
+0:41            'a' (temp highp float)
+0:41            Constant:
+0:41              20.000000
+0:41          No loop body
+0:41          Loop Terminal Expression
+0:41          add second child into first child (temp highp float)
+0:41            'a' (temp highp float)
+0:41            Constant:
+0:41              2.000000
+0:42      Sequence
+0:42        Sequence
+0:42          move second child to first child (temp highp float)
+0:42            'a' (temp highp float)
+0:42            Constant:
+0:42              0.000000
+0:42        Loop with condition tested first
+0:42          Loop Condition
+0:42          Compare Greater Than (temp bool)
+0:42            'a' (temp highp float)
+0:42            Constant:
+0:42              40.000000
+0:42          No loop body
+0:42          Loop Terminal Expression
+0:42          add second child into first child (temp highp float)
+0:42            'a' (temp highp float)
+0:42            Constant:
+0:42              2.000000
+0:43      Sequence
+0:43        Sequence
+0:43          move second child to first child (temp highp float)
+0:43            'a' (temp highp float)
+0:43            Constant:
+0:43              0.000000
+0:43        Loop with condition tested first
+0:43          Loop Condition
+0:43          Compare Greater Than or Equal (temp bool)
+0:43            'a' (temp highp float)
+0:43            Constant:
+0:43              20.000000
+0:43          Loop Body
+0:43          Function Call: foo(f1; (global void)
+0:43            'a' (temp highp float)
+0:43          Loop Terminal Expression
+0:43          add second child into first child (temp highp float)
+0:43            'a' (temp highp float)
+0:43            Constant:
+0:43              2.000000
+0:47      indirect index (temp lowp sampler2D)
+0:47        'fsa' (uniform 3-element array of lowp sampler2D)
+0:47        'ga' (global highp int)
+0:48      indirect index (temp highp float)
+0:48        'fua' (uniform 10-element array of highp float)
+0:48        'ga' (global highp int)
+0:49      indirect index (temp highp 3-component vector of float)
+0:49        'am3' (in highp 3X3 matrix of float)
+0:49        'ga' (global highp int)
+0:50      indirect index (temp highp float)
+0:50        'av2' (in highp 2-component vector of float)
+0:50        'ga' (global highp int)
+0:51      indirect index (smooth temp highp 4-component vector of float)
+0:51        'va' (smooth out 4-element array of highp 4-component vector of float)
+0:51        add (temp highp int)
+0:51          Constant:
+0:51            2 (const int)
+0:51          'ga' (global highp int)
+0:52      indirect index (temp highp 2-component vector of float)
+0:52        Constant:
+0:52          1.000000
+0:52          0.000000
+0:52          0.000000
+0:52          1.000000
+0:52        'ga' (global highp int)
+0:53      indirect index (temp highp float)
+0:53        Constant:
+0:53          2.000000
+0:53          2.000000
+0:53          2.000000
+0:53        divide (temp highp int)
+0:53          'ga' (global highp int)
+0:53          Constant:
+0:53            2 (const int)
+0:54      indirect index (temp highp int)
+0:54        'ia' (temp 9-element array of highp int)
+0:54        'ga' (global highp int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp highp int)
+0:56            'a' (temp highp int)
+0:56            Constant:
+0:56              3 (const int)
+0:56        Loop with condition tested first
+0:56          Loop Condition
+0:56          Compare Greater Than or Equal (temp bool)
+0:56            'a' (temp highp int)
+0:56            Constant:
+0:56              0 (const int)
+0:56          Loop Body
+0:57          Sequence
+0:57            indirect index (temp lowp sampler2D)
+0:57              'fsa' (uniform 3-element array of lowp sampler2D)
+0:57              'a' (temp highp int)
+0:58            indirect index (temp highp float)
+0:58              'fua' (uniform 10-element array of highp float)
+0:58              add (temp highp int)
+0:58                'a' (temp highp int)
+0:58                Constant:
+0:58                  2 (const int)
+0:59            indirect index (temp highp 3-component vector of float)
+0:59              'am3' (in highp 3X3 matrix of float)
+0:59              component-wise multiply (temp highp int)
+0:59                Constant:
+0:59                  3 (const int)
+0:59                'a' (temp highp int)
+0:60            indirect index (temp highp float)
+0:60              'av2' (in highp 2-component vector of float)
+0:60              component-wise multiply (temp highp int)
+0:60                Constant:
+0:60                  3 (const int)
+0:60                'a' (temp highp int)
+0:61            indirect index (smooth temp highp 4-component vector of float)
+0:61              'va' (smooth out 4-element array of highp 4-component vector of float)
+0:61              subtract (temp highp int)
+0:61                'a' (temp highp int)
+0:61                Constant:
+0:61                  1 (const int)
+0:62            indirect index (temp highp 2-component vector of float)
+0:62              Constant:
+0:62                1.000000
+0:62                0.000000
+0:62                0.000000
+0:62                1.000000
+0:62              divide (temp highp int)
+0:62                'a' (temp highp int)
+0:62                Constant:
+0:62                  2 (const int)
+0:63            indirect index (temp highp float)
+0:63              Constant:
+0:63                2.000000
+0:63                2.000000
+0:63                2.000000
+0:63              'a' (temp highp int)
+0:64            indirect index (temp highp int)
+0:64              'ia' (temp 9-element array of highp int)
+0:64              'a' (temp highp int)
+0:65            indirect index (temp highp int)
+0:65              'ia' (temp 9-element array of highp int)
+0:65              Function Call: bar( (global highp int)
+0:56          Loop Terminal Expression
+0:56          Post-Decrement (temp highp int)
+0:56            'a' (temp highp int)
+0:68      direct index (temp lowp sampler2D)
+0:68        'fsa' (uniform 3-element array of lowp sampler2D)
+0:68        Constant:
+0:68          2 (const int)
+0:69      direct index (temp highp float)
+0:69        'fua' (uniform 10-element array of highp float)
+0:69        Constant:
+0:69          3 (const int)
+0:70      direct index (temp highp 3-component vector of float)
+0:70        'am3' (in highp 3X3 matrix of float)
+0:70        Constant:
+0:70          2 (const int)
+0:71      direct index (temp highp float)
+0:71        'av2' (in highp 2-component vector of float)
+0:71        Constant:
+0:71          1 (const int)
+0:72      direct index (smooth temp highp 4-component vector of float)
+0:72        'va' (smooth out 4-element array of highp 4-component vector of float)
+0:72        Constant:
+0:72          1 (const int)
+0:73      Constant:
+0:73        0.000000
+0:73        1.000000
+0:74      Constant:
+0:74        2.000000
+0:75      direct index (temp highp int)
+0:75        'ia' (temp 9-element array of highp int)
+0:75        Constant:
+0:75          3 (const int)
+0:?   Linker Objects
+0:?     'ga' (global highp int)
+0:?     'gb' (global highp int)
+0:?     'f' (global highp float)
+0:?     'fsa' (uniform 3-element array of lowp sampler2D)
+0:?     'fua' (uniform 10-element array of highp float)
+0:?     'am3' (in highp 3X3 matrix of float)
+0:?     'av2' (in highp 2-component vector of float)
+0:?     'va' (smooth out 4-element array of highp 4-component vector of float)
+0:?     'm2' (const highp 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'v3' (const highp 3-component vector of float)
+0:?       2.000000
+0:?       2.000000
+0:?       2.000000
+
+
+Linked vertex stage:
+
+
+Shader version: 100
+0:? Sequence
+0:15  Function Definition: foo(f1; (global void)
+0:15    Function Parameters: 
+0:15      'a' (inout highp float)
+0:17  Function Definition: bar( (global highp int)
+0:17    Function Parameters: 
+0:19    Sequence
+0:19      Branch: Return with expression
+0:19        Constant:
+0:19          1 (const int)
+0:22  Function Definition: main( (global void)
+0:22    Function Parameters: 
+0:24    Sequence
+0:24      Loop with condition tested first
+0:24        Loop Condition
+0:24        Compare Less Than (temp bool)
+0:24          'ga' (global highp int)
+0:24          'gb' (global highp int)
+0:24        No loop body
+0:26      Loop with condition not tested first
+0:26        Loop Condition
+0:26        Constant:
+0:26          false (const bool)
+0:26        No loop body
+0:28      Sequence
+0:28        Loop with condition tested first
+0:28          No loop condition
+0:28          No loop body
+0:29      Sequence
+0:29        Loop with condition tested first
+0:29          Loop Condition
+0:29          Compare Equal (temp bool)
+0:29            'ga' (global highp int)
+0:29            'gb' (global highp int)
+0:29          No loop body
+0:30      Sequence
+0:30        Loop with condition tested first
+0:30          No loop condition
+0:30          No loop body
+0:30          Loop Terminal Expression
+0:30          Post-Increment (temp highp float)
+0:30            'f' (global highp float)
+0:31      Sequence
+0:31        move second child to first child (temp highp int)
+0:31          'ga' (global highp int)
+0:31          Constant:
+0:31            0 (const int)
+0:31        Loop with condition tested first
+0:31          No loop condition
+0:31          No loop body
+0:32      Sequence
+0:32        Sequence
+0:32          move second child to first child (temp bool)
+0:32            'a' (temp bool)
+0:32            Constant:
+0:32              false (const bool)
+0:32        Loop with condition tested first
+0:32          No loop condition
+0:32          No loop body
+0:33      Sequence
+0:33        Sequence
+0:33          move second child to first child (temp highp float)
+0:33            'a' (temp highp float)
+0:33            Constant:
+0:33              0.000000
+0:33        Loop with condition tested first
+0:33          Loop Condition
+0:33          Compare Equal (temp bool)
+0:33            'a' (temp highp float)
+0:33            sine (global highp float)
+0:33              'f' (global highp float)
+0:33          No loop body
+0:34      Sequence
+0:34        Sequence
+0:34          move second child to first child (temp highp int)
+0:34            'a' (temp highp int)
+0:34            Constant:
+0:34              0 (const int)
+0:34        Loop with condition tested first
+0:34          Loop Condition
+0:34          Compare Less Than (temp bool)
+0:34            'a' (temp highp int)
+0:34            Constant:
+0:34              10 (const int)
+0:34          No loop body
+0:34          Loop Terminal Expression
+0:34          multiply second child into first child (temp highp int)
+0:34            'a' (temp highp int)
+0:34            Constant:
+0:34              2 (const int)
+0:35      Sequence
+0:35        Sequence
+0:35          move second child to first child (temp highp int)
+0:35            'a' (temp highp int)
+0:35            Constant:
+0:35              0 (const int)
+0:35        Loop with condition tested first
+0:35          Loop Condition
+0:35          Compare Less Than or Equal (temp bool)
+0:35            'a' (temp highp int)
+0:35            Constant:
+0:35              20 (const int)
+0:35          Loop Body
+0:35          Pre-Decrement (temp highp int)
+0:35            'a' (temp highp int)
+0:35          Loop Terminal Expression
+0:35          Post-Increment (temp highp int)
+0:35            'a' (temp highp int)
+0:36      Sequence
+0:36        Sequence
+0:36          move second child to first child (temp highp int)
+0:36            'a' (temp highp int)
+0:36            Constant:
+0:36              0 (const int)
+0:36        Loop with condition tested first
+0:36          Loop Condition
+0:36          Compare Less Than or Equal (temp bool)
+0:36            'a' (temp highp int)
+0:36            Constant:
+0:36              20 (const int)
+0:36          Loop Body
+0:36          Sequence
+0:36            Test condition and select (temp void)
+0:36              Condition
+0:36              Compare Equal (temp bool)
+0:36                'ga' (global highp int)
+0:36                Constant:
+0:36                  0 (const int)
+0:36              true case
+0:36              move second child to first child (temp highp int)
+0:36                'a' (temp highp int)
+0:36                Constant:
+0:36                  4 (const int)
+0:36          Loop Terminal Expression
+0:36          Post-Increment (temp highp int)
+0:36            'a' (temp highp int)
+0:37      Sequence
+0:37        Sequence
+0:37          move second child to first child (temp highp float)
+0:37            'a' (temp highp float)
+0:37            Constant:
+0:37              0.000000
+0:37        Loop with condition tested first
+0:37          Loop Condition
+0:37          Compare Less Than or Equal (temp bool)
+0:37            'a' (temp highp float)
+0:37            Constant:
+0:37              20.000000
+0:37          No loop body
+0:37          Loop Terminal Expression
+0:37          add second child into first child (temp highp float)
+0:37            'a' (temp highp float)
+0:37            Constant:
+0:37              2.000000
+0:38      Sequence
+0:38        Sequence
+0:38          move second child to first child (temp highp float)
+0:38            'a' (temp highp float)
+0:38            Constant:
+0:38              0.000000
+0:38        Loop with condition tested first
+0:38          Loop Condition
+0:38          Compare Not Equal (temp bool)
+0:38            'a' (temp highp float)
+0:38            Constant:
+0:38              20.000000
+0:38          Loop Body
+0:38          Sequence
+0:38            Test condition and select (temp void)
+0:38              Condition
+0:38              Compare Equal (temp bool)
+0:38                'ga' (global highp int)
+0:38                Constant:
+0:38                  0 (const int)
+0:38              true case
+0:38              move second child to first child (temp highp int)
+0:38                'ga' (global highp int)
+0:38                Constant:
+0:38                  4 (const int)
+0:38          Loop Terminal Expression
+0:38          subtract second child into first child (temp highp float)
+0:38            'a' (temp highp float)
+0:38            Constant:
+0:38              2.000000
+0:39      Sequence
+0:39        Sequence
+0:39          move second child to first child (temp highp float)
+0:39            'a' (temp highp float)
+0:39            Constant:
+0:39              0.000000
+0:39        Loop with condition tested first
+0:39          Loop Condition
+0:39          Compare Equal (temp bool)
+0:39            'a' (temp highp float)
+0:39            Constant:
+0:39              20.000000
+0:39          Loop Body
+0:39          Sequence
+0:39            Sequence
+0:39              move second child to first child (temp highp float)
+0:39                'a' (temp highp float)
+0:39                Constant:
+0:39                  0.000000
+0:39            Loop with condition tested first
+0:39              Loop Condition
+0:39              Compare Equal (temp bool)
+0:39                'a' (temp highp float)
+0:39                Constant:
+0:39                  20.000000
+0:39              No loop body
+0:39              Loop Terminal Expression
+0:39              Post-Decrement (temp highp float)
+0:39                'a' (temp highp float)
+0:39          Loop Terminal Expression
+0:39          Post-Decrement (temp highp float)
+0:39            'a' (temp highp float)
+0:40      Sequence
+0:40        Sequence
+0:40          move second child to first child (temp highp float)
+0:40            'a' (temp highp float)
+0:40            Constant:
+0:40              0.000000
+0:40        Loop with condition tested first
+0:40          Loop Condition
+0:40          Compare Less Than or Equal (temp bool)
+0:40            'a' (temp highp float)
+0:40            Constant:
+0:40              20.000000
+0:40          No loop body
+0:40          Loop Terminal Expression
+0:40          add second child into first child (temp highp float)
+0:40            'a' (temp highp float)
+0:40            Constant:
+0:40              2.000000
+0:41      Sequence
+0:41        Sequence
+0:41          move second child to first child (temp highp float)
+0:41            'a' (temp highp float)
+0:41            Constant:
+0:41              0.000000
+0:41        Loop with condition tested first
+0:41          Loop Condition
+0:41          Compare Less Than or Equal (temp bool)
+0:41            'a' (temp highp float)
+0:41            Constant:
+0:41              20.000000
+0:41          No loop body
+0:41          Loop Terminal Expression
+0:41          add second child into first child (temp highp float)
+0:41            'a' (temp highp float)
+0:41            Constant:
+0:41              2.000000
+0:42      Sequence
+0:42        Sequence
+0:42          move second child to first child (temp highp float)
+0:42            'a' (temp highp float)
+0:42            Constant:
+0:42              0.000000
+0:42        Loop with condition tested first
+0:42          Loop Condition
+0:42          Compare Greater Than (temp bool)
+0:42            'a' (temp highp float)
+0:42            Constant:
+0:42              40.000000
+0:42          No loop body
+0:42          Loop Terminal Expression
+0:42          add second child into first child (temp highp float)
+0:42            'a' (temp highp float)
+0:42            Constant:
+0:42              2.000000
+0:43      Sequence
+0:43        Sequence
+0:43          move second child to first child (temp highp float)
+0:43            'a' (temp highp float)
+0:43            Constant:
+0:43              0.000000
+0:43        Loop with condition tested first
+0:43          Loop Condition
+0:43          Compare Greater Than or Equal (temp bool)
+0:43            'a' (temp highp float)
+0:43            Constant:
+0:43              20.000000
+0:43          Loop Body
+0:43          Function Call: foo(f1; (global void)
+0:43            'a' (temp highp float)
+0:43          Loop Terminal Expression
+0:43          add second child into first child (temp highp float)
+0:43            'a' (temp highp float)
+0:43            Constant:
+0:43              2.000000
+0:47      indirect index (temp lowp sampler2D)
+0:47        'fsa' (uniform 3-element array of lowp sampler2D)
+0:47        'ga' (global highp int)
+0:48      indirect index (temp highp float)
+0:48        'fua' (uniform 10-element array of highp float)
+0:48        'ga' (global highp int)
+0:49      indirect index (temp highp 3-component vector of float)
+0:49        'am3' (in highp 3X3 matrix of float)
+0:49        'ga' (global highp int)
+0:50      indirect index (temp highp float)
+0:50        'av2' (in highp 2-component vector of float)
+0:50        'ga' (global highp int)
+0:51      indirect index (smooth temp highp 4-component vector of float)
+0:51        'va' (smooth out 4-element array of highp 4-component vector of float)
+0:51        add (temp highp int)
+0:51          Constant:
+0:51            2 (const int)
+0:51          'ga' (global highp int)
+0:52      indirect index (temp highp 2-component vector of float)
+0:52        Constant:
+0:52          1.000000
+0:52          0.000000
+0:52          0.000000
+0:52          1.000000
+0:52        'ga' (global highp int)
+0:53      indirect index (temp highp float)
+0:53        Constant:
+0:53          2.000000
+0:53          2.000000
+0:53          2.000000
+0:53        divide (temp highp int)
+0:53          'ga' (global highp int)
+0:53          Constant:
+0:53            2 (const int)
+0:54      indirect index (temp highp int)
+0:54        'ia' (temp 9-element array of highp int)
+0:54        'ga' (global highp int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp highp int)
+0:56            'a' (temp highp int)
+0:56            Constant:
+0:56              3 (const int)
+0:56        Loop with condition tested first
+0:56          Loop Condition
+0:56          Compare Greater Than or Equal (temp bool)
+0:56            'a' (temp highp int)
+0:56            Constant:
+0:56              0 (const int)
+0:56          Loop Body
+0:57          Sequence
+0:57            indirect index (temp lowp sampler2D)
+0:57              'fsa' (uniform 3-element array of lowp sampler2D)
+0:57              'a' (temp highp int)
+0:58            indirect index (temp highp float)
+0:58              'fua' (uniform 10-element array of highp float)
+0:58              add (temp highp int)
+0:58                'a' (temp highp int)
+0:58                Constant:
+0:58                  2 (const int)
+0:59            indirect index (temp highp 3-component vector of float)
+0:59              'am3' (in highp 3X3 matrix of float)
+0:59              component-wise multiply (temp highp int)
+0:59                Constant:
+0:59                  3 (const int)
+0:59                'a' (temp highp int)
+0:60            indirect index (temp highp float)
+0:60              'av2' (in highp 2-component vector of float)
+0:60              component-wise multiply (temp highp int)
+0:60                Constant:
+0:60                  3 (const int)
+0:60                'a' (temp highp int)
+0:61            indirect index (smooth temp highp 4-component vector of float)
+0:61              'va' (smooth out 4-element array of highp 4-component vector of float)
+0:61              subtract (temp highp int)
+0:61                'a' (temp highp int)
+0:61                Constant:
+0:61                  1 (const int)
+0:62            indirect index (temp highp 2-component vector of float)
+0:62              Constant:
+0:62                1.000000
+0:62                0.000000
+0:62                0.000000
+0:62                1.000000
+0:62              divide (temp highp int)
+0:62                'a' (temp highp int)
+0:62                Constant:
+0:62                  2 (const int)
+0:63            indirect index (temp highp float)
+0:63              Constant:
+0:63                2.000000
+0:63                2.000000
+0:63                2.000000
+0:63              'a' (temp highp int)
+0:64            indirect index (temp highp int)
+0:64              'ia' (temp 9-element array of highp int)
+0:64              'a' (temp highp int)
+0:65            indirect index (temp highp int)
+0:65              'ia' (temp 9-element array of highp int)
+0:65              Function Call: bar( (global highp int)
+0:56          Loop Terminal Expression
+0:56          Post-Decrement (temp highp int)
+0:56            'a' (temp highp int)
+0:68      direct index (temp lowp sampler2D)
+0:68        'fsa' (uniform 3-element array of lowp sampler2D)
+0:68        Constant:
+0:68          2 (const int)
+0:69      direct index (temp highp float)
+0:69        'fua' (uniform 10-element array of highp float)
+0:69        Constant:
+0:69          3 (const int)
+0:70      direct index (temp highp 3-component vector of float)
+0:70        'am3' (in highp 3X3 matrix of float)
+0:70        Constant:
+0:70          2 (const int)
+0:71      direct index (temp highp float)
+0:71        'av2' (in highp 2-component vector of float)
+0:71        Constant:
+0:71          1 (const int)
+0:72      direct index (smooth temp highp 4-component vector of float)
+0:72        'va' (smooth out 4-element array of highp 4-component vector of float)
+0:72        Constant:
+0:72          1 (const int)
+0:73      Constant:
+0:73        0.000000
+0:73        1.000000
+0:74      Constant:
+0:74        2.000000
+0:75      direct index (temp highp int)
+0:75        'ia' (temp 9-element array of highp int)
+0:75        Constant:
+0:75          3 (const int)
+0:?   Linker Objects
+0:?     'ga' (global highp int)
+0:?     'gb' (global highp int)
+0:?     'f' (global highp float)
+0:?     'fsa' (uniform 3-element array of lowp sampler2D)
+0:?     'fua' (uniform 10-element array of highp float)
+0:?     'am3' (in highp 3X3 matrix of float)
+0:?     'av2' (in highp 2-component vector of float)
+0:?     'va' (smooth out 4-element array of highp 4-component vector of float)
+0:?     'm2' (const highp 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'v3' (const highp 3-component vector of float)
+0:?       2.000000
+0:?       2.000000
+0:?       2.000000
+
diff --git a/Test/baseResults/100LimitsConf.vert.out b/Test/baseResults/100LimitsConf.vert.out
index 1a87ea8..983676e 100644
--- a/Test/baseResults/100LimitsConf.vert.out
+++ b/Test/baseResults/100LimitsConf.vert.out
@@ -1,23 +1,23 @@
-ERROR: 0:24: 'limitation' : while loops not available 

-ERROR: 0:26: 'limitation' : do-while loops not available 

-ERROR: 0:28: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 

-ERROR: 0:29: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 

-ERROR: 0:30: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 

-ERROR: 0:31: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 

-ERROR: 0:32: 'limitations' : inductive loop requires a scalar 'int' or 'float' loop index 

-ERROR: 0:33: 'limitations' : inductive-loop condition requires the form "loop-index <comparison-op> constant-expression" 

-ERROR: 0:34: 'limitations' : inductive-loop termination requires the form "loop-index++, loop-index--, loop-index += constant-expression, or loop-index -= constant-expression" 

-ERROR: 0:35: 'limitations' : inductive loop index modified 

-ERROR: 0:36: 'limitations' : inductive loop index modified 

-ERROR: 0:43: 'limitations' : inductive loop index modified 

-ERROR: 0:47: 'limitations' : Non-constant-index-expression 

-ERROR: 0:49: 'limitations' : Non-constant-index-expression 

-ERROR: 0:50: 'limitations' : Non-constant-index-expression 

-ERROR: 0:51: 'limitations' : Non-constant-index-expression 

-ERROR: 0:52: 'limitations' : Non-constant-index-expression 

-ERROR: 0:53: 'limitations' : Non-constant-index-expression 

-ERROR: 0:54: 'limitations' : Non-constant-index-expression 

-ERROR: 0:65: 'limitations' : Non-constant-index-expression 

-ERROR: 20 compilation errors.  No code generated.

-

-

+ERROR: 0:24: 'limitation' : while loops not available 
+ERROR: 0:26: 'limitation' : do-while loops not available 
+ERROR: 0:28: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 
+ERROR: 0:29: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 
+ERROR: 0:30: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 
+ERROR: 0:31: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" 
+ERROR: 0:32: 'limitations' : inductive loop requires a scalar 'int' or 'float' loop index 
+ERROR: 0:33: 'limitations' : inductive-loop condition requires the form "loop-index <comparison-op> constant-expression" 
+ERROR: 0:34: 'limitations' : inductive-loop termination requires the form "loop-index++, loop-index--, loop-index += constant-expression, or loop-index -= constant-expression" 
+ERROR: 0:35: 'limitations' : inductive loop index modified 
+ERROR: 0:36: 'limitations' : inductive loop index modified 
+ERROR: 0:43: 'limitations' : inductive loop index modified 
+ERROR: 0:47: 'limitations' : Non-constant-index-expression 
+ERROR: 0:49: 'limitations' : Non-constant-index-expression 
+ERROR: 0:50: 'limitations' : Non-constant-index-expression 
+ERROR: 0:51: 'limitations' : Non-constant-index-expression 
+ERROR: 0:52: 'limitations' : Non-constant-index-expression 
+ERROR: 0:53: 'limitations' : Non-constant-index-expression 
+ERROR: 0:54: 'limitations' : Non-constant-index-expression 
+ERROR: 0:65: 'limitations' : Non-constant-index-expression 
+ERROR: 20 compilation errors.  No code generated.
+
+
diff --git a/Test/baseResults/100scope.vert.out b/Test/baseResults/100scope.vert.out
index 55b4dad..a3a6797 100644
--- a/Test/baseResults/100scope.vert.out
+++ b/Test/baseResults/100scope.vert.out
@@ -1,238 +1,238 @@
-100scope.vert

-ERROR: 0:5: 'a' : redefinition 

-ERROR: 0:17: 'b' : function name is redeclaration of existing name 

-ERROR: 0:20: 'c' : redefinition 

-ERROR: 0:22: 'f' : redefinition 

-ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es

-ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es

-ERROR: 0:38: 'local function declaration' : not supported with this profile: es

-ERROR: 0:43: 'sin' : can't use function syntax on variable 

-ERROR: 0:57: 'z' : undeclared identifier 

-ERROR: 0:57: 'z' : redefinition 

-ERROR: 0:73: 'degrees' : can't use function syntax on variable 

-ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions 

-ERROR: 12 compilation errors.  No code generated.

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global highp int)

-0:3    Function Parameters: 

-0:3      'a' (in highp int)

-0:3      'b' (in highp int)

-0:3      'c' (in highp int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp highp float)

-0:8            'a' (temp highp float)

-0:8            add (temp highp float)

-0:8              Convert int to float (temp highp float)

-0:8                'a' (in highp int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in highp int)

-0:25  Function Definition: cos(f1; (global highp float)

-0:25    Function Parameters: 

-0:25      'x' (in highp float)

-0:27    Sequence

-0:27      Branch: Return with expression

-0:27        Constant:

-0:27          1.000000

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return with expression

-0:31        Constant:

-0:31          true (const bool)

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp highp int)

-0:42      'sin' (temp highp float)

-0:43      Constant:

-0:43        0.000000

-0:44      Function Call: f(i1;i1;i1; (global highp int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp highp float)

-0:47        'f' (temp highp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)

-0:49        Construct vec4 (temp highp 4-component vector of float)

-0:49          'f' (temp highp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp highp int)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp highp int)

-0:52            'f' (temp highp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp highp int)

-0:51            'f' (temp highp int)

-0:54      Sequence

-0:54        move second child to first child (temp highp int)

-0:54          'x' (temp highp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp highp float)

-0:56            'x' (temp highp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp highp float)

-0:56            'y' (temp highp float)

-0:56            'x' (temp highp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp highp int)

-0:60            'x' (temp highp int)

-0:60            'x' (temp highp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp highp int x})

-0:68            'S' (temp structure{temp highp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp highp int)

-0:69          'S' (temp structure{temp highp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        0.000000

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'tan' (global highp float)

-0:?     's' (smooth out structure{global highp float f})

-

-

-Linked vertex stage:

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global highp int)

-0:3    Function Parameters: 

-0:3      'a' (in highp int)

-0:3      'b' (in highp int)

-0:3      'c' (in highp int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp highp float)

-0:8            'a' (temp highp float)

-0:8            add (temp highp float)

-0:8              Convert int to float (temp highp float)

-0:8                'a' (in highp int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in highp int)

-0:25  Function Definition: cos(f1; (global highp float)

-0:25    Function Parameters: 

-0:25      'x' (in highp float)

-0:27    Sequence

-0:27      Branch: Return with expression

-0:27        Constant:

-0:27          1.000000

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return with expression

-0:31        Constant:

-0:31          true (const bool)

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp highp int)

-0:42      'sin' (temp highp float)

-0:43      Constant:

-0:43        0.000000

-0:44      Function Call: f(i1;i1;i1; (global highp int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp highp float)

-0:47        'f' (temp highp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)

-0:49        Construct vec4 (temp highp 4-component vector of float)

-0:49          'f' (temp highp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp highp int)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp highp int)

-0:52            'f' (temp highp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp highp int)

-0:51            'f' (temp highp int)

-0:54      Sequence

-0:54        move second child to first child (temp highp int)

-0:54          'x' (temp highp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp highp float)

-0:56            'x' (temp highp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp highp float)

-0:56            'y' (temp highp float)

-0:56            'x' (temp highp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp highp int)

-0:60            'x' (temp highp int)

-0:60            'x' (temp highp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp highp int x})

-0:68            'S' (temp structure{temp highp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp highp int)

-0:69          'S' (temp structure{temp highp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        0.000000

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'tan' (global highp float)

-0:?     's' (smooth out structure{global highp float f})

-

+100scope.vert
+ERROR: 0:5: 'a' : redefinition 
+ERROR: 0:17: 'b' : function name is redeclaration of existing name 
+ERROR: 0:20: 'c' : redefinition 
+ERROR: 0:22: 'f' : redefinition 
+ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:38: 'local function declaration' : not supported with this profile: es
+ERROR: 0:43: 'sin' : can't use function syntax on variable 
+ERROR: 0:57: 'z' : undeclared identifier 
+ERROR: 0:57: 'z' : redefinition 
+ERROR: 0:73: 'degrees' : can't use function syntax on variable 
+ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions 
+ERROR: 12 compilation errors.  No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global highp int)
+0:3    Function Parameters: 
+0:3      'a' (in highp int)
+0:3      'b' (in highp int)
+0:3      'c' (in highp int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp highp float)
+0:8            'a' (temp highp float)
+0:8            add (temp highp float)
+0:8              Convert int to float (temp highp float)
+0:8                'a' (in highp int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in highp int)
+0:25  Function Definition: cos(f1; (global highp float)
+0:25    Function Parameters: 
+0:25      'x' (in highp float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Constant:
+0:27          1.000000
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return with expression
+0:31        Constant:
+0:31          true (const bool)
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp highp int)
+0:42      'sin' (temp highp float)
+0:43      Constant:
+0:43        0.000000
+0:44      Function Call: f(i1;i1;i1; (global highp int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp highp float)
+0:47        'f' (temp highp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49        Construct vec4 (temp highp 4-component vector of float)
+0:49          'f' (temp highp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp highp int)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp highp int)
+0:52            'f' (temp highp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp highp int)
+0:51            'f' (temp highp int)
+0:54      Sequence
+0:54        move second child to first child (temp highp int)
+0:54          'x' (temp highp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp highp float)
+0:56            'x' (temp highp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp highp float)
+0:56            'y' (temp highp float)
+0:56            'x' (temp highp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp highp int)
+0:60            'x' (temp highp int)
+0:60            'x' (temp highp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp highp int x})
+0:68            'S' (temp structure{temp highp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp highp int)
+0:69          'S' (temp structure{temp highp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        0.000000
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'tan' (global highp float)
+0:?     's' (smooth out structure{global highp float f})
+
+
+Linked vertex stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global highp int)
+0:3    Function Parameters: 
+0:3      'a' (in highp int)
+0:3      'b' (in highp int)
+0:3      'c' (in highp int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp highp float)
+0:8            'a' (temp highp float)
+0:8            add (temp highp float)
+0:8              Convert int to float (temp highp float)
+0:8                'a' (in highp int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in highp int)
+0:25  Function Definition: cos(f1; (global highp float)
+0:25    Function Parameters: 
+0:25      'x' (in highp float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Constant:
+0:27          1.000000
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return with expression
+0:31        Constant:
+0:31          true (const bool)
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp highp int)
+0:42      'sin' (temp highp float)
+0:43      Constant:
+0:43        0.000000
+0:44      Function Call: f(i1;i1;i1; (global highp int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp highp float)
+0:47        'f' (temp highp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49        Construct vec4 (temp highp 4-component vector of float)
+0:49          'f' (temp highp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp highp int)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp highp int)
+0:52            'f' (temp highp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp highp int)
+0:51            'f' (temp highp int)
+0:54      Sequence
+0:54        move second child to first child (temp highp int)
+0:54          'x' (temp highp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp highp float)
+0:56            'x' (temp highp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp highp float)
+0:56            'y' (temp highp float)
+0:56            'x' (temp highp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp highp int)
+0:60            'x' (temp highp int)
+0:60            'x' (temp highp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp highp int x})
+0:68            'S' (temp structure{temp highp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp highp int)
+0:69          'S' (temp structure{temp highp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        0.000000
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'tan' (global highp float)
+0:?     's' (smooth out structure{global highp float f})
+
diff --git a/Test/baseResults/110scope.vert.out b/Test/baseResults/110scope.vert.out
index 3151246..5f41b86 100644
--- a/Test/baseResults/110scope.vert.out
+++ b/Test/baseResults/110scope.vert.out
@@ -1,256 +1,256 @@
-110scope.vert

-ERROR: 0:5: 'a' : redefinition 

-ERROR: 0:34: 'f' : can't call user function from global scope 

-ERROR: 0:57: 'z' : undeclared identifier 

-ERROR: 0:57: 'z' : redefinition 

-ERROR: 4 compilation errors.  No code generated.

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global int)

-0:3    Function Parameters: 

-0:3      'a' (in int)

-0:3      'b' (in int)

-0:3      'c' (in int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp float)

-0:8            'a' (temp float)

-0:8            add (temp float)

-0:8              Convert int to float (temp float)

-0:8                'a' (in int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in int)

-0:25  Function Definition: cos(f1; (global float)

-0:25    Function Parameters: 

-0:25      'x' (in float)

-0:27    Sequence

-0:27      Branch: Return with expression

-0:27        Constant:

-0:27          1.000000

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return with expression

-0:31        Constant:

-0:31          true (const bool)

-0:34  Sequence

-0:34    move second child to first child (temp int)

-0:34      'gi' (global int)

-0:34      Function Call: f(i1;i1;i1; (global int)

-0:34        Constant:

-0:34          1 (const int)

-0:34        Constant:

-0:34          2 (const int)

-0:34        Constant:

-0:34          3 (const int)

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp int)

-0:42      'sin' (temp float)

-0:43      Function Call: sin(f1; (global float)

-0:43        Constant:

-0:43          0.700000

-0:44      Function Call: f(i1;i1;i1; (global int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp float)

-0:47        'f' (temp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        'gl_Position' (gl_Position 4-component vector of float Position)

-0:49        Construct vec4 (temp 4-component vector of float)

-0:49          'f' (temp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp int)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp int)

-0:52            'f' (temp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp int)

-0:51            'f' (temp int)

-0:54      Sequence

-0:54        move second child to first child (temp int)

-0:54          'x' (temp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp float)

-0:56            'x' (temp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp float)

-0:56            'y' (temp float)

-0:56            'x' (temp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp int)

-0:60            'x' (temp int)

-0:60            'x' (temp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp int x})

-0:68            'S' (temp structure{temp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp int)

-0:69          'S' (temp structure{temp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        183.346494

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'c' (global bool)

-0:?     'f' (global float)

-0:?     'tan' (global float)

-0:?     'gi' (global int)

-

-

-Linked vertex stage:

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global int)

-0:3    Function Parameters: 

-0:3      'a' (in int)

-0:3      'b' (in int)

-0:3      'c' (in int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp float)

-0:8            'a' (temp float)

-0:8            add (temp float)

-0:8              Convert int to float (temp float)

-0:8                'a' (in int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in int)

-0:25  Function Definition: cos(f1; (global float)

-0:25    Function Parameters: 

-0:25      'x' (in float)

-0:27    Sequence

-0:27      Branch: Return with expression

-0:27        Constant:

-0:27          1.000000

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return with expression

-0:31        Constant:

-0:31          true (const bool)

-0:34  Sequence

-0:34    move second child to first child (temp int)

-0:34      'gi' (global int)

-0:34      Function Call: f(i1;i1;i1; (global int)

-0:34        Constant:

-0:34          1 (const int)

-0:34        Constant:

-0:34          2 (const int)

-0:34        Constant:

-0:34          3 (const int)

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp int)

-0:42      'sin' (temp float)

-0:43      Function Call: sin(f1; (global float)

-0:43        Constant:

-0:43          0.700000

-0:44      Function Call: f(i1;i1;i1; (global int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp float)

-0:47        'f' (temp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        'gl_Position' (gl_Position 4-component vector of float Position)

-0:49        Construct vec4 (temp 4-component vector of float)

-0:49          'f' (temp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp int)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp int)

-0:52            'f' (temp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp int)

-0:51            'f' (temp int)

-0:54      Sequence

-0:54        move second child to first child (temp int)

-0:54          'x' (temp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp float)

-0:56            'x' (temp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp float)

-0:56            'y' (temp float)

-0:56            'x' (temp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp int)

-0:60            'x' (temp int)

-0:60            'x' (temp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp int x})

-0:68            'S' (temp structure{temp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp int)

-0:69          'S' (temp structure{temp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        183.346494

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'c' (global bool)

-0:?     'f' (global float)

-0:?     'tan' (global float)

-0:?     'gi' (global int)

-

+110scope.vert
+ERROR: 0:5: 'a' : redefinition 
+ERROR: 0:34: 'f' : can't call user function from global scope 
+ERROR: 0:57: 'z' : undeclared identifier 
+ERROR: 0:57: 'z' : redefinition 
+ERROR: 4 compilation errors.  No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global int)
+0:3    Function Parameters: 
+0:3      'a' (in int)
+0:3      'b' (in int)
+0:3      'c' (in int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp float)
+0:8            'a' (temp float)
+0:8            add (temp float)
+0:8              Convert int to float (temp float)
+0:8                'a' (in int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in int)
+0:25  Function Definition: cos(f1; (global float)
+0:25    Function Parameters: 
+0:25      'x' (in float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Constant:
+0:27          1.000000
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return with expression
+0:31        Constant:
+0:31          true (const bool)
+0:34  Sequence
+0:34    move second child to first child (temp int)
+0:34      'gi' (global int)
+0:34      Function Call: f(i1;i1;i1; (global int)
+0:34        Constant:
+0:34          1 (const int)
+0:34        Constant:
+0:34          2 (const int)
+0:34        Constant:
+0:34          3 (const int)
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp int)
+0:42      'sin' (temp float)
+0:43      Function Call: sin(f1; (global float)
+0:43        Constant:
+0:43          0.700000
+0:44      Function Call: f(i1;i1;i1; (global int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp float)
+0:47        'f' (temp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        'gl_Position' (gl_Position 4-component vector of float Position)
+0:49        Construct vec4 (temp 4-component vector of float)
+0:49          'f' (temp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp int)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp int)
+0:52            'f' (temp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp int)
+0:51            'f' (temp int)
+0:54      Sequence
+0:54        move second child to first child (temp int)
+0:54          'x' (temp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp float)
+0:56            'x' (temp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp float)
+0:56            'y' (temp float)
+0:56            'x' (temp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp int)
+0:60            'x' (temp int)
+0:60            'x' (temp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp int x})
+0:68            'S' (temp structure{temp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp int)
+0:69          'S' (temp structure{temp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        183.346494
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'c' (global bool)
+0:?     'f' (global float)
+0:?     'tan' (global float)
+0:?     'gi' (global int)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global int)
+0:3    Function Parameters: 
+0:3      'a' (in int)
+0:3      'b' (in int)
+0:3      'c' (in int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp float)
+0:8            'a' (temp float)
+0:8            add (temp float)
+0:8              Convert int to float (temp float)
+0:8                'a' (in int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in int)
+0:25  Function Definition: cos(f1; (global float)
+0:25    Function Parameters: 
+0:25      'x' (in float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Constant:
+0:27          1.000000
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return with expression
+0:31        Constant:
+0:31          true (const bool)
+0:34  Sequence
+0:34    move second child to first child (temp int)
+0:34      'gi' (global int)
+0:34      Function Call: f(i1;i1;i1; (global int)
+0:34        Constant:
+0:34          1 (const int)
+0:34        Constant:
+0:34          2 (const int)
+0:34        Constant:
+0:34          3 (const int)
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp int)
+0:42      'sin' (temp float)
+0:43      Function Call: sin(f1; (global float)
+0:43        Constant:
+0:43          0.700000
+0:44      Function Call: f(i1;i1;i1; (global int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp float)
+0:47        'f' (temp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        'gl_Position' (gl_Position 4-component vector of float Position)
+0:49        Construct vec4 (temp 4-component vector of float)
+0:49          'f' (temp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp int)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp int)
+0:52            'f' (temp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp int)
+0:51            'f' (temp int)
+0:54      Sequence
+0:54        move second child to first child (temp int)
+0:54          'x' (temp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp float)
+0:56            'x' (temp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp float)
+0:56            'y' (temp float)
+0:56            'x' (temp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp int)
+0:60            'x' (temp int)
+0:60            'x' (temp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp int x})
+0:68            'S' (temp structure{temp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp int)
+0:69          'S' (temp structure{temp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        183.346494
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'c' (global bool)
+0:?     'f' (global float)
+0:?     'tan' (global float)
+0:?     'gi' (global int)
+
diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out
index f92e106..0d10b0e 100644
--- a/Test/baseResults/120.frag.out
+++ b/Test/baseResults/120.frag.out
@@ -1,1193 +1,1193 @@
-120.frag

-ERROR: 0:9: 'in for stage inputs' : not supported for this version or the enabled extensions 

-ERROR: 0:10: 'out for stage outputs' : not supported for this version or the enabled extensions 

-ERROR: 0:54: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp 2-component vector of float' and a right operand of type 'temp 3-component vector of float' (or there is no acceptable conversion)

-ERROR: 0:55: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'uniform 4X2 matrix of float' and a right operand of type 'temp 3-component vector of float' (or there is no acceptable conversion)

-ERROR: 0:56: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'uniform 4X2 matrix of float' and a right operand of type 'smooth in 4-component vector of float' (or there is no acceptable conversion)

-ERROR: 0:57: '=' :  cannot convert from 'const float' to 'temp int'

-ERROR: 0:58: 'assign' :  cannot convert from 'temp bool' to 'temp float'

-ERROR: 0:59: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp int' and a right operand of type 'temp bool' (or there is no acceptable conversion)

-ERROR: 0:60: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp int' (or there is no acceptable conversion)

-ERROR: 0:60: 'assign' :  cannot convert from 'temp bool' to 'temp float'

-ERROR: 0:61: 'assign' :  cannot convert from 'temp int' to 'temp bool'

-ERROR: 0:62: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp float' (or there is no acceptable conversion)

-ERROR: 0:63: 'bitwise-or assign' : not supported for this version or the enabled extensions 

-ERROR: 0:63: 'assign' :  cannot convert from 'temp bool' to 'temp float'

-ERROR: 0:79: ':' :  wrong operand types: no operation ':' exists that takes a left-hand operand of type 'temp 4-component vector of float' and a right operand of type 'temp 4X4 matrix of float' (or there is no acceptable conversion)

-ERROR: 0:79: 'assign' :  cannot convert from 'temp 4X4 matrix of float' to 'fragColor 4-component vector of float FragColor'

-ERROR: 0:82: 'xr' : illegal - vector component fields not from the same set 

-ERROR: 0:83: 'xyxyx' : illegal vector field selection 

-ERROR: 0:83: 'scalar swizzle' : not supported for this version or the enabled extensions 

-ERROR: 0:83: 'xy' : vector field selection out of range 

-ERROR: 0:84: 'z' : vector field selection out of range 

-ERROR: 0:85: 'assign' :  l-value required 

-ERROR: 0:91: 'int' : overloaded functions must have the same return type 

-ERROR: 0:91: 'main' : function already has a body 

-ERROR: 0:91: 'int' :  main function cannot return a value

-ERROR: 0:92: 'main' : function cannot take any parameter(s) 

-ERROR: 0:94: 'a' : variables with qualifier 'const' must be initialized 

-ERROR: 0:97: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1

-ERROR: 0:99: 'return' : type does not match, or is not convertible to, the function's return type 

-ERROR: 0:115: 'return' : void function cannot return a value 

-ERROR: 0:125: 'gl_TexCoord' : redeclaration of array with size 

-ERROR: 0:152: 'matrixCompMult' : no matching overloaded function found 

-ERROR: 0:152: '=' :  cannot convert from 'const float' to 'temp 3X2 matrix of float'

-ERROR: 0:153: 'matrixCompMult' : no matching overloaded function found 

-ERROR: 0:153: '=' :  cannot convert from 'const float' to 'temp 3X4 matrix of float'

-ERROR: 0:160: 'constructor' : not enough data provided for construction 

-ERROR: 0:160: '=' :  cannot convert from 'const float' to 'temp 4X4 matrix of float'

-ERROR: 0:161: 'constructor' : too many arguments 

-ERROR: 0:161: '=' :  cannot convert from 'const float' to 'temp 4X4 matrix of float'

-ERROR: 0:165: 'constructor' : matrix constructed from matrix can only have one argument 

-ERROR: 0:166: 'constructor' : matrix constructed from matrix can only have one argument 

-ERROR: 0:172: 'constructor' : array constructor needs one argument per array element 

-ERROR: 0:172: '=' :  cannot convert from 'const float' to 'temp 2-element array of 3X3 matrix of float'

-ERROR: 0:184: 'texture2DLod' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:185: 'texture3DProjLod' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:186: 'texture1DProjLod' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:187: 'shadow2DProjLod' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:189: 'texture1DGradARB' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:190: 'texture2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:191: 'shadow2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod

-ERROR: 0:209: 'shadow2DRectProjGradARB' : no matching overloaded function found 

-ERROR: 0:209: 'assign' :  cannot convert from 'const float' to 'temp 4-component vector of float'

-ERROR: 0:212: 'sampler2DRect' : Reserved word. 

-ERROR: 53 compilation errors.  No code generated.

-

-

-Shader version: 120

-Requested GL_ARB_shader_texture_lod

-Requested GL_ARB_texture_rectangle

-ERROR: node is still EOpNull!

-0:21  Function Definition: main( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp 2X3 matrix of float)

-0:23          'm23' (temp 2X3 matrix of float)

-0:23          Construct mat2x3 (temp 2X3 matrix of float)

-0:23            'm' (uniform 4X2 matrix of float)

-0:27      Sequence

-0:27        move second child to first child (temp structure{global float f})

-0:27          'sv' (temp structure{global float f})

-0:27          Construct structure (temp structure{global float f})

-0:27            Convert int to float (temp float)

-0:27              'a' (temp int)

-0:28      Sequence

-0:28        move second child to first child (temp 2-element array of float)

-0:28          'ia' (temp 2-element array of float)

-0:28          Construct float (temp 2-element array of float)

-0:28            Constant:

-0:28              3.000000

-0:28            direct index (temp float)

-0:28              'i' (smooth in 4-component vector of float)

-0:28              Constant:

-0:28                1 (const int)

-0:29      Sequence

-0:29        move second child to first child (temp float)

-0:29          'f1' (temp float)

-0:29          Constant:

-0:29            1.000000

-0:30      Sequence

-0:30        move second child to first child (temp float)

-0:30          'f' (temp float)

-0:30          Convert int to float (temp float)

-0:30            'a' (temp int)

-0:31      move second child to first child (temp float)

-0:31        'f' (temp float)

-0:31        Convert int to float (temp float)

-0:31          'a' (temp int)

-0:33      Sequence

-0:33        move second child to first child (temp 3-component vector of float)

-0:33          'v3' (temp 3-component vector of float)

-0:33          Convert int to float (temp 3-component vector of float)

-0:33            'iv3' (temp 3-component vector of int)

-0:34      move second child to first child (temp float)

-0:34        'f' (temp float)

-0:34        add (temp float)

-0:34          'f' (temp float)

-0:34          Convert int to float (temp float)

-0:34            'a' (temp int)

-0:35      move second child to first child (temp float)

-0:35        'f' (temp float)

-0:35        subtract (temp float)

-0:35          Convert int to float (temp float)

-0:35            'a' (temp int)

-0:35          'f' (temp float)

-0:36      add second child into first child (temp float)

-0:36        'f' (temp float)

-0:36        Convert int to float (temp float)

-0:36          'a' (temp int)

-0:37      move second child to first child (temp float)

-0:37        'f' (temp float)

-0:37        subtract (temp float)

-0:37          Convert int to float (temp float)

-0:37            'a' (temp int)

-0:37          'f' (temp float)

-0:38      multiply second child into first child (temp 3-component vector of float)

-0:38        'v3' (temp 3-component vector of float)

-0:38        Convert int to float (temp 3-component vector of float)

-0:38          'iv3' (temp 3-component vector of int)

-0:39      move second child to first child (temp 3-component vector of float)

-0:39        'v3' (temp 3-component vector of float)

-0:39        divide (temp 3-component vector of float)

-0:39          Convert int to float (temp 3-component vector of float)

-0:39            'iv3' (temp 3-component vector of int)

-0:39          Constant:

-0:39            2.000000

-0:40      move second child to first child (temp 3-component vector of float)

-0:40        'v3' (temp 3-component vector of float)

-0:40        vector-scale (temp 3-component vector of float)

-0:40          Constant:

-0:40            3.000000

-0:40          Convert int to float (temp 3-component vector of float)

-0:40            'iv3' (temp 3-component vector of int)

-0:41      move second child to first child (temp 3-component vector of float)

-0:41        'v3' (temp 3-component vector of float)

-0:41        vector-scale (temp 3-component vector of float)

-0:41          Constant:

-0:41            2.000000

-0:41          'v3' (temp 3-component vector of float)

-0:42      move second child to first child (temp 3-component vector of float)

-0:42        'v3' (temp 3-component vector of float)

-0:42        subtract (temp 3-component vector of float)

-0:42          'v3' (temp 3-component vector of float)

-0:42          Constant:

-0:42            2.000000

-0:43      Test condition and select (temp void)

-0:43        Condition

-0:47        logical-or (temp bool)

-0:46          logical-or (temp bool)

-0:45            logical-or (temp bool)

-0:44              logical-or (temp bool)

-0:43                logical-or (temp bool)

-0:43                  Compare Less Than (temp bool)

-0:43                    'f' (temp float)

-0:43                    Convert int to float (temp float)

-0:43                      'a' (temp int)

-0:44                  Compare Less Than or Equal (temp bool)

-0:44                    Convert int to float (temp float)

-0:44                      'a' (temp int)

-0:44                    'f' (temp float)

-0:45                Compare Greater Than (temp bool)

-0:45                  'f' (temp float)

-0:45                  Convert int to float (temp float)

-0:45                    'a' (temp int)

-0:46              Compare Greater Than or Equal (temp bool)

-0:46                'f' (temp float)

-0:46                Convert int to float (temp float)

-0:46                  'a' (temp int)

-0:47            Compare Equal (temp bool)

-0:47              Convert int to float (temp float)

-0:47                'a' (temp int)

-0:47              'f' (temp float)

-0:48          Compare Not Equal (temp bool)

-0:48            'f' (temp float)

-0:48            Convert int to float (temp float)

-0:48              'a' (temp int)

-0:43        true case is null

-0:49      move second child to first child (temp float)

-0:49        'f' (temp float)

-0:49        Test condition and select (temp float)

-0:49          Condition

-0:49          'b' (temp bool)

-0:49          true case

-0:49          Convert int to float (temp float)

-0:49            'a' (temp int)

-0:49          false case

-0:49          'f' (temp float)

-0:50      move second child to first child (temp float)

-0:50        'f' (temp float)

-0:50        Test condition and select (temp float)

-0:50          Condition

-0:50          'b' (temp bool)

-0:50          true case

-0:50          'f' (temp float)

-0:50          false case

-0:50          Convert int to float (temp float)

-0:50            'a' (temp int)

-0:51      move second child to first child (temp float)

-0:51        'f' (temp float)

-0:51        Convert int to float (temp float)

-0:51          Test condition and select (temp int)

-0:51            Condition

-0:51            'b' (temp bool)

-0:51            true case

-0:51            'a' (temp int)

-0:51            false case

-0:51            'a' (temp int)

-0:52      Sequence

-0:52        move second child to first child (temp structure{global float f})

-0:52          'news' (temp structure{global float f})

-0:52          'sv' (temp structure{global float f})

-0:54      vector swizzle (temp 2-component vector of float)

-0:54        'i' (smooth in 4-component vector of float)

-0:54        Sequence

-0:54          Constant:

-0:54            0 (const int)

-0:54          Constant:

-0:54            1 (const int)

-0:55      'm' (uniform 4X2 matrix of float)

-0:56      'm' (uniform 4X2 matrix of float)

-0:58      'f' (temp float)

-0:59      move second child to first child (temp float)

-0:59        'f' (temp float)

-0:59        Convert int to float (temp float)

-0:59          'a' (temp int)

-0:60      'f' (temp float)

-0:61      'b' (temp bool)

-0:62      move second child to first child (temp bool)

-0:62        'b' (temp bool)

-0:62        'b' (temp bool)

-0:63      'f' (temp float)

-0:65      move second child to first child (temp 4-component vector of float)

-0:65        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:65        texture (global 4-component vector of float)

-0:65          's2D' (uniform sampler2D)

-0:65          'centTexCoord' (centroid smooth in 2-component vector of float)

-0:?       Sequence

-0:79        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:82      direct index (temp float)

-0:82        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:82        Constant:

-0:82          0 (const int)

-0:83      direct index (temp float)

-0:83        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:83        Constant:

-0:83          0 (const int)

-0:84      direct index (temp float)

-0:84        'centTexCoord' (centroid smooth in 2-component vector of float)

-0:84        Constant:

-0:84          0 (const int)

-0:85      move second child to first child (temp bool)

-0:85        Comma (temp bool)

-0:85          'a' (temp int)

-0:85          'b' (temp bool)

-0:85        Constant:

-0:85          true (const bool)

-0:91  Function Definition: main( (global int)

-0:91    Function Parameters: 

-0:92  Function Definition: main(i1; (global void)

-0:92    Function Parameters: 

-0:92      'a' (in int)

-0:97  Function Definition: foo(f1; (global int)

-0:97    Function Parameters: 

-0:97      'a' (out float)

-0:99    Sequence

-0:99      Branch: Return with expression

-0:99        Constant:

-0:99          3.200000

-0:100      Function Call: foo(f1; (global int)

-0:100        'a' (out float)

-0:103  Function Definition: gen(vf3; (global bool)

-0:103    Function Parameters: 

-0:103      'v' (in 3-component vector of float)

-0:105    Sequence

-0:105      Test condition and select (temp void)

-0:105        Condition

-0:105        logical-and (temp bool)

-0:105          Compare Less Than (temp bool)

-0:105            Absolute value (global float)

-0:105              direct index (temp float)

-0:105                'v' (in 3-component vector of float)

-0:105                Constant:

-0:105                  0 (const int)

-0:105            Constant:

-0:105              0.000100

-0:105          Compare Less Than (temp bool)

-0:105            Absolute value (global float)

-0:105              direct index (temp float)

-0:105                'v' (in 3-component vector of float)

-0:105                Constant:

-0:105                  1 (const int)

-0:105            Constant:

-0:105              0.000100

-0:105        true case

-0:106        Branch: Return with expression

-0:106          Constant:

-0:106            true (const bool)

-0:109  Function Definition: v1( (global void)

-0:109    Function Parameters: 

-0:113  Function Definition: v2( (global void)

-0:113    Function Parameters: 

-0:115    Sequence

-0:115      Branch: Return

-0:118  Function Definition: atest( (global void)

-0:118    Function Parameters: 

-0:120    Sequence

-0:120      Sequence

-0:120        move second child to first child (temp 4-component vector of float)

-0:120          'v' (temp 4-component vector of float)

-0:120          direct index (smooth temp 4-component vector of float TexCoord)

-0:120            'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:120            Constant:

-0:120              1 (const int)

-0:121      add second child into first child (temp 4-component vector of float)

-0:121        'v' (temp 4-component vector of float)

-0:121        direct index (smooth temp 4-component vector of float TexCoord)

-0:121          'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:121          Constant:

-0:121            3 (const int)

-0:139  Function Definition: foo123( (global void)

-0:139    Function Parameters: 

-0:141    Sequence

-0:141      Sequence

-0:141        move second child to first child (temp 2X2 matrix of float)

-0:141          'r2' (temp 2X2 matrix of float)

-0:141          component-wise multiply (global 2X2 matrix of float)

-0:141            'm22' (global 2X2 matrix of float)

-0:141            'm22' (global 2X2 matrix of float)

-0:142      Sequence

-0:142        move second child to first child (temp 3X3 matrix of float)

-0:142          'r3' (temp 3X3 matrix of float)

-0:142          component-wise multiply (global 3X3 matrix of float)

-0:142            'm33' (global 3X3 matrix of float)

-0:142            'm33' (global 3X3 matrix of float)

-0:143      Sequence

-0:143        move second child to first child (temp 4X4 matrix of float)

-0:143          'r4' (temp 4X4 matrix of float)

-0:143          component-wise multiply (global 4X4 matrix of float)

-0:143            'm44' (global 4X4 matrix of float)

-0:143            'm44' (global 4X4 matrix of float)

-0:145      Sequence

-0:145        move second child to first child (temp 2X3 matrix of float)

-0:145          'r23' (temp 2X3 matrix of float)

-0:145          component-wise multiply (global 2X3 matrix of float)

-0:145            'm23' (global 2X3 matrix of float)

-0:145            'm23' (global 2X3 matrix of float)

-0:146      Sequence

-0:146        move second child to first child (temp 2X4 matrix of float)

-0:146          'r24' (temp 2X4 matrix of float)

-0:146          component-wise multiply (global 2X4 matrix of float)

-0:146            'm24' (global 2X4 matrix of float)

-0:146            'm24' (global 2X4 matrix of float)

-0:147      Sequence

-0:147        move second child to first child (temp 3X2 matrix of float)

-0:147          'r32' (temp 3X2 matrix of float)

-0:147          component-wise multiply (global 3X2 matrix of float)

-0:147            'm32' (global 3X2 matrix of float)

-0:147            'm32' (global 3X2 matrix of float)

-0:148      Sequence

-0:148        move second child to first child (temp 3X4 matrix of float)

-0:148          'r34' (temp 3X4 matrix of float)

-0:148          component-wise multiply (global 3X4 matrix of float)

-0:148            'm34' (global 3X4 matrix of float)

-0:148            'm34' (global 3X4 matrix of float)

-0:149      Sequence

-0:149        move second child to first child (temp 4X2 matrix of float)

-0:149          'r42' (temp 4X2 matrix of float)

-0:149          component-wise multiply (global 4X2 matrix of float)

-0:149            'm42' (global 4X2 matrix of float)

-0:149            'm42' (global 4X2 matrix of float)

-0:150      Sequence

-0:150        move second child to first child (temp 4X3 matrix of float)

-0:150          'r43' (temp 4X3 matrix of float)

-0:150          component-wise multiply (global 4X3 matrix of float)

-0:150            'm43' (global 4X3 matrix of float)

-0:150            'm43' (global 4X3 matrix of float)

-0:156  Function Definition: matConst( (global void)

-0:156    Function Parameters: 

-0:?     Sequence

-0:162      Sequence

-0:162        move second child to first child (temp 4X4 matrix of float)

-0:162          'm4g' (temp 4X4 matrix of float)

-0:162          Construct mat4 (temp 4X4 matrix of float)

-0:162            'v2' (temp 2-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:163      Sequence

-0:163        move second child to first child (temp 4X4 matrix of float)

-0:163          'm4' (temp 4X4 matrix of float)

-0:163          Construct mat4 (temp 4X4 matrix of float)

-0:163            'v2' (temp 2-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v2' (temp 2-component vector of float)

-0:164      Sequence

-0:164        move second child to first child (temp 3X3 matrix of float)

-0:164          'm3' (temp 3X3 matrix of float)

-0:164          Construct mat3 (temp 3X3 matrix of float)

-0:164            'm4' (temp 4X4 matrix of float)

-0:165      Sequence

-0:165        move second child to first child (temp 3X3 matrix of float)

-0:165          'm3b1' (temp 3X3 matrix of float)

-0:165          Construct mat3 (temp 3X3 matrix of float)

-0:165            'm4' (temp 4X4 matrix of float)

-0:165            'v2' (temp 2-component vector of float)

-0:166      Sequence

-0:166        move second child to first child (temp 3X3 matrix of float)

-0:166          'm3b2' (temp 3X3 matrix of float)

-0:166          Construct mat3 (temp 3X3 matrix of float)

-0:166            'm4' (temp 4X4 matrix of float)

-0:166            'm4' (temp 4X4 matrix of float)

-0:167      Sequence

-0:167        move second child to first child (temp 3X2 matrix of float)

-0:167          'm32' (temp 3X2 matrix of float)

-0:167          Construct mat3x2 (temp 3X2 matrix of float)

-0:167            'm4' (temp 4X4 matrix of float)

-0:168      Sequence

-0:168        move second child to first child (temp 4X4 matrix of float)

-0:168          'm4c' (temp 4X4 matrix of float)

-0:168          Construct mat4 (temp 4X4 matrix of float)

-0:168            'm32' (temp 3X2 matrix of float)

-0:169      Sequence

-0:169        move second child to first child (temp 3X3 matrix of float)

-0:169          'm3s' (temp 3X3 matrix of float)

-0:169          Construct mat3 (temp 3X3 matrix of float)

-0:169            direct index (temp float)

-0:169              'v2' (temp 2-component vector of float)

-0:169              Constant:

-0:169                0 (const int)

-0:171      Sequence

-0:171        move second child to first child (temp 2-element array of 3X3 matrix of float)

-0:171          'm3a1' (temp 2-element array of 3X3 matrix of float)

-0:171          Construct mat3 (temp 2-element array of 3X3 matrix of float)

-0:171            'm3s' (temp 3X3 matrix of float)

-0:171            'm3s' (temp 3X3 matrix of float)

-0:179  Function Definition: foo2323( (global void)

-0:179    Function Parameters: 

-0:?     Sequence

-0:184      move second child to first child (temp 4-component vector of float)

-0:184        'v' (temp 4-component vector of float)

-0:184        textureLod (global 4-component vector of float)

-0:184          's2D' (uniform sampler2D)

-0:184          'v2' (temp 2-component vector of float)

-0:184          'f' (temp float)

-0:185      move second child to first child (temp 4-component vector of float)

-0:185        'v' (temp 4-component vector of float)

-0:185        textureProjLod (global 4-component vector of float)

-0:185          's3D' (uniform sampler3D)

-0:185          'v' (temp 4-component vector of float)

-0:185          'f' (temp float)

-0:186      move second child to first child (temp 4-component vector of float)

-0:186        'v' (temp 4-component vector of float)

-0:186        textureProjLod (global 4-component vector of float)

-0:186          's1D' (uniform sampler1D)

-0:186          'v' (temp 4-component vector of float)

-0:186          'f' (temp float)

-0:187      move second child to first child (temp 4-component vector of float)

-0:187        'v' (temp 4-component vector of float)

-0:187        textureProjLod (global 4-component vector of float)

-0:187          's2DS' (uniform sampler2DShadow)

-0:187          'v' (temp 4-component vector of float)

-0:187          'f' (temp float)

-0:189      move second child to first child (temp 4-component vector of float)

-0:189        'v' (temp 4-component vector of float)

-0:189        textureGrad (global 4-component vector of float)

-0:189          's1D' (uniform sampler1D)

-0:189          'f' (temp float)

-0:189          'f' (temp float)

-0:189          'f' (temp float)

-0:190      move second child to first child (temp 4-component vector of float)

-0:190        'v' (temp 4-component vector of float)

-0:190        textureProjGrad (global 4-component vector of float)

-0:190          's2D' (uniform sampler2D)

-0:190          'v' (temp 4-component vector of float)

-0:190          'v2' (temp 2-component vector of float)

-0:190          'v2' (temp 2-component vector of float)

-0:191      move second child to first child (temp 4-component vector of float)

-0:191        'v' (temp 4-component vector of float)

-0:191        textureProjGrad (global 4-component vector of float)

-0:191          's2DS' (uniform sampler2DShadow)

-0:191          'v' (temp 4-component vector of float)

-0:191          'v2' (temp 2-component vector of float)

-0:191          'v2' (temp 2-component vector of float)

-0:196  Function Definition: foo2324( (global void)

-0:196    Function Parameters: 

-0:?     Sequence

-0:201      move second child to first child (temp 4-component vector of float)

-0:201        'v' (temp 4-component vector of float)

-0:201        textureLod (global 4-component vector of float)

-0:201          's2D' (uniform sampler2D)

-0:201          'v2' (temp 2-component vector of float)

-0:201          'f' (temp float)

-0:202      move second child to first child (temp 4-component vector of float)

-0:202        'v' (temp 4-component vector of float)

-0:202        textureProjLod (global 4-component vector of float)

-0:202          's3D' (uniform sampler3D)

-0:202          'v' (temp 4-component vector of float)

-0:202          'f' (temp float)

-0:203      move second child to first child (temp 4-component vector of float)

-0:203        'v' (temp 4-component vector of float)

-0:203        textureProjLod (global 4-component vector of float)

-0:203          's1D' (uniform sampler1D)

-0:203          'v' (temp 4-component vector of float)

-0:203          'f' (temp float)

-0:204      move second child to first child (temp 4-component vector of float)

-0:204        'v' (temp 4-component vector of float)

-0:204        textureProjLod (global 4-component vector of float)

-0:204          's2DS' (uniform sampler2DShadow)

-0:204          'v' (temp 4-component vector of float)

-0:204          'f' (temp float)

-0:206      move second child to first child (temp 4-component vector of float)

-0:206        'v' (temp 4-component vector of float)

-0:206        textureGrad (global 4-component vector of float)

-0:206          's1D' (uniform sampler1D)

-0:206          'f' (temp float)

-0:206          'f' (temp float)

-0:206          'f' (temp float)

-0:207      move second child to first child (temp 4-component vector of float)

-0:207        'v' (temp 4-component vector of float)

-0:207        textureProjGrad (global 4-component vector of float)

-0:207          's2D' (uniform sampler2D)

-0:207          'v' (temp 4-component vector of float)

-0:207          'v2' (temp 2-component vector of float)

-0:207          'v2' (temp 2-component vector of float)

-0:208      move second child to first child (temp 4-component vector of float)

-0:208        'v' (temp 4-component vector of float)

-0:208        textureProjGrad (global 4-component vector of float)

-0:208          's2DS' (uniform sampler2DShadow)

-0:208          'v' (temp 4-component vector of float)

-0:208          'v2' (temp 2-component vector of float)

-0:208          'v2' (temp 2-component vector of float)

-0:209      'v' (temp 4-component vector of float)

-0:214  Function Definition: foo121111( (global void)

-0:214    Function Parameters: 

-0:?     Sequence

-0:217      Sequence

-0:217        move second child to first child (temp 4-component vector of float)

-0:217          'v' (temp 4-component vector of float)

-0:217          texture (global 4-component vector of float)

-0:217            's2DRbad' (uniform sampler2DRect)

-0:217            'v2' (temp 2-component vector of float)

-0:225  Function Definition: foo12111( (global void)

-0:225    Function Parameters: 

-0:?     Sequence

-0:231      move second child to first child (temp 4-component vector of float)

-0:231        'v' (temp 4-component vector of float)

-0:231        texture (global 4-component vector of float)

-0:231          's2DR' (uniform sampler2DRect)

-0:231          'v2' (temp 2-component vector of float)

-0:232      move second child to first child (temp 4-component vector of float)

-0:232        'v' (temp 4-component vector of float)

-0:232        textureProj (global 4-component vector of float)

-0:232          's2DR' (uniform sampler2DRect)

-0:232          'v3' (temp 3-component vector of float)

-0:233      move second child to first child (temp 4-component vector of float)

-0:233        'v' (temp 4-component vector of float)

-0:233        textureProj (global 4-component vector of float)

-0:233          's2DR' (uniform sampler2DRect)

-0:233          'v4' (temp 4-component vector of float)

-0:234      move second child to first child (temp 4-component vector of float)

-0:234        'v' (temp 4-component vector of float)

-0:234        texture (global 4-component vector of float)

-0:234          's2DRS' (uniform sampler2DRectShadow)

-0:234          'v3' (temp 3-component vector of float)

-0:235      move second child to first child (temp 4-component vector of float)

-0:235        'v' (temp 4-component vector of float)

-0:235        textureProj (global 4-component vector of float)

-0:235          's2DRS' (uniform sampler2DRectShadow)

-0:235          'v4' (temp 4-component vector of float)

-0:237      move second child to first child (temp 4-component vector of float)

-0:237        'v' (temp 4-component vector of float)

-0:237        textureProjGrad (global 4-component vector of float)

-0:237          's2DRS' (uniform sampler2DRectShadow)

-0:237          'v' (temp 4-component vector of float)

-0:237          'v2' (temp 2-component vector of float)

-0:237          'v2' (temp 2-component vector of float)

-0:?   Linker Objects

-0:?     'lowp' (global float)

-0:?     'mediump' (global float)

-0:?     'highp' (global float)

-0:?     'precision' (global float)

-0:?     'i' (smooth in 4-component vector of float)

-0:?     'o' (out 4-component vector of float)

-0:?     's2D' (uniform sampler2D)

-0:?     'centTexCoord' (centroid smooth in 2-component vector of float)

-0:?     'm' (uniform 4X2 matrix of float)

-0:?     'imageBuffer' (global float)

-0:?     'uimage2DRect' (global float)

-0:?     'a' (temp int)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'm22' (global 2X2 matrix of float)

-0:?     'm23' (global 2X3 matrix of float)

-0:?     'm24' (global 2X4 matrix of float)

-0:?     'm32' (global 3X2 matrix of float)

-0:?     'm33' (global 3X3 matrix of float)

-0:?     'm34' (global 3X4 matrix of float)

-0:?     'm42' (global 4X2 matrix of float)

-0:?     'm43' (global 4X3 matrix of float)

-0:?     'm44' (global 4X4 matrix of float)

-0:?     's3D' (uniform sampler3D)

-0:?     's1D' (uniform sampler1D)

-0:?     's2DS' (uniform sampler2DShadow)

-0:?     's2DRbad' (uniform sampler2DRect)

-0:?     's2DR' (uniform sampler2DRect)

-0:?     's2DRS' (uniform sampler2DRectShadow)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Recursion detected:

-    foo(f1; calling foo(f1;

-

-Shader version: 120

-Requested GL_ARB_shader_texture_lod

-Requested GL_ARB_texture_rectangle

-ERROR: node is still EOpNull!

-0:21  Function Definition: main( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp 2X3 matrix of float)

-0:23          'm23' (temp 2X3 matrix of float)

-0:23          Construct mat2x3 (temp 2X3 matrix of float)

-0:23            'm' (uniform 4X2 matrix of float)

-0:27      Sequence

-0:27        move second child to first child (temp structure{global float f})

-0:27          'sv' (temp structure{global float f})

-0:27          Construct structure (temp structure{global float f})

-0:27            Convert int to float (temp float)

-0:27              'a' (temp int)

-0:28      Sequence

-0:28        move second child to first child (temp 2-element array of float)

-0:28          'ia' (temp 2-element array of float)

-0:28          Construct float (temp 2-element array of float)

-0:28            Constant:

-0:28              3.000000

-0:28            direct index (temp float)

-0:28              'i' (smooth in 4-component vector of float)

-0:28              Constant:

-0:28                1 (const int)

-0:29      Sequence

-0:29        move second child to first child (temp float)

-0:29          'f1' (temp float)

-0:29          Constant:

-0:29            1.000000

-0:30      Sequence

-0:30        move second child to first child (temp float)

-0:30          'f' (temp float)

-0:30          Convert int to float (temp float)

-0:30            'a' (temp int)

-0:31      move second child to first child (temp float)

-0:31        'f' (temp float)

-0:31        Convert int to float (temp float)

-0:31          'a' (temp int)

-0:33      Sequence

-0:33        move second child to first child (temp 3-component vector of float)

-0:33          'v3' (temp 3-component vector of float)

-0:33          Convert int to float (temp 3-component vector of float)

-0:33            'iv3' (temp 3-component vector of int)

-0:34      move second child to first child (temp float)

-0:34        'f' (temp float)

-0:34        add (temp float)

-0:34          'f' (temp float)

-0:34          Convert int to float (temp float)

-0:34            'a' (temp int)

-0:35      move second child to first child (temp float)

-0:35        'f' (temp float)

-0:35        subtract (temp float)

-0:35          Convert int to float (temp float)

-0:35            'a' (temp int)

-0:35          'f' (temp float)

-0:36      add second child into first child (temp float)

-0:36        'f' (temp float)

-0:36        Convert int to float (temp float)

-0:36          'a' (temp int)

-0:37      move second child to first child (temp float)

-0:37        'f' (temp float)

-0:37        subtract (temp float)

-0:37          Convert int to float (temp float)

-0:37            'a' (temp int)

-0:37          'f' (temp float)

-0:38      multiply second child into first child (temp 3-component vector of float)

-0:38        'v3' (temp 3-component vector of float)

-0:38        Convert int to float (temp 3-component vector of float)

-0:38          'iv3' (temp 3-component vector of int)

-0:39      move second child to first child (temp 3-component vector of float)

-0:39        'v3' (temp 3-component vector of float)

-0:39        divide (temp 3-component vector of float)

-0:39          Convert int to float (temp 3-component vector of float)

-0:39            'iv3' (temp 3-component vector of int)

-0:39          Constant:

-0:39            2.000000

-0:40      move second child to first child (temp 3-component vector of float)

-0:40        'v3' (temp 3-component vector of float)

-0:40        vector-scale (temp 3-component vector of float)

-0:40          Constant:

-0:40            3.000000

-0:40          Convert int to float (temp 3-component vector of float)

-0:40            'iv3' (temp 3-component vector of int)

-0:41      move second child to first child (temp 3-component vector of float)

-0:41        'v3' (temp 3-component vector of float)

-0:41        vector-scale (temp 3-component vector of float)

-0:41          Constant:

-0:41            2.000000

-0:41          'v3' (temp 3-component vector of float)

-0:42      move second child to first child (temp 3-component vector of float)

-0:42        'v3' (temp 3-component vector of float)

-0:42        subtract (temp 3-component vector of float)

-0:42          'v3' (temp 3-component vector of float)

-0:42          Constant:

-0:42            2.000000

-0:43      Test condition and select (temp void)

-0:43        Condition

-0:47        logical-or (temp bool)

-0:46          logical-or (temp bool)

-0:45            logical-or (temp bool)

-0:44              logical-or (temp bool)

-0:43                logical-or (temp bool)

-0:43                  Compare Less Than (temp bool)

-0:43                    'f' (temp float)

-0:43                    Convert int to float (temp float)

-0:43                      'a' (temp int)

-0:44                  Compare Less Than or Equal (temp bool)

-0:44                    Convert int to float (temp float)

-0:44                      'a' (temp int)

-0:44                    'f' (temp float)

-0:45                Compare Greater Than (temp bool)

-0:45                  'f' (temp float)

-0:45                  Convert int to float (temp float)

-0:45                    'a' (temp int)

-0:46              Compare Greater Than or Equal (temp bool)

-0:46                'f' (temp float)

-0:46                Convert int to float (temp float)

-0:46                  'a' (temp int)

-0:47            Compare Equal (temp bool)

-0:47              Convert int to float (temp float)

-0:47                'a' (temp int)

-0:47              'f' (temp float)

-0:48          Compare Not Equal (temp bool)

-0:48            'f' (temp float)

-0:48            Convert int to float (temp float)

-0:48              'a' (temp int)

-0:43        true case is null

-0:49      move second child to first child (temp float)

-0:49        'f' (temp float)

-0:49        Test condition and select (temp float)

-0:49          Condition

-0:49          'b' (temp bool)

-0:49          true case

-0:49          Convert int to float (temp float)

-0:49            'a' (temp int)

-0:49          false case

-0:49          'f' (temp float)

-0:50      move second child to first child (temp float)

-0:50        'f' (temp float)

-0:50        Test condition and select (temp float)

-0:50          Condition

-0:50          'b' (temp bool)

-0:50          true case

-0:50          'f' (temp float)

-0:50          false case

-0:50          Convert int to float (temp float)

-0:50            'a' (temp int)

-0:51      move second child to first child (temp float)

-0:51        'f' (temp float)

-0:51        Convert int to float (temp float)

-0:51          Test condition and select (temp int)

-0:51            Condition

-0:51            'b' (temp bool)

-0:51            true case

-0:51            'a' (temp int)

-0:51            false case

-0:51            'a' (temp int)

-0:52      Sequence

-0:52        move second child to first child (temp structure{global float f})

-0:52          'news' (temp structure{global float f})

-0:52          'sv' (temp structure{global float f})

-0:54      vector swizzle (temp 2-component vector of float)

-0:54        'i' (smooth in 4-component vector of float)

-0:54        Sequence

-0:54          Constant:

-0:54            0 (const int)

-0:54          Constant:

-0:54            1 (const int)

-0:55      'm' (uniform 4X2 matrix of float)

-0:56      'm' (uniform 4X2 matrix of float)

-0:58      'f' (temp float)

-0:59      move second child to first child (temp float)

-0:59        'f' (temp float)

-0:59        Convert int to float (temp float)

-0:59          'a' (temp int)

-0:60      'f' (temp float)

-0:61      'b' (temp bool)

-0:62      move second child to first child (temp bool)

-0:62        'b' (temp bool)

-0:62        'b' (temp bool)

-0:63      'f' (temp float)

-0:65      move second child to first child (temp 4-component vector of float)

-0:65        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:65        texture (global 4-component vector of float)

-0:65          's2D' (uniform sampler2D)

-0:65          'centTexCoord' (centroid smooth in 2-component vector of float)

-0:?       Sequence

-0:79        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:82      direct index (temp float)

-0:82        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:82        Constant:

-0:82          0 (const int)

-0:83      direct index (temp float)

-0:83        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:83        Constant:

-0:83          0 (const int)

-0:84      direct index (temp float)

-0:84        'centTexCoord' (centroid smooth in 2-component vector of float)

-0:84        Constant:

-0:84          0 (const int)

-0:85      move second child to first child (temp bool)

-0:85        Comma (temp bool)

-0:85          'a' (temp int)

-0:85          'b' (temp bool)

-0:85        Constant:

-0:85          true (const bool)

-0:91  Function Definition: main( (global int)

-0:91    Function Parameters: 

-0:92  Function Definition: main(i1; (global void)

-0:92    Function Parameters: 

-0:92      'a' (in int)

-0:97  Function Definition: foo(f1; (global int)

-0:97    Function Parameters: 

-0:97      'a' (out float)

-0:99    Sequence

-0:99      Branch: Return with expression

-0:99        Constant:

-0:99          3.200000

-0:100      Function Call: foo(f1; (global int)

-0:100        'a' (out float)

-0:103  Function Definition: gen(vf3; (global bool)

-0:103    Function Parameters: 

-0:103      'v' (in 3-component vector of float)

-0:105    Sequence

-0:105      Test condition and select (temp void)

-0:105        Condition

-0:105        logical-and (temp bool)

-0:105          Compare Less Than (temp bool)

-0:105            Absolute value (global float)

-0:105              direct index (temp float)

-0:105                'v' (in 3-component vector of float)

-0:105                Constant:

-0:105                  0 (const int)

-0:105            Constant:

-0:105              0.000100

-0:105          Compare Less Than (temp bool)

-0:105            Absolute value (global float)

-0:105              direct index (temp float)

-0:105                'v' (in 3-component vector of float)

-0:105                Constant:

-0:105                  1 (const int)

-0:105            Constant:

-0:105              0.000100

-0:105        true case

-0:106        Branch: Return with expression

-0:106          Constant:

-0:106            true (const bool)

-0:109  Function Definition: v1( (global void)

-0:109    Function Parameters: 

-0:113  Function Definition: v2( (global void)

-0:113    Function Parameters: 

-0:115    Sequence

-0:115      Branch: Return

-0:118  Function Definition: atest( (global void)

-0:118    Function Parameters: 

-0:120    Sequence

-0:120      Sequence

-0:120        move second child to first child (temp 4-component vector of float)

-0:120          'v' (temp 4-component vector of float)

-0:120          direct index (smooth temp 4-component vector of float TexCoord)

-0:120            'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:120            Constant:

-0:120              1 (const int)

-0:121      add second child into first child (temp 4-component vector of float)

-0:121        'v' (temp 4-component vector of float)

-0:121        direct index (smooth temp 4-component vector of float TexCoord)

-0:121          'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:121          Constant:

-0:121            3 (const int)

-0:139  Function Definition: foo123( (global void)

-0:139    Function Parameters: 

-0:141    Sequence

-0:141      Sequence

-0:141        move second child to first child (temp 2X2 matrix of float)

-0:141          'r2' (temp 2X2 matrix of float)

-0:141          component-wise multiply (global 2X2 matrix of float)

-0:141            'm22' (global 2X2 matrix of float)

-0:141            'm22' (global 2X2 matrix of float)

-0:142      Sequence

-0:142        move second child to first child (temp 3X3 matrix of float)

-0:142          'r3' (temp 3X3 matrix of float)

-0:142          component-wise multiply (global 3X3 matrix of float)

-0:142            'm33' (global 3X3 matrix of float)

-0:142            'm33' (global 3X3 matrix of float)

-0:143      Sequence

-0:143        move second child to first child (temp 4X4 matrix of float)

-0:143          'r4' (temp 4X4 matrix of float)

-0:143          component-wise multiply (global 4X4 matrix of float)

-0:143            'm44' (global 4X4 matrix of float)

-0:143            'm44' (global 4X4 matrix of float)

-0:145      Sequence

-0:145        move second child to first child (temp 2X3 matrix of float)

-0:145          'r23' (temp 2X3 matrix of float)

-0:145          component-wise multiply (global 2X3 matrix of float)

-0:145            'm23' (global 2X3 matrix of float)

-0:145            'm23' (global 2X3 matrix of float)

-0:146      Sequence

-0:146        move second child to first child (temp 2X4 matrix of float)

-0:146          'r24' (temp 2X4 matrix of float)

-0:146          component-wise multiply (global 2X4 matrix of float)

-0:146            'm24' (global 2X4 matrix of float)

-0:146            'm24' (global 2X4 matrix of float)

-0:147      Sequence

-0:147        move second child to first child (temp 3X2 matrix of float)

-0:147          'r32' (temp 3X2 matrix of float)

-0:147          component-wise multiply (global 3X2 matrix of float)

-0:147            'm32' (global 3X2 matrix of float)

-0:147            'm32' (global 3X2 matrix of float)

-0:148      Sequence

-0:148        move second child to first child (temp 3X4 matrix of float)

-0:148          'r34' (temp 3X4 matrix of float)

-0:148          component-wise multiply (global 3X4 matrix of float)

-0:148            'm34' (global 3X4 matrix of float)

-0:148            'm34' (global 3X4 matrix of float)

-0:149      Sequence

-0:149        move second child to first child (temp 4X2 matrix of float)

-0:149          'r42' (temp 4X2 matrix of float)

-0:149          component-wise multiply (global 4X2 matrix of float)

-0:149            'm42' (global 4X2 matrix of float)

-0:149            'm42' (global 4X2 matrix of float)

-0:150      Sequence

-0:150        move second child to first child (temp 4X3 matrix of float)

-0:150          'r43' (temp 4X3 matrix of float)

-0:150          component-wise multiply (global 4X3 matrix of float)

-0:150            'm43' (global 4X3 matrix of float)

-0:150            'm43' (global 4X3 matrix of float)

-0:156  Function Definition: matConst( (global void)

-0:156    Function Parameters: 

-0:?     Sequence

-0:162      Sequence

-0:162        move second child to first child (temp 4X4 matrix of float)

-0:162          'm4g' (temp 4X4 matrix of float)

-0:162          Construct mat4 (temp 4X4 matrix of float)

-0:162            'v2' (temp 2-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:162            'v3' (temp 3-component vector of float)

-0:163      Sequence

-0:163        move second child to first child (temp 4X4 matrix of float)

-0:163          'm4' (temp 4X4 matrix of float)

-0:163          Construct mat4 (temp 4X4 matrix of float)

-0:163            'v2' (temp 2-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v3' (temp 3-component vector of float)

-0:163            'v2' (temp 2-component vector of float)

-0:164      Sequence

-0:164        move second child to first child (temp 3X3 matrix of float)

-0:164          'm3' (temp 3X3 matrix of float)

-0:164          Construct mat3 (temp 3X3 matrix of float)

-0:164            'm4' (temp 4X4 matrix of float)

-0:165      Sequence

-0:165        move second child to first child (temp 3X3 matrix of float)

-0:165          'm3b1' (temp 3X3 matrix of float)

-0:165          Construct mat3 (temp 3X3 matrix of float)

-0:165            'm4' (temp 4X4 matrix of float)

-0:165            'v2' (temp 2-component vector of float)

-0:166      Sequence

-0:166        move second child to first child (temp 3X3 matrix of float)

-0:166          'm3b2' (temp 3X3 matrix of float)

-0:166          Construct mat3 (temp 3X3 matrix of float)

-0:166            'm4' (temp 4X4 matrix of float)

-0:166            'm4' (temp 4X4 matrix of float)

-0:167      Sequence

-0:167        move second child to first child (temp 3X2 matrix of float)

-0:167          'm32' (temp 3X2 matrix of float)

-0:167          Construct mat3x2 (temp 3X2 matrix of float)

-0:167            'm4' (temp 4X4 matrix of float)

-0:168      Sequence

-0:168        move second child to first child (temp 4X4 matrix of float)

-0:168          'm4c' (temp 4X4 matrix of float)

-0:168          Construct mat4 (temp 4X4 matrix of float)

-0:168            'm32' (temp 3X2 matrix of float)

-0:169      Sequence

-0:169        move second child to first child (temp 3X3 matrix of float)

-0:169          'm3s' (temp 3X3 matrix of float)

-0:169          Construct mat3 (temp 3X3 matrix of float)

-0:169            direct index (temp float)

-0:169              'v2' (temp 2-component vector of float)

-0:169              Constant:

-0:169                0 (const int)

-0:171      Sequence

-0:171        move second child to first child (temp 2-element array of 3X3 matrix of float)

-0:171          'm3a1' (temp 2-element array of 3X3 matrix of float)

-0:171          Construct mat3 (temp 2-element array of 3X3 matrix of float)

-0:171            'm3s' (temp 3X3 matrix of float)

-0:171            'm3s' (temp 3X3 matrix of float)

-0:179  Function Definition: foo2323( (global void)

-0:179    Function Parameters: 

-0:?     Sequence

-0:184      move second child to first child (temp 4-component vector of float)

-0:184        'v' (temp 4-component vector of float)

-0:184        textureLod (global 4-component vector of float)

-0:184          's2D' (uniform sampler2D)

-0:184          'v2' (temp 2-component vector of float)

-0:184          'f' (temp float)

-0:185      move second child to first child (temp 4-component vector of float)

-0:185        'v' (temp 4-component vector of float)

-0:185        textureProjLod (global 4-component vector of float)

-0:185          's3D' (uniform sampler3D)

-0:185          'v' (temp 4-component vector of float)

-0:185          'f' (temp float)

-0:186      move second child to first child (temp 4-component vector of float)

-0:186        'v' (temp 4-component vector of float)

-0:186        textureProjLod (global 4-component vector of float)

-0:186          's1D' (uniform sampler1D)

-0:186          'v' (temp 4-component vector of float)

-0:186          'f' (temp float)

-0:187      move second child to first child (temp 4-component vector of float)

-0:187        'v' (temp 4-component vector of float)

-0:187        textureProjLod (global 4-component vector of float)

-0:187          's2DS' (uniform sampler2DShadow)

-0:187          'v' (temp 4-component vector of float)

-0:187          'f' (temp float)

-0:189      move second child to first child (temp 4-component vector of float)

-0:189        'v' (temp 4-component vector of float)

-0:189        textureGrad (global 4-component vector of float)

-0:189          's1D' (uniform sampler1D)

-0:189          'f' (temp float)

-0:189          'f' (temp float)

-0:189          'f' (temp float)

-0:190      move second child to first child (temp 4-component vector of float)

-0:190        'v' (temp 4-component vector of float)

-0:190        textureProjGrad (global 4-component vector of float)

-0:190          's2D' (uniform sampler2D)

-0:190          'v' (temp 4-component vector of float)

-0:190          'v2' (temp 2-component vector of float)

-0:190          'v2' (temp 2-component vector of float)

-0:191      move second child to first child (temp 4-component vector of float)

-0:191        'v' (temp 4-component vector of float)

-0:191        textureProjGrad (global 4-component vector of float)

-0:191          's2DS' (uniform sampler2DShadow)

-0:191          'v' (temp 4-component vector of float)

-0:191          'v2' (temp 2-component vector of float)

-0:191          'v2' (temp 2-component vector of float)

-0:196  Function Definition: foo2324( (global void)

-0:196    Function Parameters: 

-0:?     Sequence

-0:201      move second child to first child (temp 4-component vector of float)

-0:201        'v' (temp 4-component vector of float)

-0:201        textureLod (global 4-component vector of float)

-0:201          's2D' (uniform sampler2D)

-0:201          'v2' (temp 2-component vector of float)

-0:201          'f' (temp float)

-0:202      move second child to first child (temp 4-component vector of float)

-0:202        'v' (temp 4-component vector of float)

-0:202        textureProjLod (global 4-component vector of float)

-0:202          's3D' (uniform sampler3D)

-0:202          'v' (temp 4-component vector of float)

-0:202          'f' (temp float)

-0:203      move second child to first child (temp 4-component vector of float)

-0:203        'v' (temp 4-component vector of float)

-0:203        textureProjLod (global 4-component vector of float)

-0:203          's1D' (uniform sampler1D)

-0:203          'v' (temp 4-component vector of float)

-0:203          'f' (temp float)

-0:204      move second child to first child (temp 4-component vector of float)

-0:204        'v' (temp 4-component vector of float)

-0:204        textureProjLod (global 4-component vector of float)

-0:204          's2DS' (uniform sampler2DShadow)

-0:204          'v' (temp 4-component vector of float)

-0:204          'f' (temp float)

-0:206      move second child to first child (temp 4-component vector of float)

-0:206        'v' (temp 4-component vector of float)

-0:206        textureGrad (global 4-component vector of float)

-0:206          's1D' (uniform sampler1D)

-0:206          'f' (temp float)

-0:206          'f' (temp float)

-0:206          'f' (temp float)

-0:207      move second child to first child (temp 4-component vector of float)

-0:207        'v' (temp 4-component vector of float)

-0:207        textureProjGrad (global 4-component vector of float)

-0:207          's2D' (uniform sampler2D)

-0:207          'v' (temp 4-component vector of float)

-0:207          'v2' (temp 2-component vector of float)

-0:207          'v2' (temp 2-component vector of float)

-0:208      move second child to first child (temp 4-component vector of float)

-0:208        'v' (temp 4-component vector of float)

-0:208        textureProjGrad (global 4-component vector of float)

-0:208          's2DS' (uniform sampler2DShadow)

-0:208          'v' (temp 4-component vector of float)

-0:208          'v2' (temp 2-component vector of float)

-0:208          'v2' (temp 2-component vector of float)

-0:209      'v' (temp 4-component vector of float)

-0:214  Function Definition: foo121111( (global void)

-0:214    Function Parameters: 

-0:?     Sequence

-0:217      Sequence

-0:217        move second child to first child (temp 4-component vector of float)

-0:217          'v' (temp 4-component vector of float)

-0:217          texture (global 4-component vector of float)

-0:217            's2DRbad' (uniform sampler2DRect)

-0:217            'v2' (temp 2-component vector of float)

-0:225  Function Definition: foo12111( (global void)

-0:225    Function Parameters: 

-0:?     Sequence

-0:231      move second child to first child (temp 4-component vector of float)

-0:231        'v' (temp 4-component vector of float)

-0:231        texture (global 4-component vector of float)

-0:231          's2DR' (uniform sampler2DRect)

-0:231          'v2' (temp 2-component vector of float)

-0:232      move second child to first child (temp 4-component vector of float)

-0:232        'v' (temp 4-component vector of float)

-0:232        textureProj (global 4-component vector of float)

-0:232          's2DR' (uniform sampler2DRect)

-0:232          'v3' (temp 3-component vector of float)

-0:233      move second child to first child (temp 4-component vector of float)

-0:233        'v' (temp 4-component vector of float)

-0:233        textureProj (global 4-component vector of float)

-0:233          's2DR' (uniform sampler2DRect)

-0:233          'v4' (temp 4-component vector of float)

-0:234      move second child to first child (temp 4-component vector of float)

-0:234        'v' (temp 4-component vector of float)

-0:234        texture (global 4-component vector of float)

-0:234          's2DRS' (uniform sampler2DRectShadow)

-0:234          'v3' (temp 3-component vector of float)

-0:235      move second child to first child (temp 4-component vector of float)

-0:235        'v' (temp 4-component vector of float)

-0:235        textureProj (global 4-component vector of float)

-0:235          's2DRS' (uniform sampler2DRectShadow)

-0:235          'v4' (temp 4-component vector of float)

-0:237      move second child to first child (temp 4-component vector of float)

-0:237        'v' (temp 4-component vector of float)

-0:237        textureProjGrad (global 4-component vector of float)

-0:237          's2DRS' (uniform sampler2DRectShadow)

-0:237          'v' (temp 4-component vector of float)

-0:237          'v2' (temp 2-component vector of float)

-0:237          'v2' (temp 2-component vector of float)

-0:?   Linker Objects

-0:?     'lowp' (global float)

-0:?     'mediump' (global float)

-0:?     'highp' (global float)

-0:?     'precision' (global float)

-0:?     'i' (smooth in 4-component vector of float)

-0:?     'o' (out 4-component vector of float)

-0:?     's2D' (uniform sampler2D)

-0:?     'centTexCoord' (centroid smooth in 2-component vector of float)

-0:?     'm' (uniform 4X2 matrix of float)

-0:?     'imageBuffer' (global float)

-0:?     'uimage2DRect' (global float)

-0:?     'a' (temp int)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'm22' (global 2X2 matrix of float)

-0:?     'm23' (global 2X3 matrix of float)

-0:?     'm24' (global 2X4 matrix of float)

-0:?     'm32' (global 3X2 matrix of float)

-0:?     'm33' (global 3X3 matrix of float)

-0:?     'm34' (global 3X4 matrix of float)

-0:?     'm42' (global 4X2 matrix of float)

-0:?     'm43' (global 4X3 matrix of float)

-0:?     'm44' (global 4X4 matrix of float)

-0:?     's3D' (uniform sampler3D)

-0:?     's1D' (uniform sampler1D)

-0:?     's2DS' (uniform sampler2DShadow)

-0:?     's2DRbad' (uniform sampler2DRect)

-0:?     's2DR' (uniform sampler2DRect)

-0:?     's2DRS' (uniform sampler2DRectShadow)

-

+120.frag
+ERROR: 0:9: 'in for stage inputs' : not supported for this version or the enabled extensions 
+ERROR: 0:10: 'out for stage outputs' : not supported for this version or the enabled extensions 
+ERROR: 0:54: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp 2-component vector of float' and a right operand of type 'temp 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:55: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'uniform 4X2 matrix of float' and a right operand of type 'temp 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:56: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'uniform 4X2 matrix of float' and a right operand of type 'smooth in 4-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:57: '=' :  cannot convert from 'const float' to 'temp int'
+ERROR: 0:58: 'assign' :  cannot convert from 'temp bool' to 'temp float'
+ERROR: 0:59: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp int' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:60: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp int' (or there is no acceptable conversion)
+ERROR: 0:60: 'assign' :  cannot convert from 'temp bool' to 'temp float'
+ERROR: 0:61: 'assign' :  cannot convert from 'temp int' to 'temp bool'
+ERROR: 0:62: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp float' (or there is no acceptable conversion)
+ERROR: 0:63: 'bitwise-or assign' : not supported for this version or the enabled extensions 
+ERROR: 0:63: 'assign' :  cannot convert from 'temp bool' to 'temp float'
+ERROR: 0:79: ':' :  wrong operand types: no operation ':' exists that takes a left-hand operand of type 'temp 4-component vector of float' and a right operand of type 'temp 4X4 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:79: 'assign' :  cannot convert from 'temp 4X4 matrix of float' to 'fragColor 4-component vector of float FragColor'
+ERROR: 0:82: 'xr' : illegal - vector component fields not from the same set 
+ERROR: 0:83: 'xyxyx' : illegal vector field selection 
+ERROR: 0:83: 'scalar swizzle' : not supported for this version or the enabled extensions 
+ERROR: 0:83: 'xy' : vector field selection out of range 
+ERROR: 0:84: 'z' : vector field selection out of range 
+ERROR: 0:85: 'assign' :  l-value required 
+ERROR: 0:91: 'int' : overloaded functions must have the same return type 
+ERROR: 0:91: 'main' : function already has a body 
+ERROR: 0:91: 'int' :  main function cannot return a value
+ERROR: 0:92: 'main' : function cannot take any parameter(s) 
+ERROR: 0:94: 'a' : variables with qualifier 'const' must be initialized 
+ERROR: 0:97: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1
+ERROR: 0:99: 'return' : type does not match, or is not convertible to, the function's return type 
+ERROR: 0:115: 'return' : void function cannot return a value 
+ERROR: 0:125: 'gl_TexCoord' : redeclaration of array with size 
+ERROR: 0:152: 'matrixCompMult' : no matching overloaded function found 
+ERROR: 0:152: '=' :  cannot convert from 'const float' to 'temp 3X2 matrix of float'
+ERROR: 0:153: 'matrixCompMult' : no matching overloaded function found 
+ERROR: 0:153: '=' :  cannot convert from 'const float' to 'temp 3X4 matrix of float'
+ERROR: 0:160: 'constructor' : not enough data provided for construction 
+ERROR: 0:160: '=' :  cannot convert from 'const float' to 'temp 4X4 matrix of float'
+ERROR: 0:161: 'constructor' : too many arguments 
+ERROR: 0:161: '=' :  cannot convert from 'const float' to 'temp 4X4 matrix of float'
+ERROR: 0:165: 'constructor' : matrix constructed from matrix can only have one argument 
+ERROR: 0:166: 'constructor' : matrix constructed from matrix can only have one argument 
+ERROR: 0:172: 'constructor' : array constructor needs one argument per array element 
+ERROR: 0:172: '=' :  cannot convert from 'const float' to 'temp 2-element array of 3X3 matrix of float'
+ERROR: 0:184: 'texture2DLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:185: 'texture3DProjLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:186: 'texture1DProjLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:187: 'shadow2DProjLod' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:189: 'texture1DGradARB' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:190: 'texture2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:191: 'shadow2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod
+ERROR: 0:209: 'shadow2DRectProjGradARB' : no matching overloaded function found 
+ERROR: 0:209: 'assign' :  cannot convert from 'const float' to 'temp 4-component vector of float'
+ERROR: 0:212: 'sampler2DRect' : Reserved word. 
+ERROR: 53 compilation errors.  No code generated.
+
+
+Shader version: 120
+Requested GL_ARB_shader_texture_lod
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:21  Function Definition: main( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp 2X3 matrix of float)
+0:23          'm23' (temp 2X3 matrix of float)
+0:23          Construct mat2x3 (temp 2X3 matrix of float)
+0:23            'm' (uniform 4X2 matrix of float)
+0:27      Sequence
+0:27        move second child to first child (temp structure{global float f})
+0:27          'sv' (temp structure{global float f})
+0:27          Construct structure (temp structure{global float f})
+0:27            Convert int to float (temp float)
+0:27              'a' (temp int)
+0:28      Sequence
+0:28        move second child to first child (temp 2-element array of float)
+0:28          'ia' (temp 2-element array of float)
+0:28          Construct float (temp 2-element array of float)
+0:28            Constant:
+0:28              3.000000
+0:28            direct index (temp float)
+0:28              'i' (smooth in 4-component vector of float)
+0:28              Constant:
+0:28                1 (const int)
+0:29      Sequence
+0:29        move second child to first child (temp float)
+0:29          'f1' (temp float)
+0:29          Constant:
+0:29            1.000000
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'f' (temp float)
+0:30          Convert int to float (temp float)
+0:30            'a' (temp int)
+0:31      move second child to first child (temp float)
+0:31        'f' (temp float)
+0:31        Convert int to float (temp float)
+0:31          'a' (temp int)
+0:33      Sequence
+0:33        move second child to first child (temp 3-component vector of float)
+0:33          'v3' (temp 3-component vector of float)
+0:33          Convert int to float (temp 3-component vector of float)
+0:33            'iv3' (temp 3-component vector of int)
+0:34      move second child to first child (temp float)
+0:34        'f' (temp float)
+0:34        add (temp float)
+0:34          'f' (temp float)
+0:34          Convert int to float (temp float)
+0:34            'a' (temp int)
+0:35      move second child to first child (temp float)
+0:35        'f' (temp float)
+0:35        subtract (temp float)
+0:35          Convert int to float (temp float)
+0:35            'a' (temp int)
+0:35          'f' (temp float)
+0:36      add second child into first child (temp float)
+0:36        'f' (temp float)
+0:36        Convert int to float (temp float)
+0:36          'a' (temp int)
+0:37      move second child to first child (temp float)
+0:37        'f' (temp float)
+0:37        subtract (temp float)
+0:37          Convert int to float (temp float)
+0:37            'a' (temp int)
+0:37          'f' (temp float)
+0:38      multiply second child into first child (temp 3-component vector of float)
+0:38        'v3' (temp 3-component vector of float)
+0:38        Convert int to float (temp 3-component vector of float)
+0:38          'iv3' (temp 3-component vector of int)
+0:39      move second child to first child (temp 3-component vector of float)
+0:39        'v3' (temp 3-component vector of float)
+0:39        divide (temp 3-component vector of float)
+0:39          Convert int to float (temp 3-component vector of float)
+0:39            'iv3' (temp 3-component vector of int)
+0:39          Constant:
+0:39            2.000000
+0:40      move second child to first child (temp 3-component vector of float)
+0:40        'v3' (temp 3-component vector of float)
+0:40        vector-scale (temp 3-component vector of float)
+0:40          Constant:
+0:40            3.000000
+0:40          Convert int to float (temp 3-component vector of float)
+0:40            'iv3' (temp 3-component vector of int)
+0:41      move second child to first child (temp 3-component vector of float)
+0:41        'v3' (temp 3-component vector of float)
+0:41        vector-scale (temp 3-component vector of float)
+0:41          Constant:
+0:41            2.000000
+0:41          'v3' (temp 3-component vector of float)
+0:42      move second child to first child (temp 3-component vector of float)
+0:42        'v3' (temp 3-component vector of float)
+0:42        subtract (temp 3-component vector of float)
+0:42          'v3' (temp 3-component vector of float)
+0:42          Constant:
+0:42            2.000000
+0:43      Test condition and select (temp void)
+0:43        Condition
+0:47        logical-or (temp bool)
+0:46          logical-or (temp bool)
+0:45            logical-or (temp bool)
+0:44              logical-or (temp bool)
+0:43                logical-or (temp bool)
+0:43                  Compare Less Than (temp bool)
+0:43                    'f' (temp float)
+0:43                    Convert int to float (temp float)
+0:43                      'a' (temp int)
+0:44                  Compare Less Than or Equal (temp bool)
+0:44                    Convert int to float (temp float)
+0:44                      'a' (temp int)
+0:44                    'f' (temp float)
+0:45                Compare Greater Than (temp bool)
+0:45                  'f' (temp float)
+0:45                  Convert int to float (temp float)
+0:45                    'a' (temp int)
+0:46              Compare Greater Than or Equal (temp bool)
+0:46                'f' (temp float)
+0:46                Convert int to float (temp float)
+0:46                  'a' (temp int)
+0:47            Compare Equal (temp bool)
+0:47              Convert int to float (temp float)
+0:47                'a' (temp int)
+0:47              'f' (temp float)
+0:48          Compare Not Equal (temp bool)
+0:48            'f' (temp float)
+0:48            Convert int to float (temp float)
+0:48              'a' (temp int)
+0:43        true case is null
+0:49      move second child to first child (temp float)
+0:49        'f' (temp float)
+0:49        Test condition and select (temp float)
+0:49          Condition
+0:49          'b' (temp bool)
+0:49          true case
+0:49          Convert int to float (temp float)
+0:49            'a' (temp int)
+0:49          false case
+0:49          'f' (temp float)
+0:50      move second child to first child (temp float)
+0:50        'f' (temp float)
+0:50        Test condition and select (temp float)
+0:50          Condition
+0:50          'b' (temp bool)
+0:50          true case
+0:50          'f' (temp float)
+0:50          false case
+0:50          Convert int to float (temp float)
+0:50            'a' (temp int)
+0:51      move second child to first child (temp float)
+0:51        'f' (temp float)
+0:51        Convert int to float (temp float)
+0:51          Test condition and select (temp int)
+0:51            Condition
+0:51            'b' (temp bool)
+0:51            true case
+0:51            'a' (temp int)
+0:51            false case
+0:51            'a' (temp int)
+0:52      Sequence
+0:52        move second child to first child (temp structure{global float f})
+0:52          'news' (temp structure{global float f})
+0:52          'sv' (temp structure{global float f})
+0:54      vector swizzle (temp 2-component vector of float)
+0:54        'i' (smooth in 4-component vector of float)
+0:54        Sequence
+0:54          Constant:
+0:54            0 (const int)
+0:54          Constant:
+0:54            1 (const int)
+0:55      'm' (uniform 4X2 matrix of float)
+0:56      'm' (uniform 4X2 matrix of float)
+0:58      'f' (temp float)
+0:59      move second child to first child (temp float)
+0:59        'f' (temp float)
+0:59        Convert int to float (temp float)
+0:59          'a' (temp int)
+0:60      'f' (temp float)
+0:61      'b' (temp bool)
+0:62      move second child to first child (temp bool)
+0:62        'b' (temp bool)
+0:62        'b' (temp bool)
+0:63      'f' (temp float)
+0:65      move second child to first child (temp 4-component vector of float)
+0:65        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:65        texture (global 4-component vector of float)
+0:65          's2D' (uniform sampler2D)
+0:65          'centTexCoord' (centroid smooth in 2-component vector of float)
+0:?       Sequence
+0:79        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82      direct index (temp float)
+0:82        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82        Constant:
+0:82          0 (const int)
+0:83      direct index (temp float)
+0:83        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:83        Constant:
+0:83          0 (const int)
+0:84      direct index (temp float)
+0:84        'centTexCoord' (centroid smooth in 2-component vector of float)
+0:84        Constant:
+0:84          0 (const int)
+0:85      move second child to first child (temp bool)
+0:85        Comma (temp bool)
+0:85          'a' (temp int)
+0:85          'b' (temp bool)
+0:85        Constant:
+0:85          true (const bool)
+0:91  Function Definition: main( (global int)
+0:91    Function Parameters: 
+0:92  Function Definition: main(i1; (global void)
+0:92    Function Parameters: 
+0:92      'a' (in int)
+0:97  Function Definition: foo(f1; (global int)
+0:97    Function Parameters: 
+0:97      'a' (out float)
+0:99    Sequence
+0:99      Branch: Return with expression
+0:99        Constant:
+0:99          3.200000
+0:100      Function Call: foo(f1; (global int)
+0:100        'a' (out float)
+0:103  Function Definition: gen(vf3; (global bool)
+0:103    Function Parameters: 
+0:103      'v' (in 3-component vector of float)
+0:105    Sequence
+0:105      Test condition and select (temp void)
+0:105        Condition
+0:105        logical-and (temp bool)
+0:105          Compare Less Than (temp bool)
+0:105            Absolute value (global float)
+0:105              direct index (temp float)
+0:105                'v' (in 3-component vector of float)
+0:105                Constant:
+0:105                  0 (const int)
+0:105            Constant:
+0:105              0.000100
+0:105          Compare Less Than (temp bool)
+0:105            Absolute value (global float)
+0:105              direct index (temp float)
+0:105                'v' (in 3-component vector of float)
+0:105                Constant:
+0:105                  1 (const int)
+0:105            Constant:
+0:105              0.000100
+0:105        true case
+0:106        Branch: Return with expression
+0:106          Constant:
+0:106            true (const bool)
+0:109  Function Definition: v1( (global void)
+0:109    Function Parameters: 
+0:113  Function Definition: v2( (global void)
+0:113    Function Parameters: 
+0:115    Sequence
+0:115      Branch: Return
+0:118  Function Definition: atest( (global void)
+0:118    Function Parameters: 
+0:120    Sequence
+0:120      Sequence
+0:120        move second child to first child (temp 4-component vector of float)
+0:120          'v' (temp 4-component vector of float)
+0:120          direct index (smooth temp 4-component vector of float TexCoord)
+0:120            'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:120            Constant:
+0:120              1 (const int)
+0:121      add second child into first child (temp 4-component vector of float)
+0:121        'v' (temp 4-component vector of float)
+0:121        direct index (smooth temp 4-component vector of float TexCoord)
+0:121          'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:121          Constant:
+0:121            3 (const int)
+0:139  Function Definition: foo123( (global void)
+0:139    Function Parameters: 
+0:141    Sequence
+0:141      Sequence
+0:141        move second child to first child (temp 2X2 matrix of float)
+0:141          'r2' (temp 2X2 matrix of float)
+0:141          component-wise multiply (global 2X2 matrix of float)
+0:141            'm22' (global 2X2 matrix of float)
+0:141            'm22' (global 2X2 matrix of float)
+0:142      Sequence
+0:142        move second child to first child (temp 3X3 matrix of float)
+0:142          'r3' (temp 3X3 matrix of float)
+0:142          component-wise multiply (global 3X3 matrix of float)
+0:142            'm33' (global 3X3 matrix of float)
+0:142            'm33' (global 3X3 matrix of float)
+0:143      Sequence
+0:143        move second child to first child (temp 4X4 matrix of float)
+0:143          'r4' (temp 4X4 matrix of float)
+0:143          component-wise multiply (global 4X4 matrix of float)
+0:143            'm44' (global 4X4 matrix of float)
+0:143            'm44' (global 4X4 matrix of float)
+0:145      Sequence
+0:145        move second child to first child (temp 2X3 matrix of float)
+0:145          'r23' (temp 2X3 matrix of float)
+0:145          component-wise multiply (global 2X3 matrix of float)
+0:145            'm23' (global 2X3 matrix of float)
+0:145            'm23' (global 2X3 matrix of float)
+0:146      Sequence
+0:146        move second child to first child (temp 2X4 matrix of float)
+0:146          'r24' (temp 2X4 matrix of float)
+0:146          component-wise multiply (global 2X4 matrix of float)
+0:146            'm24' (global 2X4 matrix of float)
+0:146            'm24' (global 2X4 matrix of float)
+0:147      Sequence
+0:147        move second child to first child (temp 3X2 matrix of float)
+0:147          'r32' (temp 3X2 matrix of float)
+0:147          component-wise multiply (global 3X2 matrix of float)
+0:147            'm32' (global 3X2 matrix of float)
+0:147            'm32' (global 3X2 matrix of float)
+0:148      Sequence
+0:148        move second child to first child (temp 3X4 matrix of float)
+0:148          'r34' (temp 3X4 matrix of float)
+0:148          component-wise multiply (global 3X4 matrix of float)
+0:148            'm34' (global 3X4 matrix of float)
+0:148            'm34' (global 3X4 matrix of float)
+0:149      Sequence
+0:149        move second child to first child (temp 4X2 matrix of float)
+0:149          'r42' (temp 4X2 matrix of float)
+0:149          component-wise multiply (global 4X2 matrix of float)
+0:149            'm42' (global 4X2 matrix of float)
+0:149            'm42' (global 4X2 matrix of float)
+0:150      Sequence
+0:150        move second child to first child (temp 4X3 matrix of float)
+0:150          'r43' (temp 4X3 matrix of float)
+0:150          component-wise multiply (global 4X3 matrix of float)
+0:150            'm43' (global 4X3 matrix of float)
+0:150            'm43' (global 4X3 matrix of float)
+0:156  Function Definition: matConst( (global void)
+0:156    Function Parameters: 
+0:?     Sequence
+0:162      Sequence
+0:162        move second child to first child (temp 4X4 matrix of float)
+0:162          'm4g' (temp 4X4 matrix of float)
+0:162          Construct mat4 (temp 4X4 matrix of float)
+0:162            'v2' (temp 2-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:163      Sequence
+0:163        move second child to first child (temp 4X4 matrix of float)
+0:163          'm4' (temp 4X4 matrix of float)
+0:163          Construct mat4 (temp 4X4 matrix of float)
+0:163            'v2' (temp 2-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v2' (temp 2-component vector of float)
+0:164      Sequence
+0:164        move second child to first child (temp 3X3 matrix of float)
+0:164          'm3' (temp 3X3 matrix of float)
+0:164          Construct mat3 (temp 3X3 matrix of float)
+0:164            'm4' (temp 4X4 matrix of float)
+0:165      Sequence
+0:165        move second child to first child (temp 3X3 matrix of float)
+0:165          'm3b1' (temp 3X3 matrix of float)
+0:165          Construct mat3 (temp 3X3 matrix of float)
+0:165            'm4' (temp 4X4 matrix of float)
+0:165            'v2' (temp 2-component vector of float)
+0:166      Sequence
+0:166        move second child to first child (temp 3X3 matrix of float)
+0:166          'm3b2' (temp 3X3 matrix of float)
+0:166          Construct mat3 (temp 3X3 matrix of float)
+0:166            'm4' (temp 4X4 matrix of float)
+0:166            'm4' (temp 4X4 matrix of float)
+0:167      Sequence
+0:167        move second child to first child (temp 3X2 matrix of float)
+0:167          'm32' (temp 3X2 matrix of float)
+0:167          Construct mat3x2 (temp 3X2 matrix of float)
+0:167            'm4' (temp 4X4 matrix of float)
+0:168      Sequence
+0:168        move second child to first child (temp 4X4 matrix of float)
+0:168          'm4c' (temp 4X4 matrix of float)
+0:168          Construct mat4 (temp 4X4 matrix of float)
+0:168            'm32' (temp 3X2 matrix of float)
+0:169      Sequence
+0:169        move second child to first child (temp 3X3 matrix of float)
+0:169          'm3s' (temp 3X3 matrix of float)
+0:169          Construct mat3 (temp 3X3 matrix of float)
+0:169            direct index (temp float)
+0:169              'v2' (temp 2-component vector of float)
+0:169              Constant:
+0:169                0 (const int)
+0:171      Sequence
+0:171        move second child to first child (temp 2-element array of 3X3 matrix of float)
+0:171          'm3a1' (temp 2-element array of 3X3 matrix of float)
+0:171          Construct mat3 (temp 2-element array of 3X3 matrix of float)
+0:171            'm3s' (temp 3X3 matrix of float)
+0:171            'm3s' (temp 3X3 matrix of float)
+0:179  Function Definition: foo2323( (global void)
+0:179    Function Parameters: 
+0:?     Sequence
+0:184      move second child to first child (temp 4-component vector of float)
+0:184        'v' (temp 4-component vector of float)
+0:184        textureLod (global 4-component vector of float)
+0:184          's2D' (uniform sampler2D)
+0:184          'v2' (temp 2-component vector of float)
+0:184          'f' (temp float)
+0:185      move second child to first child (temp 4-component vector of float)
+0:185        'v' (temp 4-component vector of float)
+0:185        textureProjLod (global 4-component vector of float)
+0:185          's3D' (uniform sampler3D)
+0:185          'v' (temp 4-component vector of float)
+0:185          'f' (temp float)
+0:186      move second child to first child (temp 4-component vector of float)
+0:186        'v' (temp 4-component vector of float)
+0:186        textureProjLod (global 4-component vector of float)
+0:186          's1D' (uniform sampler1D)
+0:186          'v' (temp 4-component vector of float)
+0:186          'f' (temp float)
+0:187      move second child to first child (temp 4-component vector of float)
+0:187        'v' (temp 4-component vector of float)
+0:187        textureProjLod (global 4-component vector of float)
+0:187          's2DS' (uniform sampler2DShadow)
+0:187          'v' (temp 4-component vector of float)
+0:187          'f' (temp float)
+0:189      move second child to first child (temp 4-component vector of float)
+0:189        'v' (temp 4-component vector of float)
+0:189        textureGrad (global 4-component vector of float)
+0:189          's1D' (uniform sampler1D)
+0:189          'f' (temp float)
+0:189          'f' (temp float)
+0:189          'f' (temp float)
+0:190      move second child to first child (temp 4-component vector of float)
+0:190        'v' (temp 4-component vector of float)
+0:190        textureProjGrad (global 4-component vector of float)
+0:190          's2D' (uniform sampler2D)
+0:190          'v' (temp 4-component vector of float)
+0:190          'v2' (temp 2-component vector of float)
+0:190          'v2' (temp 2-component vector of float)
+0:191      move second child to first child (temp 4-component vector of float)
+0:191        'v' (temp 4-component vector of float)
+0:191        textureProjGrad (global 4-component vector of float)
+0:191          's2DS' (uniform sampler2DShadow)
+0:191          'v' (temp 4-component vector of float)
+0:191          'v2' (temp 2-component vector of float)
+0:191          'v2' (temp 2-component vector of float)
+0:196  Function Definition: foo2324( (global void)
+0:196    Function Parameters: 
+0:?     Sequence
+0:201      move second child to first child (temp 4-component vector of float)
+0:201        'v' (temp 4-component vector of float)
+0:201        textureLod (global 4-component vector of float)
+0:201          's2D' (uniform sampler2D)
+0:201          'v2' (temp 2-component vector of float)
+0:201          'f' (temp float)
+0:202      move second child to first child (temp 4-component vector of float)
+0:202        'v' (temp 4-component vector of float)
+0:202        textureProjLod (global 4-component vector of float)
+0:202          's3D' (uniform sampler3D)
+0:202          'v' (temp 4-component vector of float)
+0:202          'f' (temp float)
+0:203      move second child to first child (temp 4-component vector of float)
+0:203        'v' (temp 4-component vector of float)
+0:203        textureProjLod (global 4-component vector of float)
+0:203          's1D' (uniform sampler1D)
+0:203          'v' (temp 4-component vector of float)
+0:203          'f' (temp float)
+0:204      move second child to first child (temp 4-component vector of float)
+0:204        'v' (temp 4-component vector of float)
+0:204        textureProjLod (global 4-component vector of float)
+0:204          's2DS' (uniform sampler2DShadow)
+0:204          'v' (temp 4-component vector of float)
+0:204          'f' (temp float)
+0:206      move second child to first child (temp 4-component vector of float)
+0:206        'v' (temp 4-component vector of float)
+0:206        textureGrad (global 4-component vector of float)
+0:206          's1D' (uniform sampler1D)
+0:206          'f' (temp float)
+0:206          'f' (temp float)
+0:206          'f' (temp float)
+0:207      move second child to first child (temp 4-component vector of float)
+0:207        'v' (temp 4-component vector of float)
+0:207        textureProjGrad (global 4-component vector of float)
+0:207          's2D' (uniform sampler2D)
+0:207          'v' (temp 4-component vector of float)
+0:207          'v2' (temp 2-component vector of float)
+0:207          'v2' (temp 2-component vector of float)
+0:208      move second child to first child (temp 4-component vector of float)
+0:208        'v' (temp 4-component vector of float)
+0:208        textureProjGrad (global 4-component vector of float)
+0:208          's2DS' (uniform sampler2DShadow)
+0:208          'v' (temp 4-component vector of float)
+0:208          'v2' (temp 2-component vector of float)
+0:208          'v2' (temp 2-component vector of float)
+0:209      'v' (temp 4-component vector of float)
+0:214  Function Definition: foo121111( (global void)
+0:214    Function Parameters: 
+0:?     Sequence
+0:217      Sequence
+0:217        move second child to first child (temp 4-component vector of float)
+0:217          'v' (temp 4-component vector of float)
+0:217          texture (global 4-component vector of float)
+0:217            's2DRbad' (uniform sampler2DRect)
+0:217            'v2' (temp 2-component vector of float)
+0:225  Function Definition: foo12111( (global void)
+0:225    Function Parameters: 
+0:?     Sequence
+0:231      move second child to first child (temp 4-component vector of float)
+0:231        'v' (temp 4-component vector of float)
+0:231        texture (global 4-component vector of float)
+0:231          's2DR' (uniform sampler2DRect)
+0:231          'v2' (temp 2-component vector of float)
+0:232      move second child to first child (temp 4-component vector of float)
+0:232        'v' (temp 4-component vector of float)
+0:232        textureProj (global 4-component vector of float)
+0:232          's2DR' (uniform sampler2DRect)
+0:232          'v3' (temp 3-component vector of float)
+0:233      move second child to first child (temp 4-component vector of float)
+0:233        'v' (temp 4-component vector of float)
+0:233        textureProj (global 4-component vector of float)
+0:233          's2DR' (uniform sampler2DRect)
+0:233          'v4' (temp 4-component vector of float)
+0:234      move second child to first child (temp 4-component vector of float)
+0:234        'v' (temp 4-component vector of float)
+0:234        texture (global 4-component vector of float)
+0:234          's2DRS' (uniform sampler2DRectShadow)
+0:234          'v3' (temp 3-component vector of float)
+0:235      move second child to first child (temp 4-component vector of float)
+0:235        'v' (temp 4-component vector of float)
+0:235        textureProj (global 4-component vector of float)
+0:235          's2DRS' (uniform sampler2DRectShadow)
+0:235          'v4' (temp 4-component vector of float)
+0:237      move second child to first child (temp 4-component vector of float)
+0:237        'v' (temp 4-component vector of float)
+0:237        textureProjGrad (global 4-component vector of float)
+0:237          's2DRS' (uniform sampler2DRectShadow)
+0:237          'v' (temp 4-component vector of float)
+0:237          'v2' (temp 2-component vector of float)
+0:237          'v2' (temp 2-component vector of float)
+0:?   Linker Objects
+0:?     'lowp' (global float)
+0:?     'mediump' (global float)
+0:?     'highp' (global float)
+0:?     'precision' (global float)
+0:?     'i' (smooth in 4-component vector of float)
+0:?     'o' (out 4-component vector of float)
+0:?     's2D' (uniform sampler2D)
+0:?     'centTexCoord' (centroid smooth in 2-component vector of float)
+0:?     'm' (uniform 4X2 matrix of float)
+0:?     'imageBuffer' (global float)
+0:?     'uimage2DRect' (global float)
+0:?     'a' (temp int)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'm22' (global 2X2 matrix of float)
+0:?     'm23' (global 2X3 matrix of float)
+0:?     'm24' (global 2X4 matrix of float)
+0:?     'm32' (global 3X2 matrix of float)
+0:?     'm33' (global 3X3 matrix of float)
+0:?     'm34' (global 3X4 matrix of float)
+0:?     'm42' (global 4X2 matrix of float)
+0:?     'm43' (global 4X3 matrix of float)
+0:?     'm44' (global 4X4 matrix of float)
+0:?     's3D' (uniform sampler3D)
+0:?     's1D' (uniform sampler1D)
+0:?     's2DS' (uniform sampler2DShadow)
+0:?     's2DRbad' (uniform sampler2DRect)
+0:?     's2DR' (uniform sampler2DRect)
+0:?     's2DRS' (uniform sampler2DRectShadow)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Recursion detected:
+    foo(f1; calling foo(f1;
+
+Shader version: 120
+Requested GL_ARB_shader_texture_lod
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:21  Function Definition: main( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp 2X3 matrix of float)
+0:23          'm23' (temp 2X3 matrix of float)
+0:23          Construct mat2x3 (temp 2X3 matrix of float)
+0:23            'm' (uniform 4X2 matrix of float)
+0:27      Sequence
+0:27        move second child to first child (temp structure{global float f})
+0:27          'sv' (temp structure{global float f})
+0:27          Construct structure (temp structure{global float f})
+0:27            Convert int to float (temp float)
+0:27              'a' (temp int)
+0:28      Sequence
+0:28        move second child to first child (temp 2-element array of float)
+0:28          'ia' (temp 2-element array of float)
+0:28          Construct float (temp 2-element array of float)
+0:28            Constant:
+0:28              3.000000
+0:28            direct index (temp float)
+0:28              'i' (smooth in 4-component vector of float)
+0:28              Constant:
+0:28                1 (const int)
+0:29      Sequence
+0:29        move second child to first child (temp float)
+0:29          'f1' (temp float)
+0:29          Constant:
+0:29            1.000000
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'f' (temp float)
+0:30          Convert int to float (temp float)
+0:30            'a' (temp int)
+0:31      move second child to first child (temp float)
+0:31        'f' (temp float)
+0:31        Convert int to float (temp float)
+0:31          'a' (temp int)
+0:33      Sequence
+0:33        move second child to first child (temp 3-component vector of float)
+0:33          'v3' (temp 3-component vector of float)
+0:33          Convert int to float (temp 3-component vector of float)
+0:33            'iv3' (temp 3-component vector of int)
+0:34      move second child to first child (temp float)
+0:34        'f' (temp float)
+0:34        add (temp float)
+0:34          'f' (temp float)
+0:34          Convert int to float (temp float)
+0:34            'a' (temp int)
+0:35      move second child to first child (temp float)
+0:35        'f' (temp float)
+0:35        subtract (temp float)
+0:35          Convert int to float (temp float)
+0:35            'a' (temp int)
+0:35          'f' (temp float)
+0:36      add second child into first child (temp float)
+0:36        'f' (temp float)
+0:36        Convert int to float (temp float)
+0:36          'a' (temp int)
+0:37      move second child to first child (temp float)
+0:37        'f' (temp float)
+0:37        subtract (temp float)
+0:37          Convert int to float (temp float)
+0:37            'a' (temp int)
+0:37          'f' (temp float)
+0:38      multiply second child into first child (temp 3-component vector of float)
+0:38        'v3' (temp 3-component vector of float)
+0:38        Convert int to float (temp 3-component vector of float)
+0:38          'iv3' (temp 3-component vector of int)
+0:39      move second child to first child (temp 3-component vector of float)
+0:39        'v3' (temp 3-component vector of float)
+0:39        divide (temp 3-component vector of float)
+0:39          Convert int to float (temp 3-component vector of float)
+0:39            'iv3' (temp 3-component vector of int)
+0:39          Constant:
+0:39            2.000000
+0:40      move second child to first child (temp 3-component vector of float)
+0:40        'v3' (temp 3-component vector of float)
+0:40        vector-scale (temp 3-component vector of float)
+0:40          Constant:
+0:40            3.000000
+0:40          Convert int to float (temp 3-component vector of float)
+0:40            'iv3' (temp 3-component vector of int)
+0:41      move second child to first child (temp 3-component vector of float)
+0:41        'v3' (temp 3-component vector of float)
+0:41        vector-scale (temp 3-component vector of float)
+0:41          Constant:
+0:41            2.000000
+0:41          'v3' (temp 3-component vector of float)
+0:42      move second child to first child (temp 3-component vector of float)
+0:42        'v3' (temp 3-component vector of float)
+0:42        subtract (temp 3-component vector of float)
+0:42          'v3' (temp 3-component vector of float)
+0:42          Constant:
+0:42            2.000000
+0:43      Test condition and select (temp void)
+0:43        Condition
+0:47        logical-or (temp bool)
+0:46          logical-or (temp bool)
+0:45            logical-or (temp bool)
+0:44              logical-or (temp bool)
+0:43                logical-or (temp bool)
+0:43                  Compare Less Than (temp bool)
+0:43                    'f' (temp float)
+0:43                    Convert int to float (temp float)
+0:43                      'a' (temp int)
+0:44                  Compare Less Than or Equal (temp bool)
+0:44                    Convert int to float (temp float)
+0:44                      'a' (temp int)
+0:44                    'f' (temp float)
+0:45                Compare Greater Than (temp bool)
+0:45                  'f' (temp float)
+0:45                  Convert int to float (temp float)
+0:45                    'a' (temp int)
+0:46              Compare Greater Than or Equal (temp bool)
+0:46                'f' (temp float)
+0:46                Convert int to float (temp float)
+0:46                  'a' (temp int)
+0:47            Compare Equal (temp bool)
+0:47              Convert int to float (temp float)
+0:47                'a' (temp int)
+0:47              'f' (temp float)
+0:48          Compare Not Equal (temp bool)
+0:48            'f' (temp float)
+0:48            Convert int to float (temp float)
+0:48              'a' (temp int)
+0:43        true case is null
+0:49      move second child to first child (temp float)
+0:49        'f' (temp float)
+0:49        Test condition and select (temp float)
+0:49          Condition
+0:49          'b' (temp bool)
+0:49          true case
+0:49          Convert int to float (temp float)
+0:49            'a' (temp int)
+0:49          false case
+0:49          'f' (temp float)
+0:50      move second child to first child (temp float)
+0:50        'f' (temp float)
+0:50        Test condition and select (temp float)
+0:50          Condition
+0:50          'b' (temp bool)
+0:50          true case
+0:50          'f' (temp float)
+0:50          false case
+0:50          Convert int to float (temp float)
+0:50            'a' (temp int)
+0:51      move second child to first child (temp float)
+0:51        'f' (temp float)
+0:51        Convert int to float (temp float)
+0:51          Test condition and select (temp int)
+0:51            Condition
+0:51            'b' (temp bool)
+0:51            true case
+0:51            'a' (temp int)
+0:51            false case
+0:51            'a' (temp int)
+0:52      Sequence
+0:52        move second child to first child (temp structure{global float f})
+0:52          'news' (temp structure{global float f})
+0:52          'sv' (temp structure{global float f})
+0:54      vector swizzle (temp 2-component vector of float)
+0:54        'i' (smooth in 4-component vector of float)
+0:54        Sequence
+0:54          Constant:
+0:54            0 (const int)
+0:54          Constant:
+0:54            1 (const int)
+0:55      'm' (uniform 4X2 matrix of float)
+0:56      'm' (uniform 4X2 matrix of float)
+0:58      'f' (temp float)
+0:59      move second child to first child (temp float)
+0:59        'f' (temp float)
+0:59        Convert int to float (temp float)
+0:59          'a' (temp int)
+0:60      'f' (temp float)
+0:61      'b' (temp bool)
+0:62      move second child to first child (temp bool)
+0:62        'b' (temp bool)
+0:62        'b' (temp bool)
+0:63      'f' (temp float)
+0:65      move second child to first child (temp 4-component vector of float)
+0:65        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:65        texture (global 4-component vector of float)
+0:65          's2D' (uniform sampler2D)
+0:65          'centTexCoord' (centroid smooth in 2-component vector of float)
+0:?       Sequence
+0:79        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82      direct index (temp float)
+0:82        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:82        Constant:
+0:82          0 (const int)
+0:83      direct index (temp float)
+0:83        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:83        Constant:
+0:83          0 (const int)
+0:84      direct index (temp float)
+0:84        'centTexCoord' (centroid smooth in 2-component vector of float)
+0:84        Constant:
+0:84          0 (const int)
+0:85      move second child to first child (temp bool)
+0:85        Comma (temp bool)
+0:85          'a' (temp int)
+0:85          'b' (temp bool)
+0:85        Constant:
+0:85          true (const bool)
+0:91  Function Definition: main( (global int)
+0:91    Function Parameters: 
+0:92  Function Definition: main(i1; (global void)
+0:92    Function Parameters: 
+0:92      'a' (in int)
+0:97  Function Definition: foo(f1; (global int)
+0:97    Function Parameters: 
+0:97      'a' (out float)
+0:99    Sequence
+0:99      Branch: Return with expression
+0:99        Constant:
+0:99          3.200000
+0:100      Function Call: foo(f1; (global int)
+0:100        'a' (out float)
+0:103  Function Definition: gen(vf3; (global bool)
+0:103    Function Parameters: 
+0:103      'v' (in 3-component vector of float)
+0:105    Sequence
+0:105      Test condition and select (temp void)
+0:105        Condition
+0:105        logical-and (temp bool)
+0:105          Compare Less Than (temp bool)
+0:105            Absolute value (global float)
+0:105              direct index (temp float)
+0:105                'v' (in 3-component vector of float)
+0:105                Constant:
+0:105                  0 (const int)
+0:105            Constant:
+0:105              0.000100
+0:105          Compare Less Than (temp bool)
+0:105            Absolute value (global float)
+0:105              direct index (temp float)
+0:105                'v' (in 3-component vector of float)
+0:105                Constant:
+0:105                  1 (const int)
+0:105            Constant:
+0:105              0.000100
+0:105        true case
+0:106        Branch: Return with expression
+0:106          Constant:
+0:106            true (const bool)
+0:109  Function Definition: v1( (global void)
+0:109    Function Parameters: 
+0:113  Function Definition: v2( (global void)
+0:113    Function Parameters: 
+0:115    Sequence
+0:115      Branch: Return
+0:118  Function Definition: atest( (global void)
+0:118    Function Parameters: 
+0:120    Sequence
+0:120      Sequence
+0:120        move second child to first child (temp 4-component vector of float)
+0:120          'v' (temp 4-component vector of float)
+0:120          direct index (smooth temp 4-component vector of float TexCoord)
+0:120            'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:120            Constant:
+0:120              1 (const int)
+0:121      add second child into first child (temp 4-component vector of float)
+0:121        'v' (temp 4-component vector of float)
+0:121        direct index (smooth temp 4-component vector of float TexCoord)
+0:121          'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:121          Constant:
+0:121            3 (const int)
+0:139  Function Definition: foo123( (global void)
+0:139    Function Parameters: 
+0:141    Sequence
+0:141      Sequence
+0:141        move second child to first child (temp 2X2 matrix of float)
+0:141          'r2' (temp 2X2 matrix of float)
+0:141          component-wise multiply (global 2X2 matrix of float)
+0:141            'm22' (global 2X2 matrix of float)
+0:141            'm22' (global 2X2 matrix of float)
+0:142      Sequence
+0:142        move second child to first child (temp 3X3 matrix of float)
+0:142          'r3' (temp 3X3 matrix of float)
+0:142          component-wise multiply (global 3X3 matrix of float)
+0:142            'm33' (global 3X3 matrix of float)
+0:142            'm33' (global 3X3 matrix of float)
+0:143      Sequence
+0:143        move second child to first child (temp 4X4 matrix of float)
+0:143          'r4' (temp 4X4 matrix of float)
+0:143          component-wise multiply (global 4X4 matrix of float)
+0:143            'm44' (global 4X4 matrix of float)
+0:143            'm44' (global 4X4 matrix of float)
+0:145      Sequence
+0:145        move second child to first child (temp 2X3 matrix of float)
+0:145          'r23' (temp 2X3 matrix of float)
+0:145          component-wise multiply (global 2X3 matrix of float)
+0:145            'm23' (global 2X3 matrix of float)
+0:145            'm23' (global 2X3 matrix of float)
+0:146      Sequence
+0:146        move second child to first child (temp 2X4 matrix of float)
+0:146          'r24' (temp 2X4 matrix of float)
+0:146          component-wise multiply (global 2X4 matrix of float)
+0:146            'm24' (global 2X4 matrix of float)
+0:146            'm24' (global 2X4 matrix of float)
+0:147      Sequence
+0:147        move second child to first child (temp 3X2 matrix of float)
+0:147          'r32' (temp 3X2 matrix of float)
+0:147          component-wise multiply (global 3X2 matrix of float)
+0:147            'm32' (global 3X2 matrix of float)
+0:147            'm32' (global 3X2 matrix of float)
+0:148      Sequence
+0:148        move second child to first child (temp 3X4 matrix of float)
+0:148          'r34' (temp 3X4 matrix of float)
+0:148          component-wise multiply (global 3X4 matrix of float)
+0:148            'm34' (global 3X4 matrix of float)
+0:148            'm34' (global 3X4 matrix of float)
+0:149      Sequence
+0:149        move second child to first child (temp 4X2 matrix of float)
+0:149          'r42' (temp 4X2 matrix of float)
+0:149          component-wise multiply (global 4X2 matrix of float)
+0:149            'm42' (global 4X2 matrix of float)
+0:149            'm42' (global 4X2 matrix of float)
+0:150      Sequence
+0:150        move second child to first child (temp 4X3 matrix of float)
+0:150          'r43' (temp 4X3 matrix of float)
+0:150          component-wise multiply (global 4X3 matrix of float)
+0:150            'm43' (global 4X3 matrix of float)
+0:150            'm43' (global 4X3 matrix of float)
+0:156  Function Definition: matConst( (global void)
+0:156    Function Parameters: 
+0:?     Sequence
+0:162      Sequence
+0:162        move second child to first child (temp 4X4 matrix of float)
+0:162          'm4g' (temp 4X4 matrix of float)
+0:162          Construct mat4 (temp 4X4 matrix of float)
+0:162            'v2' (temp 2-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:162            'v3' (temp 3-component vector of float)
+0:163      Sequence
+0:163        move second child to first child (temp 4X4 matrix of float)
+0:163          'm4' (temp 4X4 matrix of float)
+0:163          Construct mat4 (temp 4X4 matrix of float)
+0:163            'v2' (temp 2-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v3' (temp 3-component vector of float)
+0:163            'v2' (temp 2-component vector of float)
+0:164      Sequence
+0:164        move second child to first child (temp 3X3 matrix of float)
+0:164          'm3' (temp 3X3 matrix of float)
+0:164          Construct mat3 (temp 3X3 matrix of float)
+0:164            'm4' (temp 4X4 matrix of float)
+0:165      Sequence
+0:165        move second child to first child (temp 3X3 matrix of float)
+0:165          'm3b1' (temp 3X3 matrix of float)
+0:165          Construct mat3 (temp 3X3 matrix of float)
+0:165            'm4' (temp 4X4 matrix of float)
+0:165            'v2' (temp 2-component vector of float)
+0:166      Sequence
+0:166        move second child to first child (temp 3X3 matrix of float)
+0:166          'm3b2' (temp 3X3 matrix of float)
+0:166          Construct mat3 (temp 3X3 matrix of float)
+0:166            'm4' (temp 4X4 matrix of float)
+0:166            'm4' (temp 4X4 matrix of float)
+0:167      Sequence
+0:167        move second child to first child (temp 3X2 matrix of float)
+0:167          'm32' (temp 3X2 matrix of float)
+0:167          Construct mat3x2 (temp 3X2 matrix of float)
+0:167            'm4' (temp 4X4 matrix of float)
+0:168      Sequence
+0:168        move second child to first child (temp 4X4 matrix of float)
+0:168          'm4c' (temp 4X4 matrix of float)
+0:168          Construct mat4 (temp 4X4 matrix of float)
+0:168            'm32' (temp 3X2 matrix of float)
+0:169      Sequence
+0:169        move second child to first child (temp 3X3 matrix of float)
+0:169          'm3s' (temp 3X3 matrix of float)
+0:169          Construct mat3 (temp 3X3 matrix of float)
+0:169            direct index (temp float)
+0:169              'v2' (temp 2-component vector of float)
+0:169              Constant:
+0:169                0 (const int)
+0:171      Sequence
+0:171        move second child to first child (temp 2-element array of 3X3 matrix of float)
+0:171          'm3a1' (temp 2-element array of 3X3 matrix of float)
+0:171          Construct mat3 (temp 2-element array of 3X3 matrix of float)
+0:171            'm3s' (temp 3X3 matrix of float)
+0:171            'm3s' (temp 3X3 matrix of float)
+0:179  Function Definition: foo2323( (global void)
+0:179    Function Parameters: 
+0:?     Sequence
+0:184      move second child to first child (temp 4-component vector of float)
+0:184        'v' (temp 4-component vector of float)
+0:184        textureLod (global 4-component vector of float)
+0:184          's2D' (uniform sampler2D)
+0:184          'v2' (temp 2-component vector of float)
+0:184          'f' (temp float)
+0:185      move second child to first child (temp 4-component vector of float)
+0:185        'v' (temp 4-component vector of float)
+0:185        textureProjLod (global 4-component vector of float)
+0:185          's3D' (uniform sampler3D)
+0:185          'v' (temp 4-component vector of float)
+0:185          'f' (temp float)
+0:186      move second child to first child (temp 4-component vector of float)
+0:186        'v' (temp 4-component vector of float)
+0:186        textureProjLod (global 4-component vector of float)
+0:186          's1D' (uniform sampler1D)
+0:186          'v' (temp 4-component vector of float)
+0:186          'f' (temp float)
+0:187      move second child to first child (temp 4-component vector of float)
+0:187        'v' (temp 4-component vector of float)
+0:187        textureProjLod (global 4-component vector of float)
+0:187          's2DS' (uniform sampler2DShadow)
+0:187          'v' (temp 4-component vector of float)
+0:187          'f' (temp float)
+0:189      move second child to first child (temp 4-component vector of float)
+0:189        'v' (temp 4-component vector of float)
+0:189        textureGrad (global 4-component vector of float)
+0:189          's1D' (uniform sampler1D)
+0:189          'f' (temp float)
+0:189          'f' (temp float)
+0:189          'f' (temp float)
+0:190      move second child to first child (temp 4-component vector of float)
+0:190        'v' (temp 4-component vector of float)
+0:190        textureProjGrad (global 4-component vector of float)
+0:190          's2D' (uniform sampler2D)
+0:190          'v' (temp 4-component vector of float)
+0:190          'v2' (temp 2-component vector of float)
+0:190          'v2' (temp 2-component vector of float)
+0:191      move second child to first child (temp 4-component vector of float)
+0:191        'v' (temp 4-component vector of float)
+0:191        textureProjGrad (global 4-component vector of float)
+0:191          's2DS' (uniform sampler2DShadow)
+0:191          'v' (temp 4-component vector of float)
+0:191          'v2' (temp 2-component vector of float)
+0:191          'v2' (temp 2-component vector of float)
+0:196  Function Definition: foo2324( (global void)
+0:196    Function Parameters: 
+0:?     Sequence
+0:201      move second child to first child (temp 4-component vector of float)
+0:201        'v' (temp 4-component vector of float)
+0:201        textureLod (global 4-component vector of float)
+0:201          's2D' (uniform sampler2D)
+0:201          'v2' (temp 2-component vector of float)
+0:201          'f' (temp float)
+0:202      move second child to first child (temp 4-component vector of float)
+0:202        'v' (temp 4-component vector of float)
+0:202        textureProjLod (global 4-component vector of float)
+0:202          's3D' (uniform sampler3D)
+0:202          'v' (temp 4-component vector of float)
+0:202          'f' (temp float)
+0:203      move second child to first child (temp 4-component vector of float)
+0:203        'v' (temp 4-component vector of float)
+0:203        textureProjLod (global 4-component vector of float)
+0:203          's1D' (uniform sampler1D)
+0:203          'v' (temp 4-component vector of float)
+0:203          'f' (temp float)
+0:204      move second child to first child (temp 4-component vector of float)
+0:204        'v' (temp 4-component vector of float)
+0:204        textureProjLod (global 4-component vector of float)
+0:204          's2DS' (uniform sampler2DShadow)
+0:204          'v' (temp 4-component vector of float)
+0:204          'f' (temp float)
+0:206      move second child to first child (temp 4-component vector of float)
+0:206        'v' (temp 4-component vector of float)
+0:206        textureGrad (global 4-component vector of float)
+0:206          's1D' (uniform sampler1D)
+0:206          'f' (temp float)
+0:206          'f' (temp float)
+0:206          'f' (temp float)
+0:207      move second child to first child (temp 4-component vector of float)
+0:207        'v' (temp 4-component vector of float)
+0:207        textureProjGrad (global 4-component vector of float)
+0:207          's2D' (uniform sampler2D)
+0:207          'v' (temp 4-component vector of float)
+0:207          'v2' (temp 2-component vector of float)
+0:207          'v2' (temp 2-component vector of float)
+0:208      move second child to first child (temp 4-component vector of float)
+0:208        'v' (temp 4-component vector of float)
+0:208        textureProjGrad (global 4-component vector of float)
+0:208          's2DS' (uniform sampler2DShadow)
+0:208          'v' (temp 4-component vector of float)
+0:208          'v2' (temp 2-component vector of float)
+0:208          'v2' (temp 2-component vector of float)
+0:209      'v' (temp 4-component vector of float)
+0:214  Function Definition: foo121111( (global void)
+0:214    Function Parameters: 
+0:?     Sequence
+0:217      Sequence
+0:217        move second child to first child (temp 4-component vector of float)
+0:217          'v' (temp 4-component vector of float)
+0:217          texture (global 4-component vector of float)
+0:217            's2DRbad' (uniform sampler2DRect)
+0:217            'v2' (temp 2-component vector of float)
+0:225  Function Definition: foo12111( (global void)
+0:225    Function Parameters: 
+0:?     Sequence
+0:231      move second child to first child (temp 4-component vector of float)
+0:231        'v' (temp 4-component vector of float)
+0:231        texture (global 4-component vector of float)
+0:231          's2DR' (uniform sampler2DRect)
+0:231          'v2' (temp 2-component vector of float)
+0:232      move second child to first child (temp 4-component vector of float)
+0:232        'v' (temp 4-component vector of float)
+0:232        textureProj (global 4-component vector of float)
+0:232          's2DR' (uniform sampler2DRect)
+0:232          'v3' (temp 3-component vector of float)
+0:233      move second child to first child (temp 4-component vector of float)
+0:233        'v' (temp 4-component vector of float)
+0:233        textureProj (global 4-component vector of float)
+0:233          's2DR' (uniform sampler2DRect)
+0:233          'v4' (temp 4-component vector of float)
+0:234      move second child to first child (temp 4-component vector of float)
+0:234        'v' (temp 4-component vector of float)
+0:234        texture (global 4-component vector of float)
+0:234          's2DRS' (uniform sampler2DRectShadow)
+0:234          'v3' (temp 3-component vector of float)
+0:235      move second child to first child (temp 4-component vector of float)
+0:235        'v' (temp 4-component vector of float)
+0:235        textureProj (global 4-component vector of float)
+0:235          's2DRS' (uniform sampler2DRectShadow)
+0:235          'v4' (temp 4-component vector of float)
+0:237      move second child to first child (temp 4-component vector of float)
+0:237        'v' (temp 4-component vector of float)
+0:237        textureProjGrad (global 4-component vector of float)
+0:237          's2DRS' (uniform sampler2DRectShadow)
+0:237          'v' (temp 4-component vector of float)
+0:237          'v2' (temp 2-component vector of float)
+0:237          'v2' (temp 2-component vector of float)
+0:?   Linker Objects
+0:?     'lowp' (global float)
+0:?     'mediump' (global float)
+0:?     'highp' (global float)
+0:?     'precision' (global float)
+0:?     'i' (smooth in 4-component vector of float)
+0:?     'o' (out 4-component vector of float)
+0:?     's2D' (uniform sampler2D)
+0:?     'centTexCoord' (centroid smooth in 2-component vector of float)
+0:?     'm' (uniform 4X2 matrix of float)
+0:?     'imageBuffer' (global float)
+0:?     'uimage2DRect' (global float)
+0:?     'a' (temp int)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'm22' (global 2X2 matrix of float)
+0:?     'm23' (global 2X3 matrix of float)
+0:?     'm24' (global 2X4 matrix of float)
+0:?     'm32' (global 3X2 matrix of float)
+0:?     'm33' (global 3X3 matrix of float)
+0:?     'm34' (global 3X4 matrix of float)
+0:?     'm42' (global 4X2 matrix of float)
+0:?     'm43' (global 4X3 matrix of float)
+0:?     'm44' (global 4X4 matrix of float)
+0:?     's3D' (uniform sampler3D)
+0:?     's1D' (uniform sampler1D)
+0:?     's2DS' (uniform sampler2DShadow)
+0:?     's2DRbad' (uniform sampler2DRect)
+0:?     's2DR' (uniform sampler2DRect)
+0:?     's2DRS' (uniform sampler2DRectShadow)
+
diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out
index b235868..4c06909 100644
--- a/Test/baseResults/120.vert.out
+++ b/Test/baseResults/120.vert.out
@@ -1,717 +1,717 @@
-120.vert

-ERROR: 0:3: 'in for stage inputs' : not supported for this version or the enabled extensions 

-ERROR: 0:4: 'out for stage outputs' : not supported for this version or the enabled extensions 

-ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 

-ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 

-ERROR: 0:12: '' : replicated qualifiers 

-ERROR: 0:12: 'foo' : identifier not previously declared 

-ERROR: 0:21: 'gl_ClipDistance' : undeclared identifier 

-ERROR: 0:21: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:21: 'assign' :  l-value required (can't modify a const)

-ERROR: 0:28: 'length' :  array must be declared with a size before using this method

-ERROR: 0:31: 'length' : incomplete method syntax 

-ERROR: 0:32: 'length' : method does not accept any arguments 

-ERROR: 0:33: '.' : cannot apply to an array: flizbit

-ERROR: 0:33: '=' :  cannot convert from 'temp 7-element array of float' to 'temp int'

-ERROR: 0:34: '.' : cannot apply to an array: flizbit

-ERROR: 0:34: 'f' : can't use function syntax on variable 

-ERROR: 0:34: 'a4' : redefinition 

-ERROR: 0:35: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:36: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:39: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:40: 'constructor' : array constructor needs one argument per array element 

-ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:40: '=' :  cannot convert from 'const float' to 'temp 2-element array of 3-element array of float'

-ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:41: 'constructor' : array constructor needs one argument per array element 

-ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:41: '=' :  cannot convert from 'const float' to 'temp 2-element array of 3-element array of float'

-ERROR: 0:50: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:51: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:52: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:53: 'arrays of arrays' : not supported with this profile: none

-ERROR: 0:56: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1

-ERROR: 0:57: 'float' : overloaded functions must have the same return type 

-ERROR: 0:87: 'overloadC' : no matching overloaded function found 

-ERROR: 0:90: 'overloadC' : no matching overloaded function found 

-ERROR: 0:95: 'overloadD' : ambiguous function signature match: multiple signatures match under implicit type conversion 

-ERROR: 0:98: 'overloadB' : can't use function syntax on variable 

-ERROR: 0:106: 'overloadC' : no matching overloaded function found 

-ERROR: 0:107: 'overloadE' : no matching overloaded function found 

-ERROR: 0:108: 'overloadE' : no matching overloaded function found 

-ERROR: 0:111: 'overloadE' : no matching overloaded function found 

-ERROR: 0:117: 'overloadF' : no matching overloaded function found 

-ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32)

-ERROR: 0:157: 'switch' : Reserved word. 

-ERROR: 0:163: 'default' : Reserved word. 

-ERROR: 0:157: 'switch statements' : not supported for this version or the enabled extensions 

-ERROR: 0:168: 'bit shift left' : not supported for this version or the enabled extensions 

-ERROR: 0:168: 'bit shift right' : not supported for this version or the enabled extensions 

-ERROR: 0:168: 'bitwise and' : not supported for this version or the enabled extensions 

-ERROR: 0:168: 'bitwise inclusive or' : not supported for this version or the enabled extensions 

-ERROR: 0:171: 'modf' : no matching overloaded function found 

-ERROR: 0:171: '=' :  cannot convert from 'const float' to 'temp 3-component vector of float'

-ERROR: 0:172: 'trunc' : no matching overloaded function found 

-ERROR: 0:173: 'round' : no matching overloaded function found 

-ERROR: 0:173: '=' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 0:174: 'roundEven' : no matching overloaded function found 

-ERROR: 0:174: '=' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 0:175: 'isnan' : no matching overloaded function found 

-ERROR: 0:175: '=' :  cannot convert from 'const float' to 'temp 2-component vector of bool'

-ERROR: 0:176: 'isinf' : no matching overloaded function found 

-ERROR: 0:176: '=' :  cannot convert from 'const float' to 'temp 4-component vector of bool'

-ERROR: 0:178: 'sinh' : no matching overloaded function found 

-ERROR: 0:179: 'cosh' : no matching overloaded function found 

-ERROR: 0:179: 'tanh' : no matching overloaded function found 

-ERROR: 0:180: 'c4D' : undeclared identifier 

-ERROR: 0:180: 'asinh' : no matching overloaded function found 

-ERROR: 0:180: 'acosh' : no matching overloaded function found 

-ERROR: 0:181: 'atanh' : no matching overloaded function found 

-ERROR: 0:183: 'gl_VertexID' : undeclared identifier 

-ERROR: 0:183: '=' :  cannot convert from 'temp float' to 'temp int'

-ERROR: 0:184: 'gl_ClipDistance' : undeclared identifier 

-ERROR: 0:184: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:184: 'assign' :  l-value required (can't modify a const)

-ERROR: 0:190: 'token pasting (##)' : not supported for this version or the enabled extensions 

-ERROR: 0:190: '##' : token pasting not implemented (internal error) 

-ERROR: 0:190: '' :  syntax error

-ERROR: 79 compilation errors.  No code generated.

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      move second child to first child (temp 2-component vector of float)

-0:17        'centTexCoord' (invariant smooth out 2-component vector of float)

-0:17        'attv2' (in 2-component vector of float)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_Position' (invariant gl_Position 4-component vector of float Position)

-0:18        'attv4' (in 4-component vector of float)

-0:20      move second child to first child (temp 4-component vector of float)

-0:20        'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:20        'attv4' (in 4-component vector of float)

-0:21      move second child to first child (temp float)

-0:21        Constant:

-0:21          0.000000

-0:21        Constant:

-0:21          0.200000

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        'gl_Position' (invariant gl_Position 4-component vector of float Position)

-0:25        direct index (temp 4-component vector of float)

-0:25          'b' (temp 12-element array of 4-component vector of float)

-0:25          Constant:

-0:25            11 (const int)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'a1' (temp int)

-0:28          Constant:

-0:28            1 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp int)

-0:30          'aa' (temp int)

-0:30          Constant:

-0:30            7 (const int)

-0:31      Sequence

-0:31        move second child to first child (temp int)

-0:31          'a2' (temp int)

-0:32      Sequence

-0:32        move second child to first child (temp int)

-0:32          'a3' (temp int)

-0:32          Constant:

-0:32            1 (const int)

-0:43      move second child to first child (temp float)

-0:43        'gl_PointSize' (invariant gl_PointSize float PointSize)

-0:43        Constant:

-0:43          3.800000

-0:61  Function Definition: overloadB(f1;f1; (global void)

-0:61    Function Parameters: 

-0:61      '' (in float)

-0:61      '' (const (read only) float)

-0:78  Function Definition: foo( (global void)

-0:78    Function Parameters: 

-0:?     Sequence

-0:83      Function Call: overloadB(f1;f1; (global void)

-0:83        'f' (temp float)

-0:83        'f' (temp float)

-0:84      Function Call: overloadB(f1;f1; (global void)

-0:84        'f' (temp float)

-0:84        Constant:

-0:84          2.000000

-0:85      Function Call: overloadB(f1;f1; (global void)

-0:85        Constant:

-0:85          1.000000

-0:85        Convert int to float (temp float)

-0:85          'i' (temp int)

-0:87      Constant:

-0:87        0.000000

-0:88      Function Call: overloadC(i1;i1; (global 2-component vector of float)

-0:88        Constant:

-0:88          1 (const int)

-0:88        'i' (temp int)

-0:89      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)

-0:89        Constant:

-0:89          1.000000

-0:89          1.000000

-0:89        Constant:

-0:89          2.000000

-0:89          2.000000

-0:90      Constant:

-0:90        0.000000

-0:91      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)

-0:91        Constant:

-0:91          1.000000

-0:91          1.000000

-0:91        Constant:

-0:91          2.000000

-0:91          2.000000

-0:93      Function Call: overloadD(i1;f1; (global 3-component vector of float)

-0:93        'i' (temp int)

-0:93        'f' (temp float)

-0:94      Function Call: overloadD(f1;i1; (global 3-component vector of float)

-0:94        'f' (temp float)

-0:94        'i' (temp int)

-0:95      Function Call: overloadD(f1;i1; (global 3-component vector of float)

-0:95        Convert int to float (temp float)

-0:95          'i' (temp int)

-0:95        'i' (temp int)

-0:98      Constant:

-0:98        0.000000

-0:100      Constant:

-0:100        0.841471

-0:101      texture (global 4-component vector of float)

-0:101        's2D' (uniform sampler2D)

-0:101        Constant:

-0:101          0.000000

-0:101          0.000000

-0:102      clamp (global 4-component vector of float)

-0:102        'attv4' (in 4-component vector of float)

-0:102        Constant:

-0:102          0.000000

-0:102        Constant:

-0:102          1.000000

-0:103      clamp (global 4-component vector of float)

-0:103        Convert int to float (temp 4-component vector of float)

-0:103          Convert float to int (temp 4-component vector of int)

-0:103            'attv4' (in 4-component vector of float)

-0:103        Constant:

-0:103          0.000000

-0:103        Constant:

-0:103          1.000000

-0:106      Constant:

-0:106        0.000000

-0:107      Constant:

-0:107        0.000000

-0:108      Constant:

-0:108        0.000000

-0:109      Function Call: overloadE(vf2; (global 3-component vector of float)

-0:109        Constant:

-0:109          3.300000

-0:109          3.300000

-0:110      Function Call: overloadE(mf22; (global 3-component vector of float)

-0:110        Constant:

-0:110          0.500000

-0:110          0.000000

-0:110          0.000000

-0:110          0.500000

-0:111      Constant:

-0:111        0.000000

-0:112      Function Call: overloadE(vf2; (global 3-component vector of float)

-0:112        Constant:

-0:112          1.000000

-0:112          1.000000

-0:115      Function Call: overloadE(f1[2]; (global 3-component vector of float)

-0:115        'b' (temp 2-element array of float)

-0:117      Constant:

-0:117        0.000000

-0:118      Function Call: overloadF(i1; (global 3-component vector of float)

-0:118        Constant:

-0:118          1 (const int)

-0:128  Function Definition: foo2( (global void)

-0:128    Function Parameters: 

-0:?     Sequence

-0:135      Comma (global void)

-0:135        Function Call: outFun(f1;vi2;i1;f1; (global void)

-0:135          Convert int to float (temp float)

-0:135            'i' (temp int)

-0:135          'tempArg' (temp 2-component vector of int)

-0:135          'i' (temp int)

-0:135          'f' (temp float)

-0:135        move second child to first child (temp 2-component vector of float)

-0:135          'v2' (temp 2-component vector of float)

-0:135          Convert int to float (temp 2-component vector of float)

-0:135            'tempArg' (temp 2-component vector of int)

-0:136      Comma (global int)

-0:136        move second child to first child (temp int)

-0:136          'tempReturn' (global int)

-0:136          Function Call: outFunRet(f1;i1;i1;vi4; (global int)

-0:136            Convert int to float (temp float)

-0:136              'i' (temp int)

-0:136            'tempArg' (temp int)

-0:136            'i' (temp int)

-0:136            'tempArg' (temp 4-component vector of int)

-0:136        move second child to first child (temp float)

-0:136          'f' (temp float)

-0:136          Convert int to float (temp float)

-0:136            'tempArg' (temp int)

-0:136        move second child to first child (temp 4-component vector of float)

-0:136          'v4' (temp 4-component vector of float)

-0:136          Convert int to float (temp 4-component vector of float)

-0:136            'tempArg' (temp 4-component vector of int)

-0:136        'tempReturn' (global int)

-0:137      Sequence

-0:137        move second child to first child (temp float)

-0:137          'ret' (temp float)

-0:137          Convert int to float (temp float)

-0:137            Comma (global int)

-0:137              move second child to first child (temp int)

-0:137                'tempReturn' (global int)

-0:137                Function Call: outFunRet(f1;i1;i1;vi4; (global int)

-0:137                  Convert int to float (temp float)

-0:137                    'i' (temp int)

-0:137                  'tempArg' (temp int)

-0:137                  'i' (temp int)

-0:137                  'tempArg' (temp 4-component vector of int)

-0:137              move second child to first child (temp float)

-0:137                'f' (temp float)

-0:137                Convert int to float (temp float)

-0:137                  'tempArg' (temp int)

-0:137              move second child to first child (temp 4-component vector of float)

-0:137                'v4' (temp 4-component vector of float)

-0:137                Convert int to float (temp 4-component vector of float)

-0:137                  'tempArg' (temp 4-component vector of int)

-0:137              'tempReturn' (global int)

-0:138      Sequence

-0:138        move second child to first child (temp 2-component vector of float)

-0:138          'ret2' (temp 2-component vector of float)

-0:138          Convert int to float (temp 2-component vector of float)

-0:138            Comma (global 2-component vector of int)

-0:138              move second child to first child (temp 2-component vector of int)

-0:138                'tempReturn' (global 2-component vector of int)

-0:138                Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)

-0:138                  Convert int to float (temp float)

-0:138                    'i' (temp int)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138                  'i' (temp int)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138              move second child to first child (temp 4-component vector of float)

-0:138                'v4' (temp 4-component vector of float)

-0:138                Convert int to float (temp 4-component vector of float)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138              move second child to first child (temp 4-component vector of float)

-0:138                'v4' (temp 4-component vector of float)

-0:138                Convert int to float (temp 4-component vector of float)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138              'tempReturn' (global 2-component vector of int)

-0:139      Sequence

-0:139        move second child to first child (temp bool)

-0:139          'b' (temp bool)

-0:139          any (global bool)

-0:139            Compare Less Than (global 4-component vector of bool)

-0:139              'v4' (temp 4-component vector of float)

-0:139              'attv4' (in 4-component vector of float)

-0:154  Function Definition: foo213( (global void)

-0:154    Function Parameters: 

-0:156    Sequence

-0:156      Sequence

-0:156        move second child to first child (temp float)

-0:156          'f' (temp float)

-0:156          Constant:

-0:156            3.000000

-0:157      switch

-0:157      condition

-0:157        'c' (uniform int)

-0:157      body

-0:157        Sequence

-0:158          case:  with expression

-0:158            Constant:

-0:158              1 (const int)

-0:?           Sequence

-0:159            move second child to first child (temp float)

-0:159              'f' (temp float)

-0:159              sine (global float)

-0:159                'f' (temp float)

-0:160            Branch: Break

-0:161          case:  with expression

-0:161            Constant:

-0:161              2 (const int)

-0:?           Sequence

-0:162            move second child to first child (temp float)

-0:162              'f' (temp float)

-0:162              component-wise multiply (temp float)

-0:162                'f' (temp float)

-0:162                'f' (temp float)

-0:163          default: 

-0:?           Sequence

-0:164            move second child to first child (temp float)

-0:164              'f' (temp float)

-0:164              Constant:

-0:164                3.000000

-0:168      inclusive-or (temp int)

-0:168        left-shift (temp int)

-0:168          'i' (temp int)

-0:168          Constant:

-0:168            3 (const int)

-0:168        Constant:

-0:168          69 (const int)

-0:172      Sequence

-0:172        move second child to first child (temp float)

-0:172          't' (temp float)

-0:172          Constant:

-0:172            0.000000

-0:178      Constant:

-0:178        0.000000

-0:180      Constant:

-0:180        0.000000

-0:181      Constant:

-0:181        0.000000

-0:184      move second child to first child (temp float)

-0:184        Constant:

-0:184          0.000000

-0:184        Constant:

-0:184          0.300000

-0:?   Linker Objects

-0:?     'i' (in 4-component vector of float)

-0:?     'o' (smooth out 4-component vector of float)

-0:?     'attv2' (in 2-component vector of float)

-0:?     'attv4' (in 4-component vector of float)

-0:?     's2D' (uniform sampler2D)

-0:?     'centTexCoord' (invariant smooth out 2-component vector of float)

-0:?     'initted' (uniform float)

-0:?       3.400000

-0:?     'concall' (const float)

-0:?       0.295520

-0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)

-0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)

-0:?     'c' (uniform int)

-0:?     'x' (in 2-component vector of int)

-0:?     'v2a' (in 2-component vector of float)

-0:?     'c1D' (in float)

-0:?     'c2D' (in 2-component vector of float)

-0:?     'c3D' (in 3-component vector of float)

-0:?     'v4' (uniform 4-component vector of float)

-0:?     'abc' (global int)

-

-

-Linked vertex stage:

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      move second child to first child (temp 2-component vector of float)

-0:17        'centTexCoord' (invariant smooth out 2-component vector of float)

-0:17        'attv2' (in 2-component vector of float)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_Position' (invariant gl_Position 4-component vector of float Position)

-0:18        'attv4' (in 4-component vector of float)

-0:20      move second child to first child (temp 4-component vector of float)

-0:20        'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:20        'attv4' (in 4-component vector of float)

-0:21      move second child to first child (temp float)

-0:21        Constant:

-0:21          0.000000

-0:21        Constant:

-0:21          0.200000

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        'gl_Position' (invariant gl_Position 4-component vector of float Position)

-0:25        direct index (temp 4-component vector of float)

-0:25          'b' (temp 12-element array of 4-component vector of float)

-0:25          Constant:

-0:25            11 (const int)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'a1' (temp int)

-0:28          Constant:

-0:28            1 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp int)

-0:30          'aa' (temp int)

-0:30          Constant:

-0:30            7 (const int)

-0:31      Sequence

-0:31        move second child to first child (temp int)

-0:31          'a2' (temp int)

-0:32      Sequence

-0:32        move second child to first child (temp int)

-0:32          'a3' (temp int)

-0:32          Constant:

-0:32            1 (const int)

-0:43      move second child to first child (temp float)

-0:43        'gl_PointSize' (invariant gl_PointSize float PointSize)

-0:43        Constant:

-0:43          3.800000

-0:61  Function Definition: overloadB(f1;f1; (global void)

-0:61    Function Parameters: 

-0:61      '' (in float)

-0:61      '' (const (read only) float)

-0:78  Function Definition: foo( (global void)

-0:78    Function Parameters: 

-0:?     Sequence

-0:83      Function Call: overloadB(f1;f1; (global void)

-0:83        'f' (temp float)

-0:83        'f' (temp float)

-0:84      Function Call: overloadB(f1;f1; (global void)

-0:84        'f' (temp float)

-0:84        Constant:

-0:84          2.000000

-0:85      Function Call: overloadB(f1;f1; (global void)

-0:85        Constant:

-0:85          1.000000

-0:85        Convert int to float (temp float)

-0:85          'i' (temp int)

-0:87      Constant:

-0:87        0.000000

-0:88      Function Call: overloadC(i1;i1; (global 2-component vector of float)

-0:88        Constant:

-0:88          1 (const int)

-0:88        'i' (temp int)

-0:89      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)

-0:89        Constant:

-0:89          1.000000

-0:89          1.000000

-0:89        Constant:

-0:89          2.000000

-0:89          2.000000

-0:90      Constant:

-0:90        0.000000

-0:91      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)

-0:91        Constant:

-0:91          1.000000

-0:91          1.000000

-0:91        Constant:

-0:91          2.000000

-0:91          2.000000

-0:93      Function Call: overloadD(i1;f1; (global 3-component vector of float)

-0:93        'i' (temp int)

-0:93        'f' (temp float)

-0:94      Function Call: overloadD(f1;i1; (global 3-component vector of float)

-0:94        'f' (temp float)

-0:94        'i' (temp int)

-0:95      Function Call: overloadD(f1;i1; (global 3-component vector of float)

-0:95        Convert int to float (temp float)

-0:95          'i' (temp int)

-0:95        'i' (temp int)

-0:98      Constant:

-0:98        0.000000

-0:100      Constant:

-0:100        0.841471

-0:101      texture (global 4-component vector of float)

-0:101        's2D' (uniform sampler2D)

-0:101        Constant:

-0:101          0.000000

-0:101          0.000000

-0:102      clamp (global 4-component vector of float)

-0:102        'attv4' (in 4-component vector of float)

-0:102        Constant:

-0:102          0.000000

-0:102        Constant:

-0:102          1.000000

-0:103      clamp (global 4-component vector of float)

-0:103        Convert int to float (temp 4-component vector of float)

-0:103          Convert float to int (temp 4-component vector of int)

-0:103            'attv4' (in 4-component vector of float)

-0:103        Constant:

-0:103          0.000000

-0:103        Constant:

-0:103          1.000000

-0:106      Constant:

-0:106        0.000000

-0:107      Constant:

-0:107        0.000000

-0:108      Constant:

-0:108        0.000000

-0:109      Function Call: overloadE(vf2; (global 3-component vector of float)

-0:109        Constant:

-0:109          3.300000

-0:109          3.300000

-0:110      Function Call: overloadE(mf22; (global 3-component vector of float)

-0:110        Constant:

-0:110          0.500000

-0:110          0.000000

-0:110          0.000000

-0:110          0.500000

-0:111      Constant:

-0:111        0.000000

-0:112      Function Call: overloadE(vf2; (global 3-component vector of float)

-0:112        Constant:

-0:112          1.000000

-0:112          1.000000

-0:115      Function Call: overloadE(f1[2]; (global 3-component vector of float)

-0:115        'b' (temp 2-element array of float)

-0:117      Constant:

-0:117        0.000000

-0:118      Function Call: overloadF(i1; (global 3-component vector of float)

-0:118        Constant:

-0:118          1 (const int)

-0:128  Function Definition: foo2( (global void)

-0:128    Function Parameters: 

-0:?     Sequence

-0:135      Comma (global void)

-0:135        Function Call: outFun(f1;vi2;i1;f1; (global void)

-0:135          Convert int to float (temp float)

-0:135            'i' (temp int)

-0:135          'tempArg' (temp 2-component vector of int)

-0:135          'i' (temp int)

-0:135          'f' (temp float)

-0:135        move second child to first child (temp 2-component vector of float)

-0:135          'v2' (temp 2-component vector of float)

-0:135          Convert int to float (temp 2-component vector of float)

-0:135            'tempArg' (temp 2-component vector of int)

-0:136      Comma (global int)

-0:136        move second child to first child (temp int)

-0:136          'tempReturn' (global int)

-0:136          Function Call: outFunRet(f1;i1;i1;vi4; (global int)

-0:136            Convert int to float (temp float)

-0:136              'i' (temp int)

-0:136            'tempArg' (temp int)

-0:136            'i' (temp int)

-0:136            'tempArg' (temp 4-component vector of int)

-0:136        move second child to first child (temp float)

-0:136          'f' (temp float)

-0:136          Convert int to float (temp float)

-0:136            'tempArg' (temp int)

-0:136        move second child to first child (temp 4-component vector of float)

-0:136          'v4' (temp 4-component vector of float)

-0:136          Convert int to float (temp 4-component vector of float)

-0:136            'tempArg' (temp 4-component vector of int)

-0:136        'tempReturn' (global int)

-0:137      Sequence

-0:137        move second child to first child (temp float)

-0:137          'ret' (temp float)

-0:137          Convert int to float (temp float)

-0:137            Comma (global int)

-0:137              move second child to first child (temp int)

-0:137                'tempReturn' (global int)

-0:137                Function Call: outFunRet(f1;i1;i1;vi4; (global int)

-0:137                  Convert int to float (temp float)

-0:137                    'i' (temp int)

-0:137                  'tempArg' (temp int)

-0:137                  'i' (temp int)

-0:137                  'tempArg' (temp 4-component vector of int)

-0:137              move second child to first child (temp float)

-0:137                'f' (temp float)

-0:137                Convert int to float (temp float)

-0:137                  'tempArg' (temp int)

-0:137              move second child to first child (temp 4-component vector of float)

-0:137                'v4' (temp 4-component vector of float)

-0:137                Convert int to float (temp 4-component vector of float)

-0:137                  'tempArg' (temp 4-component vector of int)

-0:137              'tempReturn' (global int)

-0:138      Sequence

-0:138        move second child to first child (temp 2-component vector of float)

-0:138          'ret2' (temp 2-component vector of float)

-0:138          Convert int to float (temp 2-component vector of float)

-0:138            Comma (global 2-component vector of int)

-0:138              move second child to first child (temp 2-component vector of int)

-0:138                'tempReturn' (global 2-component vector of int)

-0:138                Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)

-0:138                  Convert int to float (temp float)

-0:138                    'i' (temp int)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138                  'i' (temp int)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138              move second child to first child (temp 4-component vector of float)

-0:138                'v4' (temp 4-component vector of float)

-0:138                Convert int to float (temp 4-component vector of float)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138              move second child to first child (temp 4-component vector of float)

-0:138                'v4' (temp 4-component vector of float)

-0:138                Convert int to float (temp 4-component vector of float)

-0:138                  'tempArg' (temp 4-component vector of int)

-0:138              'tempReturn' (global 2-component vector of int)

-0:139      Sequence

-0:139        move second child to first child (temp bool)

-0:139          'b' (temp bool)

-0:139          any (global bool)

-0:139            Compare Less Than (global 4-component vector of bool)

-0:139              'v4' (temp 4-component vector of float)

-0:139              'attv4' (in 4-component vector of float)

-0:154  Function Definition: foo213( (global void)

-0:154    Function Parameters: 

-0:156    Sequence

-0:156      Sequence

-0:156        move second child to first child (temp float)

-0:156          'f' (temp float)

-0:156          Constant:

-0:156            3.000000

-0:157      switch

-0:157      condition

-0:157        'c' (uniform int)

-0:157      body

-0:157        Sequence

-0:158          case:  with expression

-0:158            Constant:

-0:158              1 (const int)

-0:?           Sequence

-0:159            move second child to first child (temp float)

-0:159              'f' (temp float)

-0:159              sine (global float)

-0:159                'f' (temp float)

-0:160            Branch: Break

-0:161          case:  with expression

-0:161            Constant:

-0:161              2 (const int)

-0:?           Sequence

-0:162            move second child to first child (temp float)

-0:162              'f' (temp float)

-0:162              component-wise multiply (temp float)

-0:162                'f' (temp float)

-0:162                'f' (temp float)

-0:163          default: 

-0:?           Sequence

-0:164            move second child to first child (temp float)

-0:164              'f' (temp float)

-0:164              Constant:

-0:164                3.000000

-0:168      inclusive-or (temp int)

-0:168        left-shift (temp int)

-0:168          'i' (temp int)

-0:168          Constant:

-0:168            3 (const int)

-0:168        Constant:

-0:168          69 (const int)

-0:172      Sequence

-0:172        move second child to first child (temp float)

-0:172          't' (temp float)

-0:172          Constant:

-0:172            0.000000

-0:178      Constant:

-0:178        0.000000

-0:180      Constant:

-0:180        0.000000

-0:181      Constant:

-0:181        0.000000

-0:184      move second child to first child (temp float)

-0:184        Constant:

-0:184          0.000000

-0:184        Constant:

-0:184          0.300000

-0:?   Linker Objects

-0:?     'i' (in 4-component vector of float)

-0:?     'o' (smooth out 4-component vector of float)

-0:?     'attv2' (in 2-component vector of float)

-0:?     'attv4' (in 4-component vector of float)

-0:?     's2D' (uniform sampler2D)

-0:?     'centTexCoord' (invariant smooth out 2-component vector of float)

-0:?     'initted' (uniform float)

-0:?       3.400000

-0:?     'concall' (const float)

-0:?       0.295520

-0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)

-0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)

-0:?     'c' (uniform int)

-0:?     'x' (in 2-component vector of int)

-0:?     'v2a' (in 2-component vector of float)

-0:?     'c1D' (in float)

-0:?     'c2D' (in 2-component vector of float)

-0:?     'c3D' (in 3-component vector of float)

-0:?     'v4' (uniform 4-component vector of float)

-0:?     'abc' (global int)

-

+120.vert
+ERROR: 0:3: 'in for stage inputs' : not supported for this version or the enabled extensions 
+ERROR: 0:4: 'out for stage outputs' : not supported for this version or the enabled extensions 
+ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 
+ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 
+ERROR: 0:12: '' : replicated qualifiers 
+ERROR: 0:12: 'foo' : identifier not previously declared 
+ERROR: 0:21: 'gl_ClipDistance' : undeclared identifier 
+ERROR: 0:21: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:21: 'assign' :  l-value required (can't modify a const)
+ERROR: 0:28: 'length' :  array must be declared with a size before using this method
+ERROR: 0:31: 'length' : incomplete method syntax 
+ERROR: 0:32: 'length' : method does not accept any arguments 
+ERROR: 0:33: '.' : cannot apply to an array: flizbit
+ERROR: 0:33: '=' :  cannot convert from 'temp 7-element array of float' to 'temp int'
+ERROR: 0:34: '.' : cannot apply to an array: flizbit
+ERROR: 0:34: 'f' : can't use function syntax on variable 
+ERROR: 0:34: 'a4' : redefinition 
+ERROR: 0:35: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:36: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:39: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:40: 'constructor' : array constructor needs one argument per array element 
+ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:40: '=' :  cannot convert from 'const float' to 'temp 2-element array of 3-element array of float'
+ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:41: 'constructor' : array constructor needs one argument per array element 
+ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:41: '=' :  cannot convert from 'const float' to 'temp 2-element array of 3-element array of float'
+ERROR: 0:50: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:51: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:52: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:53: 'arrays of arrays' : not supported with this profile: none
+ERROR: 0:56: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1
+ERROR: 0:57: 'float' : overloaded functions must have the same return type 
+ERROR: 0:87: 'overloadC' : no matching overloaded function found 
+ERROR: 0:90: 'overloadC' : no matching overloaded function found 
+ERROR: 0:95: 'overloadD' : ambiguous function signature match: multiple signatures match under implicit type conversion 
+ERROR: 0:98: 'overloadB' : can't use function syntax on variable 
+ERROR: 0:106: 'overloadC' : no matching overloaded function found 
+ERROR: 0:107: 'overloadE' : no matching overloaded function found 
+ERROR: 0:108: 'overloadE' : no matching overloaded function found 
+ERROR: 0:111: 'overloadE' : no matching overloaded function found 
+ERROR: 0:117: 'overloadF' : no matching overloaded function found 
+ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32)
+ERROR: 0:157: 'switch' : Reserved word. 
+ERROR: 0:163: 'default' : Reserved word. 
+ERROR: 0:157: 'switch statements' : not supported for this version or the enabled extensions 
+ERROR: 0:168: 'bit shift left' : not supported for this version or the enabled extensions 
+ERROR: 0:168: 'bit shift right' : not supported for this version or the enabled extensions 
+ERROR: 0:168: 'bitwise and' : not supported for this version or the enabled extensions 
+ERROR: 0:168: 'bitwise inclusive or' : not supported for this version or the enabled extensions 
+ERROR: 0:171: 'modf' : no matching overloaded function found 
+ERROR: 0:171: '=' :  cannot convert from 'const float' to 'temp 3-component vector of float'
+ERROR: 0:172: 'trunc' : no matching overloaded function found 
+ERROR: 0:173: 'round' : no matching overloaded function found 
+ERROR: 0:173: '=' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:174: 'roundEven' : no matching overloaded function found 
+ERROR: 0:174: '=' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:175: 'isnan' : no matching overloaded function found 
+ERROR: 0:175: '=' :  cannot convert from 'const float' to 'temp 2-component vector of bool'
+ERROR: 0:176: 'isinf' : no matching overloaded function found 
+ERROR: 0:176: '=' :  cannot convert from 'const float' to 'temp 4-component vector of bool'
+ERROR: 0:178: 'sinh' : no matching overloaded function found 
+ERROR: 0:179: 'cosh' : no matching overloaded function found 
+ERROR: 0:179: 'tanh' : no matching overloaded function found 
+ERROR: 0:180: 'c4D' : undeclared identifier 
+ERROR: 0:180: 'asinh' : no matching overloaded function found 
+ERROR: 0:180: 'acosh' : no matching overloaded function found 
+ERROR: 0:181: 'atanh' : no matching overloaded function found 
+ERROR: 0:183: 'gl_VertexID' : undeclared identifier 
+ERROR: 0:183: '=' :  cannot convert from 'temp float' to 'temp int'
+ERROR: 0:184: 'gl_ClipDistance' : undeclared identifier 
+ERROR: 0:184: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:184: 'assign' :  l-value required (can't modify a const)
+ERROR: 0:190: 'token pasting (##)' : not supported for this version or the enabled extensions 
+ERROR: 0:190: '##' : token pasting not implemented (internal error) 
+ERROR: 0:190: '' :  syntax error
+ERROR: 79 compilation errors.  No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      move second child to first child (temp 2-component vector of float)
+0:17        'centTexCoord' (invariant smooth out 2-component vector of float)
+0:17        'attv2' (in 2-component vector of float)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:18        'attv4' (in 4-component vector of float)
+0:20      move second child to first child (temp 4-component vector of float)
+0:20        'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:20        'attv4' (in 4-component vector of float)
+0:21      move second child to first child (temp float)
+0:21        Constant:
+0:21          0.000000
+0:21        Constant:
+0:21          0.200000
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:25        direct index (temp 4-component vector of float)
+0:25          'b' (temp 12-element array of 4-component vector of float)
+0:25          Constant:
+0:25            11 (const int)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'a1' (temp int)
+0:28          Constant:
+0:28            1 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp int)
+0:30          'aa' (temp int)
+0:30          Constant:
+0:30            7 (const int)
+0:31      Sequence
+0:31        move second child to first child (temp int)
+0:31          'a2' (temp int)
+0:32      Sequence
+0:32        move second child to first child (temp int)
+0:32          'a3' (temp int)
+0:32          Constant:
+0:32            1 (const int)
+0:43      move second child to first child (temp float)
+0:43        'gl_PointSize' (invariant gl_PointSize float PointSize)
+0:43        Constant:
+0:43          3.800000
+0:61  Function Definition: overloadB(f1;f1; (global void)
+0:61    Function Parameters: 
+0:61      '' (in float)
+0:61      '' (const (read only) float)
+0:78  Function Definition: foo( (global void)
+0:78    Function Parameters: 
+0:?     Sequence
+0:83      Function Call: overloadB(f1;f1; (global void)
+0:83        'f' (temp float)
+0:83        'f' (temp float)
+0:84      Function Call: overloadB(f1;f1; (global void)
+0:84        'f' (temp float)
+0:84        Constant:
+0:84          2.000000
+0:85      Function Call: overloadB(f1;f1; (global void)
+0:85        Constant:
+0:85          1.000000
+0:85        Convert int to float (temp float)
+0:85          'i' (temp int)
+0:87      Constant:
+0:87        0.000000
+0:88      Function Call: overloadC(i1;i1; (global 2-component vector of float)
+0:88        Constant:
+0:88          1 (const int)
+0:88        'i' (temp int)
+0:89      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:89        Constant:
+0:89          1.000000
+0:89          1.000000
+0:89        Constant:
+0:89          2.000000
+0:89          2.000000
+0:90      Constant:
+0:90        0.000000
+0:91      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:91        Constant:
+0:91          1.000000
+0:91          1.000000
+0:91        Constant:
+0:91          2.000000
+0:91          2.000000
+0:93      Function Call: overloadD(i1;f1; (global 3-component vector of float)
+0:93        'i' (temp int)
+0:93        'f' (temp float)
+0:94      Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:94        'f' (temp float)
+0:94        'i' (temp int)
+0:95      Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:95        Convert int to float (temp float)
+0:95          'i' (temp int)
+0:95        'i' (temp int)
+0:98      Constant:
+0:98        0.000000
+0:100      Constant:
+0:100        0.841471
+0:101      texture (global 4-component vector of float)
+0:101        's2D' (uniform sampler2D)
+0:101        Constant:
+0:101          0.000000
+0:101          0.000000
+0:102      clamp (global 4-component vector of float)
+0:102        'attv4' (in 4-component vector of float)
+0:102        Constant:
+0:102          0.000000
+0:102        Constant:
+0:102          1.000000
+0:103      clamp (global 4-component vector of float)
+0:103        Convert int to float (temp 4-component vector of float)
+0:103          Convert float to int (temp 4-component vector of int)
+0:103            'attv4' (in 4-component vector of float)
+0:103        Constant:
+0:103          0.000000
+0:103        Constant:
+0:103          1.000000
+0:106      Constant:
+0:106        0.000000
+0:107      Constant:
+0:107        0.000000
+0:108      Constant:
+0:108        0.000000
+0:109      Function Call: overloadE(vf2; (global 3-component vector of float)
+0:109        Constant:
+0:109          3.300000
+0:109          3.300000
+0:110      Function Call: overloadE(mf22; (global 3-component vector of float)
+0:110        Constant:
+0:110          0.500000
+0:110          0.000000
+0:110          0.000000
+0:110          0.500000
+0:111      Constant:
+0:111        0.000000
+0:112      Function Call: overloadE(vf2; (global 3-component vector of float)
+0:112        Constant:
+0:112          1.000000
+0:112          1.000000
+0:115      Function Call: overloadE(f1[2]; (global 3-component vector of float)
+0:115        'b' (temp 2-element array of float)
+0:117      Constant:
+0:117        0.000000
+0:118      Function Call: overloadF(i1; (global 3-component vector of float)
+0:118        Constant:
+0:118          1 (const int)
+0:128  Function Definition: foo2( (global void)
+0:128    Function Parameters: 
+0:?     Sequence
+0:135      Comma (global void)
+0:135        Function Call: outFun(f1;vi2;i1;f1; (global void)
+0:135          Convert int to float (temp float)
+0:135            'i' (temp int)
+0:135          'tempArg' (temp 2-component vector of int)
+0:135          'i' (temp int)
+0:135          'f' (temp float)
+0:135        move second child to first child (temp 2-component vector of float)
+0:135          'v2' (temp 2-component vector of float)
+0:135          Convert int to float (temp 2-component vector of float)
+0:135            'tempArg' (temp 2-component vector of int)
+0:136      Comma (global int)
+0:136        move second child to first child (temp int)
+0:136          'tempReturn' (global int)
+0:136          Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:136            Convert int to float (temp float)
+0:136              'i' (temp int)
+0:136            'tempArg' (temp int)
+0:136            'i' (temp int)
+0:136            'tempArg' (temp 4-component vector of int)
+0:136        move second child to first child (temp float)
+0:136          'f' (temp float)
+0:136          Convert int to float (temp float)
+0:136            'tempArg' (temp int)
+0:136        move second child to first child (temp 4-component vector of float)
+0:136          'v4' (temp 4-component vector of float)
+0:136          Convert int to float (temp 4-component vector of float)
+0:136            'tempArg' (temp 4-component vector of int)
+0:136        'tempReturn' (global int)
+0:137      Sequence
+0:137        move second child to first child (temp float)
+0:137          'ret' (temp float)
+0:137          Convert int to float (temp float)
+0:137            Comma (global int)
+0:137              move second child to first child (temp int)
+0:137                'tempReturn' (global int)
+0:137                Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:137                  Convert int to float (temp float)
+0:137                    'i' (temp int)
+0:137                  'tempArg' (temp int)
+0:137                  'i' (temp int)
+0:137                  'tempArg' (temp 4-component vector of int)
+0:137              move second child to first child (temp float)
+0:137                'f' (temp float)
+0:137                Convert int to float (temp float)
+0:137                  'tempArg' (temp int)
+0:137              move second child to first child (temp 4-component vector of float)
+0:137                'v4' (temp 4-component vector of float)
+0:137                Convert int to float (temp 4-component vector of float)
+0:137                  'tempArg' (temp 4-component vector of int)
+0:137              'tempReturn' (global int)
+0:138      Sequence
+0:138        move second child to first child (temp 2-component vector of float)
+0:138          'ret2' (temp 2-component vector of float)
+0:138          Convert int to float (temp 2-component vector of float)
+0:138            Comma (global 2-component vector of int)
+0:138              move second child to first child (temp 2-component vector of int)
+0:138                'tempReturn' (global 2-component vector of int)
+0:138                Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)
+0:138                  Convert int to float (temp float)
+0:138                    'i' (temp int)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138                  'i' (temp int)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138              move second child to first child (temp 4-component vector of float)
+0:138                'v4' (temp 4-component vector of float)
+0:138                Convert int to float (temp 4-component vector of float)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138              move second child to first child (temp 4-component vector of float)
+0:138                'v4' (temp 4-component vector of float)
+0:138                Convert int to float (temp 4-component vector of float)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138              'tempReturn' (global 2-component vector of int)
+0:139      Sequence
+0:139        move second child to first child (temp bool)
+0:139          'b' (temp bool)
+0:139          any (global bool)
+0:139            Compare Less Than (global 4-component vector of bool)
+0:139              'v4' (temp 4-component vector of float)
+0:139              'attv4' (in 4-component vector of float)
+0:154  Function Definition: foo213( (global void)
+0:154    Function Parameters: 
+0:156    Sequence
+0:156      Sequence
+0:156        move second child to first child (temp float)
+0:156          'f' (temp float)
+0:156          Constant:
+0:156            3.000000
+0:157      switch
+0:157      condition
+0:157        'c' (uniform int)
+0:157      body
+0:157        Sequence
+0:158          case:  with expression
+0:158            Constant:
+0:158              1 (const int)
+0:?           Sequence
+0:159            move second child to first child (temp float)
+0:159              'f' (temp float)
+0:159              sine (global float)
+0:159                'f' (temp float)
+0:160            Branch: Break
+0:161          case:  with expression
+0:161            Constant:
+0:161              2 (const int)
+0:?           Sequence
+0:162            move second child to first child (temp float)
+0:162              'f' (temp float)
+0:162              component-wise multiply (temp float)
+0:162                'f' (temp float)
+0:162                'f' (temp float)
+0:163          default: 
+0:?           Sequence
+0:164            move second child to first child (temp float)
+0:164              'f' (temp float)
+0:164              Constant:
+0:164                3.000000
+0:168      inclusive-or (temp int)
+0:168        left-shift (temp int)
+0:168          'i' (temp int)
+0:168          Constant:
+0:168            3 (const int)
+0:168        Constant:
+0:168          69 (const int)
+0:172      Sequence
+0:172        move second child to first child (temp float)
+0:172          't' (temp float)
+0:172          Constant:
+0:172            0.000000
+0:178      Constant:
+0:178        0.000000
+0:180      Constant:
+0:180        0.000000
+0:181      Constant:
+0:181        0.000000
+0:184      move second child to first child (temp float)
+0:184        Constant:
+0:184          0.000000
+0:184        Constant:
+0:184          0.300000
+0:?   Linker Objects
+0:?     'i' (in 4-component vector of float)
+0:?     'o' (smooth out 4-component vector of float)
+0:?     'attv2' (in 2-component vector of float)
+0:?     'attv4' (in 4-component vector of float)
+0:?     's2D' (uniform sampler2D)
+0:?     'centTexCoord' (invariant smooth out 2-component vector of float)
+0:?     'initted' (uniform float)
+0:?       3.400000
+0:?     'concall' (const float)
+0:?       0.295520
+0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:?     'c' (uniform int)
+0:?     'x' (in 2-component vector of int)
+0:?     'v2a' (in 2-component vector of float)
+0:?     'c1D' (in float)
+0:?     'c2D' (in 2-component vector of float)
+0:?     'c3D' (in 3-component vector of float)
+0:?     'v4' (uniform 4-component vector of float)
+0:?     'abc' (global int)
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      move second child to first child (temp 2-component vector of float)
+0:17        'centTexCoord' (invariant smooth out 2-component vector of float)
+0:17        'attv2' (in 2-component vector of float)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:18        'attv4' (in 4-component vector of float)
+0:20      move second child to first child (temp 4-component vector of float)
+0:20        'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:20        'attv4' (in 4-component vector of float)
+0:21      move second child to first child (temp float)
+0:21        Constant:
+0:21          0.000000
+0:21        Constant:
+0:21          0.200000
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        'gl_Position' (invariant gl_Position 4-component vector of float Position)
+0:25        direct index (temp 4-component vector of float)
+0:25          'b' (temp 12-element array of 4-component vector of float)
+0:25          Constant:
+0:25            11 (const int)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'a1' (temp int)
+0:28          Constant:
+0:28            1 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp int)
+0:30          'aa' (temp int)
+0:30          Constant:
+0:30            7 (const int)
+0:31      Sequence
+0:31        move second child to first child (temp int)
+0:31          'a2' (temp int)
+0:32      Sequence
+0:32        move second child to first child (temp int)
+0:32          'a3' (temp int)
+0:32          Constant:
+0:32            1 (const int)
+0:43      move second child to first child (temp float)
+0:43        'gl_PointSize' (invariant gl_PointSize float PointSize)
+0:43        Constant:
+0:43          3.800000
+0:61  Function Definition: overloadB(f1;f1; (global void)
+0:61    Function Parameters: 
+0:61      '' (in float)
+0:61      '' (const (read only) float)
+0:78  Function Definition: foo( (global void)
+0:78    Function Parameters: 
+0:?     Sequence
+0:83      Function Call: overloadB(f1;f1; (global void)
+0:83        'f' (temp float)
+0:83        'f' (temp float)
+0:84      Function Call: overloadB(f1;f1; (global void)
+0:84        'f' (temp float)
+0:84        Constant:
+0:84          2.000000
+0:85      Function Call: overloadB(f1;f1; (global void)
+0:85        Constant:
+0:85          1.000000
+0:85        Convert int to float (temp float)
+0:85          'i' (temp int)
+0:87      Constant:
+0:87        0.000000
+0:88      Function Call: overloadC(i1;i1; (global 2-component vector of float)
+0:88        Constant:
+0:88          1 (const int)
+0:88        'i' (temp int)
+0:89      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:89        Constant:
+0:89          1.000000
+0:89          1.000000
+0:89        Constant:
+0:89          2.000000
+0:89          2.000000
+0:90      Constant:
+0:90        0.000000
+0:91      Function Call: overloadC(vf2;vf2; (global 2-component vector of float)
+0:91        Constant:
+0:91          1.000000
+0:91          1.000000
+0:91        Constant:
+0:91          2.000000
+0:91          2.000000
+0:93      Function Call: overloadD(i1;f1; (global 3-component vector of float)
+0:93        'i' (temp int)
+0:93        'f' (temp float)
+0:94      Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:94        'f' (temp float)
+0:94        'i' (temp int)
+0:95      Function Call: overloadD(f1;i1; (global 3-component vector of float)
+0:95        Convert int to float (temp float)
+0:95          'i' (temp int)
+0:95        'i' (temp int)
+0:98      Constant:
+0:98        0.000000
+0:100      Constant:
+0:100        0.841471
+0:101      texture (global 4-component vector of float)
+0:101        's2D' (uniform sampler2D)
+0:101        Constant:
+0:101          0.000000
+0:101          0.000000
+0:102      clamp (global 4-component vector of float)
+0:102        'attv4' (in 4-component vector of float)
+0:102        Constant:
+0:102          0.000000
+0:102        Constant:
+0:102          1.000000
+0:103      clamp (global 4-component vector of float)
+0:103        Convert int to float (temp 4-component vector of float)
+0:103          Convert float to int (temp 4-component vector of int)
+0:103            'attv4' (in 4-component vector of float)
+0:103        Constant:
+0:103          0.000000
+0:103        Constant:
+0:103          1.000000
+0:106      Constant:
+0:106        0.000000
+0:107      Constant:
+0:107        0.000000
+0:108      Constant:
+0:108        0.000000
+0:109      Function Call: overloadE(vf2; (global 3-component vector of float)
+0:109        Constant:
+0:109          3.300000
+0:109          3.300000
+0:110      Function Call: overloadE(mf22; (global 3-component vector of float)
+0:110        Constant:
+0:110          0.500000
+0:110          0.000000
+0:110          0.000000
+0:110          0.500000
+0:111      Constant:
+0:111        0.000000
+0:112      Function Call: overloadE(vf2; (global 3-component vector of float)
+0:112        Constant:
+0:112          1.000000
+0:112          1.000000
+0:115      Function Call: overloadE(f1[2]; (global 3-component vector of float)
+0:115        'b' (temp 2-element array of float)
+0:117      Constant:
+0:117        0.000000
+0:118      Function Call: overloadF(i1; (global 3-component vector of float)
+0:118        Constant:
+0:118          1 (const int)
+0:128  Function Definition: foo2( (global void)
+0:128    Function Parameters: 
+0:?     Sequence
+0:135      Comma (global void)
+0:135        Function Call: outFun(f1;vi2;i1;f1; (global void)
+0:135          Convert int to float (temp float)
+0:135            'i' (temp int)
+0:135          'tempArg' (temp 2-component vector of int)
+0:135          'i' (temp int)
+0:135          'f' (temp float)
+0:135        move second child to first child (temp 2-component vector of float)
+0:135          'v2' (temp 2-component vector of float)
+0:135          Convert int to float (temp 2-component vector of float)
+0:135            'tempArg' (temp 2-component vector of int)
+0:136      Comma (global int)
+0:136        move second child to first child (temp int)
+0:136          'tempReturn' (global int)
+0:136          Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:136            Convert int to float (temp float)
+0:136              'i' (temp int)
+0:136            'tempArg' (temp int)
+0:136            'i' (temp int)
+0:136            'tempArg' (temp 4-component vector of int)
+0:136        move second child to first child (temp float)
+0:136          'f' (temp float)
+0:136          Convert int to float (temp float)
+0:136            'tempArg' (temp int)
+0:136        move second child to first child (temp 4-component vector of float)
+0:136          'v4' (temp 4-component vector of float)
+0:136          Convert int to float (temp 4-component vector of float)
+0:136            'tempArg' (temp 4-component vector of int)
+0:136        'tempReturn' (global int)
+0:137      Sequence
+0:137        move second child to first child (temp float)
+0:137          'ret' (temp float)
+0:137          Convert int to float (temp float)
+0:137            Comma (global int)
+0:137              move second child to first child (temp int)
+0:137                'tempReturn' (global int)
+0:137                Function Call: outFunRet(f1;i1;i1;vi4; (global int)
+0:137                  Convert int to float (temp float)
+0:137                    'i' (temp int)
+0:137                  'tempArg' (temp int)
+0:137                  'i' (temp int)
+0:137                  'tempArg' (temp 4-component vector of int)
+0:137              move second child to first child (temp float)
+0:137                'f' (temp float)
+0:137                Convert int to float (temp float)
+0:137                  'tempArg' (temp int)
+0:137              move second child to first child (temp 4-component vector of float)
+0:137                'v4' (temp 4-component vector of float)
+0:137                Convert int to float (temp 4-component vector of float)
+0:137                  'tempArg' (temp 4-component vector of int)
+0:137              'tempReturn' (global int)
+0:138      Sequence
+0:138        move second child to first child (temp 2-component vector of float)
+0:138          'ret2' (temp 2-component vector of float)
+0:138          Convert int to float (temp 2-component vector of float)
+0:138            Comma (global 2-component vector of int)
+0:138              move second child to first child (temp 2-component vector of int)
+0:138                'tempReturn' (global 2-component vector of int)
+0:138                Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int)
+0:138                  Convert int to float (temp float)
+0:138                    'i' (temp int)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138                  'i' (temp int)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138              move second child to first child (temp 4-component vector of float)
+0:138                'v4' (temp 4-component vector of float)
+0:138                Convert int to float (temp 4-component vector of float)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138              move second child to first child (temp 4-component vector of float)
+0:138                'v4' (temp 4-component vector of float)
+0:138                Convert int to float (temp 4-component vector of float)
+0:138                  'tempArg' (temp 4-component vector of int)
+0:138              'tempReturn' (global 2-component vector of int)
+0:139      Sequence
+0:139        move second child to first child (temp bool)
+0:139          'b' (temp bool)
+0:139          any (global bool)
+0:139            Compare Less Than (global 4-component vector of bool)
+0:139              'v4' (temp 4-component vector of float)
+0:139              'attv4' (in 4-component vector of float)
+0:154  Function Definition: foo213( (global void)
+0:154    Function Parameters: 
+0:156    Sequence
+0:156      Sequence
+0:156        move second child to first child (temp float)
+0:156          'f' (temp float)
+0:156          Constant:
+0:156            3.000000
+0:157      switch
+0:157      condition
+0:157        'c' (uniform int)
+0:157      body
+0:157        Sequence
+0:158          case:  with expression
+0:158            Constant:
+0:158              1 (const int)
+0:?           Sequence
+0:159            move second child to first child (temp float)
+0:159              'f' (temp float)
+0:159              sine (global float)
+0:159                'f' (temp float)
+0:160            Branch: Break
+0:161          case:  with expression
+0:161            Constant:
+0:161              2 (const int)
+0:?           Sequence
+0:162            move second child to first child (temp float)
+0:162              'f' (temp float)
+0:162              component-wise multiply (temp float)
+0:162                'f' (temp float)
+0:162                'f' (temp float)
+0:163          default: 
+0:?           Sequence
+0:164            move second child to first child (temp float)
+0:164              'f' (temp float)
+0:164              Constant:
+0:164                3.000000
+0:168      inclusive-or (temp int)
+0:168        left-shift (temp int)
+0:168          'i' (temp int)
+0:168          Constant:
+0:168            3 (const int)
+0:168        Constant:
+0:168          69 (const int)
+0:172      Sequence
+0:172        move second child to first child (temp float)
+0:172          't' (temp float)
+0:172          Constant:
+0:172            0.000000
+0:178      Constant:
+0:178        0.000000
+0:180      Constant:
+0:180        0.000000
+0:181      Constant:
+0:181        0.000000
+0:184      move second child to first child (temp float)
+0:184        Constant:
+0:184          0.000000
+0:184        Constant:
+0:184          0.300000
+0:?   Linker Objects
+0:?     'i' (in 4-component vector of float)
+0:?     'o' (smooth out 4-component vector of float)
+0:?     'attv2' (in 2-component vector of float)
+0:?     'attv4' (in 4-component vector of float)
+0:?     's2D' (uniform sampler2D)
+0:?     'centTexCoord' (invariant smooth out 2-component vector of float)
+0:?     'initted' (uniform float)
+0:?       3.400000
+0:?     'concall' (const float)
+0:?       0.295520
+0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:?     'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
+0:?     'c' (uniform int)
+0:?     'x' (in 2-component vector of int)
+0:?     'v2a' (in 2-component vector of float)
+0:?     'c1D' (in float)
+0:?     'c2D' (in 2-component vector of float)
+0:?     'c3D' (in 3-component vector of float)
+0:?     'v4' (uniform 4-component vector of float)
+0:?     'abc' (global int)
+
diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out
index e418127..b2b4dd0 100644
--- a/Test/baseResults/130.frag.out
+++ b/Test/baseResults/130.frag.out
@@ -1,782 +1,782 @@
-130.frag

-ERROR: 0:25: 'textureGather(...)' : not supported for this version or the enabled extensions 

-ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Color

-ERROR: 0:38: 'gl_Color' : redeclaring non-array as array 

-ERROR: 0:39: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Color

-WARNING: 0:45: extension GL_ARB_texture_gather is being used for textureGather(...)

-ERROR: 0:62: '<' :  wrong operand types: no operation '<' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)

-ERROR: 0:63: '>' :  wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp 3-component vector of uint' and a right operand of type 'temp 3-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:64: '>=' :  wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'const 2-component vector of uint' and a right operand of type 'const 2-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:80: 'textureGatherOffset' : no matching overloaded function found 

-ERROR: 0:80: 'assign' :  cannot convert from 'const float' to 'temp 4-component vector of float'

-ERROR: 0:81: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions 

-ERROR: 0:84: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions 

-ERROR: 0:85: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions 

-WARNING: 0:88: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5

-ERROR: 0:120: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:126: 'uniform block' : not supported for this version or the enabled extensions 

-ERROR: 0:140: 'length' : does not operate on this type: temp bool

-ERROR: 0:140: 'boolb' : can't use function syntax on variable 

-ERROR: 0:141: 'length' : does not operate on this type: temp float

-ERROR: 0:141: '' : function call, method, or subroutine call expected 

-ERROR: 0:141: '' : no matching overloaded function found 

-ERROR: 0:142: 'length' : incomplete method syntax 

-ERROR: 0:143: 'length' : method does not accept any arguments 

-ERROR: 0:146: 'gl_FogFragCoord' : identifiers starting with "gl_" are reserved 

-ERROR: 0:151: 'int' : must be qualified as flat in

-ERROR: 0:151: 'redeclaration' : cannot change the type of gl_FogFragCoord

-ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the enabled extensions 

-ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions 

-ERROR: 0:154: 'iimage2D' : Reserved word. 

-ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in' 

-ERROR: 28 compilation errors.  No code generated.

-

-

-Shader version: 130

-Requested GL_ARB_gpu_shader5

-Requested GL_ARB_separate_shader_objects

-Requested GL_ARB_shader_image_load_store

-Requested GL_ARB_shading_language_420pack

-Requested GL_ARB_texture_cube_map_array

-Requested GL_ARB_texture_gather

-Requested GL_ARB_texture_rectangle

-using early_fragment_tests

-ERROR: node is still EOpNull!

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:18    Sequence

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'clip' (temp float)

-0:18          direct index (smooth temp float ClipDistance)

-0:18            'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)

-0:18            Constant:

-0:18              3 (const int)

-0:23  Function Definition: foo( (global void)

-0:23    Function Parameters: 

-0:25    Sequence

-0:25      Sequence

-0:25        move second child to first child (temp 4-component vector of float)

-0:25          's' (temp 4-component vector of float)

-0:25          textureGather (global 4-component vector of float)

-0:25            'sampC' (uniform samplerCube)

-0:25            Constant:

-0:25              0.200000

-0:25              0.200000

-0:25              0.200000

-0:30  Function Definition: bar( (global void)

-0:30    Function Parameters: 

-0:32    Sequence

-0:32      Sequence

-0:32        move second child to first child (temp 4-component vector of float)

-0:32          's' (temp 4-component vector of float)

-0:32          textureGather (global 4-component vector of float)

-0:32            'sampC' (uniform samplerCube)

-0:32            Constant:

-0:32              0.200000

-0:32              0.200000

-0:32              0.200000

-0:43  Function Definition: bar2( (global void)

-0:43    Function Parameters: 

-0:45    Sequence

-0:45      Sequence

-0:45        move second child to first child (temp 4-component vector of float)

-0:45          's' (temp 4-component vector of float)

-0:45          textureGather (global 4-component vector of float)

-0:45            'sampC' (uniform samplerCube)

-0:45            Constant:

-0:45              0.200000

-0:45              0.200000

-0:45              0.200000

-0:49      move second child to first child (temp 3-component vector of bool)

-0:49        'b3' (temp 3-component vector of bool)

-0:49        Compare Less Than (global 3-component vector of bool)

-0:49          'uv3' (temp 3-component vector of uint)

-0:49          'uv3' (temp 3-component vector of uint)

-0:50      move second child to first child (temp 3-component vector of bool)

-0:50        'b3' (temp 3-component vector of bool)

-0:50        Equal (global 3-component vector of bool)

-0:50          'uv3' (temp 3-component vector of uint)

-0:50          'uv3' (temp 3-component vector of uint)

-0:56      direct index (temp int)

-0:56        'a1' (temp 1-element array of int)

-0:56        Constant:

-0:56          0 (const int)

-0:57      direct index (temp int)

-0:57        'a2' (temp 1-element array of int)

-0:57        Constant:

-0:57          0 (const int)

-0:60      direct index (temp int)

-0:60        'a3' (temp 4-element array of int)

-0:60        Constant:

-0:60          3 (const int)

-0:61      Compare Not Equal (temp bool)

-0:61        'b3' (temp 3-component vector of bool)

-0:61        'b3' (temp 3-component vector of bool)

-0:62      Constant:

-0:62        false (const bool)

-0:63      Constant:

-0:63        false (const bool)

-0:64      Constant:

-0:64        false (const bool)

-0:65      Constant:

-0:65        true (const bool)

-0:66      Constant:

-0:66        false (const bool)

-0:77  Function Definition: bar23( (global void)

-0:77    Function Parameters: 

-0:?     Sequence

-0:80      's' (temp 4-component vector of float)

-0:81      move second child to first child (temp 4-component vector of float)

-0:81        's' (temp 4-component vector of float)

-0:81        textureGatherOffset (global 4-component vector of float)

-0:81          'samp2DR' (uniform sampler2DRect)

-0:81          Constant:

-0:81            0.300000

-0:81            0.300000

-0:81          Constant:

-0:81            1 (const int)

-0:81            1 (const int)

-0:82      move second child to first child (temp 4-component vector of float)

-0:82        's' (temp 4-component vector of float)

-0:82        textureGatherOffset (global 4-component vector of float)

-0:82          'samp2D' (uniform sampler2D)

-0:82          Constant:

-0:82            0.300000

-0:82            0.300000

-0:82          Constant:

-0:82            1 (const int)

-0:82            1 (const int)

-0:83      move second child to first child (temp 4-component vector of float)

-0:83        's' (temp 4-component vector of float)

-0:83        textureGatherOffset (global 4-component vector of float)

-0:83          'samp2DA' (uniform sampler2DArray)

-0:83          Constant:

-0:83            0.300000

-0:83            0.300000

-0:83            0.300000

-0:83          Constant:

-0:83            1 (const int)

-0:83            1 (const int)

-0:84      move second child to first child (temp 4-component vector of float)

-0:84        's' (temp 4-component vector of float)

-0:84        textureGatherOffset (global 4-component vector of float)

-0:84          'samp2DS' (uniform sampler2DShadow)

-0:84          Constant:

-0:84            0.300000

-0:84            0.300000

-0:84          Constant:

-0:84            1.300000

-0:84          Constant:

-0:84            1 (const int)

-0:84            1 (const int)

-0:85      move second child to first child (temp 4-component vector of float)

-0:85        's' (temp 4-component vector of float)

-0:85        textureGatherOffset (global 4-component vector of float)

-0:85          'samp2D' (uniform sampler2D)

-0:85          Constant:

-0:85            0.300000

-0:85            0.300000

-0:85          Constant:

-0:85            1 (const int)

-0:85            1 (const int)

-0:85          Constant:

-0:85            2 (const int)

-0:90  Function Definition: bar234( (global void)

-0:90    Function Parameters: 

-0:?     Sequence

-0:93      move second child to first child (temp 4-component vector of float)

-0:93        's' (temp 4-component vector of float)

-0:93        textureGatherOffset (global 4-component vector of float)

-0:93          'samp2D' (uniform sampler2D)

-0:93          Constant:

-0:93            0.300000

-0:93            0.300000

-0:93          Constant:

-0:93            1 (const int)

-0:93            1 (const int)

-0:94      move second child to first child (temp 4-component vector of float)

-0:94        's' (temp 4-component vector of float)

-0:94        textureGatherOffset (global 4-component vector of float)

-0:94          'samp2DA' (uniform sampler2DArray)

-0:94          Constant:

-0:94            0.300000

-0:94            0.300000

-0:94            0.300000

-0:94          Constant:

-0:94            1 (const int)

-0:94            1 (const int)

-0:95      move second child to first child (temp 4-component vector of float)

-0:95        's' (temp 4-component vector of float)

-0:95        textureGatherOffset (global 4-component vector of float)

-0:95          'samp2DR' (uniform sampler2DRect)

-0:95          Constant:

-0:95            0.300000

-0:95            0.300000

-0:95          Constant:

-0:95            1 (const int)

-0:95            1 (const int)

-0:96      move second child to first child (temp 4-component vector of float)

-0:96        's' (temp 4-component vector of float)

-0:96        textureGatherOffset (global 4-component vector of float)

-0:96          'samp2DS' (uniform sampler2DShadow)

-0:96          Constant:

-0:96            0.300000

-0:96            0.300000

-0:96          Constant:

-0:96            1.300000

-0:96          Constant:

-0:96            1 (const int)

-0:96            1 (const int)

-0:97      move second child to first child (temp 4-component vector of float)

-0:97        's' (temp 4-component vector of float)

-0:97        textureGatherOffset (global 4-component vector of float)

-0:97          'samp2D' (uniform sampler2D)

-0:97          Constant:

-0:97            0.300000

-0:97            0.300000

-0:97          Constant:

-0:97            1 (const int)

-0:97            1 (const int)

-0:97          Constant:

-0:97            2 (const int)

-0:107  Function Definition: bar235( (global void)

-0:107    Function Parameters: 

-0:109    Sequence

-0:109      Sequence

-0:109        move second child to first child (temp 3-component vector of int)

-0:109          'a' (temp 3-component vector of int)

-0:109          textureSize (global 3-component vector of int)

-0:109            'Sca' (uniform samplerCubeArray)

-0:109            Constant:

-0:109              3 (const int)

-0:110      Sequence

-0:110        move second child to first child (temp 4-component vector of float)

-0:110          'b' (temp 4-component vector of float)

-0:110          texture (global 4-component vector of float)

-0:110            'Sca' (uniform samplerCubeArray)

-0:110            'i' (smooth in 4-component vector of float)

-0:111      Sequence

-0:111        move second child to first child (temp 4-component vector of int)

-0:111          'c' (temp 4-component vector of int)

-0:111          texture (global 4-component vector of int)

-0:111            'Isca' (uniform isamplerCubeArray)

-0:111            'i' (smooth in 4-component vector of float)

-0:111            Constant:

-0:111              0.700000

-0:112      Sequence

-0:112        move second child to first child (temp 4-component vector of uint)

-0:112          'd' (temp 4-component vector of uint)

-0:112          texture (global 4-component vector of uint)

-0:112            'Usca' (uniform usamplerCubeArray)

-0:112            'i' (smooth in 4-component vector of float)

-0:114      move second child to first child (temp 4-component vector of float)

-0:114        'b' (temp 4-component vector of float)

-0:114        textureLod (global 4-component vector of float)

-0:114          'Sca' (uniform samplerCubeArray)

-0:114          'i' (smooth in 4-component vector of float)

-0:114          Constant:

-0:114            1.700000

-0:115      move second child to first child (temp 3-component vector of int)

-0:115        'a' (temp 3-component vector of int)

-0:115        textureSize (global 3-component vector of int)

-0:115          'Scas' (uniform samplerCubeArrayShadow)

-0:115          direct index (temp int)

-0:115            'a' (temp 3-component vector of int)

-0:115            Constant:

-0:115              0 (const int)

-0:116      Sequence

-0:116        move second child to first child (temp float)

-0:116          'f' (temp float)

-0:116          texture (global float)

-0:116            'Scas' (uniform samplerCubeArrayShadow)

-0:116            'i' (smooth in 4-component vector of float)

-0:116            direct index (temp float)

-0:116              'b' (temp 4-component vector of float)

-0:116              Constant:

-0:116                1 (const int)

-0:117      move second child to first child (temp 4-component vector of int)

-0:117        'c' (temp 4-component vector of int)

-0:117        textureGrad (global 4-component vector of int)

-0:117          'Isca' (uniform isamplerCubeArray)

-0:117          'i' (smooth in 4-component vector of float)

-0:117          Constant:

-0:117            0.100000

-0:117            0.100000

-0:117            0.100000

-0:117          Constant:

-0:117            0.200000

-0:117            0.200000

-0:117            0.200000

-0:129  Function Definition: bar23444( (global void)

-0:129    Function Parameters: 

-0:?     Sequence

-0:132      Sequence

-0:132        move second child to first child (temp float)

-0:132          'a1' (temp float)

-0:132          direct index (temp float)

-0:132            direct index (temp 3-component vector of float)

-0:132              'm43' (temp 4X3 matrix of float)

-0:132              Constant:

-0:132                3 (const int)

-0:132            Constant:

-0:132              1 (const int)

-0:134      Sequence

-0:134        move second child to first child (temp int)

-0:134          'a2' (temp int)

-0:134          Constant:

-0:134            4 (const int)

-0:135      add second child into first child (temp int)

-0:135        'a2' (temp int)

-0:135        Constant:

-0:135          3 (const int)

-0:136      add second child into first child (temp int)

-0:136        'a2' (temp int)

-0:136        Constant:

-0:136          3 (const int)

-0:137      Sequence

-0:137        move second child to first child (temp float)

-0:137          'b' (const (read only) float)

-0:137          component-wise multiply (temp float)

-0:137            Constant:

-0:137              2.000000

-0:137            'a1' (temp float)

-0:138      move second child to first child (temp float)

-0:138        direct index (temp float)

-0:138          'a' (global 3-component vector of float)

-0:138          Constant:

-0:138            0 (const int)

-0:138        Constant:

-0:138          -1.000000

-0:140      Constant:

-0:140        0.000000

-0:141      Constant:

-0:141        0.000000

-0:143      Constant:

-0:143        1 (const int)

-0:162  Function Definition: qux2( (global void)

-0:162    Function Parameters: 

-0:?     Sequence

-0:165      imageAtomicCompSwap (global int)

-0:165        'iimg2D' (layout(r32i ) uniform iimage2D)

-0:165        Construct ivec2 (temp 2-component vector of int)

-0:165          'i' (temp int)

-0:165          'i' (temp int)

-0:165        'i' (temp int)

-0:165        'i' (temp int)

-0:166      Sequence

-0:166        move second child to first child (temp 4-component vector of int)

-0:166          'pos' (temp 4-component vector of int)

-0:166          imageLoad (global 4-component vector of int)

-0:166            'iimg2D' (layout(r32i ) uniform iimage2D)

-0:166            Construct ivec2 (temp 2-component vector of int)

-0:166              'i' (temp int)

-0:166              'i' (temp int)

-0:?   Linker Objects

-0:?     'a' (global 3-component vector of float)

-0:?     'b' (global float)

-0:?     'c' (global int)

-0:?     'i' (smooth in 4-component vector of float)

-0:?     'o' (out 4-component vector of float)

-0:?     'fflat' (flat in float)

-0:?     'fsmooth' (smooth in float)

-0:?     'fnop' (noperspective in float)

-0:?     'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)

-0:?     'sampC' (uniform samplerCube)

-0:?     'gl_Color' (smooth in 4-component vector of float Color)

-0:?     'gl_Color' (flat in 4-component vector of float Color)

-0:?     'samp2D' (uniform sampler2D)

-0:?     'samp2DS' (uniform sampler2DShadow)

-0:?     'samp2DR' (uniform sampler2DRect)

-0:?     'samp2DA' (uniform sampler2DArray)

-0:?     'Sca' (uniform samplerCubeArray)

-0:?     'Isca' (uniform isamplerCubeArray)

-0:?     'Usca' (uniform usamplerCubeArray)

-0:?     'Scas' (uniform samplerCubeArrayShadow)

-0:?     'x' (global int)

-0:?     'ai' (const 3-element array of int)

-0:?       10 (const int)

-0:?       23 (const int)

-0:?       32 (const int)

-0:?     'instanceName' (layout(binding=0 column_major shared ) uniform block{layout(column_major shared ) uniform int a})

-0:?     'bounds' (layout(binding=0 ) uniform sampler2D)

-0:?     'gl_FogFragCoord' (smooth in float)

-0:?     'iimg2Dbad' (layout(r32i ) uniform iimage2D)

-0:?     'iimg2D' (layout(r32i ) uniform iimage2D)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-Requested GL_ARB_gpu_shader5

-Requested GL_ARB_separate_shader_objects

-Requested GL_ARB_shader_image_load_store

-Requested GL_ARB_shading_language_420pack

-Requested GL_ARB_texture_cube_map_array

-Requested GL_ARB_texture_gather

-Requested GL_ARB_texture_rectangle

-using early_fragment_tests

-ERROR: node is still EOpNull!

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:18    Sequence

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'clip' (temp float)

-0:18          direct index (smooth temp float ClipDistance)

-0:18            'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)

-0:18            Constant:

-0:18              3 (const int)

-0:23  Function Definition: foo( (global void)

-0:23    Function Parameters: 

-0:25    Sequence

-0:25      Sequence

-0:25        move second child to first child (temp 4-component vector of float)

-0:25          's' (temp 4-component vector of float)

-0:25          textureGather (global 4-component vector of float)

-0:25            'sampC' (uniform samplerCube)

-0:25            Constant:

-0:25              0.200000

-0:25              0.200000

-0:25              0.200000

-0:30  Function Definition: bar( (global void)

-0:30    Function Parameters: 

-0:32    Sequence

-0:32      Sequence

-0:32        move second child to first child (temp 4-component vector of float)

-0:32          's' (temp 4-component vector of float)

-0:32          textureGather (global 4-component vector of float)

-0:32            'sampC' (uniform samplerCube)

-0:32            Constant:

-0:32              0.200000

-0:32              0.200000

-0:32              0.200000

-0:43  Function Definition: bar2( (global void)

-0:43    Function Parameters: 

-0:45    Sequence

-0:45      Sequence

-0:45        move second child to first child (temp 4-component vector of float)

-0:45          's' (temp 4-component vector of float)

-0:45          textureGather (global 4-component vector of float)

-0:45            'sampC' (uniform samplerCube)

-0:45            Constant:

-0:45              0.200000

-0:45              0.200000

-0:45              0.200000

-0:49      move second child to first child (temp 3-component vector of bool)

-0:49        'b3' (temp 3-component vector of bool)

-0:49        Compare Less Than (global 3-component vector of bool)

-0:49          'uv3' (temp 3-component vector of uint)

-0:49          'uv3' (temp 3-component vector of uint)

-0:50      move second child to first child (temp 3-component vector of bool)

-0:50        'b3' (temp 3-component vector of bool)

-0:50        Equal (global 3-component vector of bool)

-0:50          'uv3' (temp 3-component vector of uint)

-0:50          'uv3' (temp 3-component vector of uint)

-0:56      direct index (temp int)

-0:56        'a1' (temp 1-element array of int)

-0:56        Constant:

-0:56          0 (const int)

-0:57      direct index (temp int)

-0:57        'a2' (temp 1-element array of int)

-0:57        Constant:

-0:57          0 (const int)

-0:60      direct index (temp int)

-0:60        'a3' (temp 4-element array of int)

-0:60        Constant:

-0:60          3 (const int)

-0:61      Compare Not Equal (temp bool)

-0:61        'b3' (temp 3-component vector of bool)

-0:61        'b3' (temp 3-component vector of bool)

-0:62      Constant:

-0:62        false (const bool)

-0:63      Constant:

-0:63        false (const bool)

-0:64      Constant:

-0:64        false (const bool)

-0:65      Constant:

-0:65        true (const bool)

-0:66      Constant:

-0:66        false (const bool)

-0:77  Function Definition: bar23( (global void)

-0:77    Function Parameters: 

-0:?     Sequence

-0:80      's' (temp 4-component vector of float)

-0:81      move second child to first child (temp 4-component vector of float)

-0:81        's' (temp 4-component vector of float)

-0:81        textureGatherOffset (global 4-component vector of float)

-0:81          'samp2DR' (uniform sampler2DRect)

-0:81          Constant:

-0:81            0.300000

-0:81            0.300000

-0:81          Constant:

-0:81            1 (const int)

-0:81            1 (const int)

-0:82      move second child to first child (temp 4-component vector of float)

-0:82        's' (temp 4-component vector of float)

-0:82        textureGatherOffset (global 4-component vector of float)

-0:82          'samp2D' (uniform sampler2D)

-0:82          Constant:

-0:82            0.300000

-0:82            0.300000

-0:82          Constant:

-0:82            1 (const int)

-0:82            1 (const int)

-0:83      move second child to first child (temp 4-component vector of float)

-0:83        's' (temp 4-component vector of float)

-0:83        textureGatherOffset (global 4-component vector of float)

-0:83          'samp2DA' (uniform sampler2DArray)

-0:83          Constant:

-0:83            0.300000

-0:83            0.300000

-0:83            0.300000

-0:83          Constant:

-0:83            1 (const int)

-0:83            1 (const int)

-0:84      move second child to first child (temp 4-component vector of float)

-0:84        's' (temp 4-component vector of float)

-0:84        textureGatherOffset (global 4-component vector of float)

-0:84          'samp2DS' (uniform sampler2DShadow)

-0:84          Constant:

-0:84            0.300000

-0:84            0.300000

-0:84          Constant:

-0:84            1.300000

-0:84          Constant:

-0:84            1 (const int)

-0:84            1 (const int)

-0:85      move second child to first child (temp 4-component vector of float)

-0:85        's' (temp 4-component vector of float)

-0:85        textureGatherOffset (global 4-component vector of float)

-0:85          'samp2D' (uniform sampler2D)

-0:85          Constant:

-0:85            0.300000

-0:85            0.300000

-0:85          Constant:

-0:85            1 (const int)

-0:85            1 (const int)

-0:85          Constant:

-0:85            2 (const int)

-0:90  Function Definition: bar234( (global void)

-0:90    Function Parameters: 

-0:?     Sequence

-0:93      move second child to first child (temp 4-component vector of float)

-0:93        's' (temp 4-component vector of float)

-0:93        textureGatherOffset (global 4-component vector of float)

-0:93          'samp2D' (uniform sampler2D)

-0:93          Constant:

-0:93            0.300000

-0:93            0.300000

-0:93          Constant:

-0:93            1 (const int)

-0:93            1 (const int)

-0:94      move second child to first child (temp 4-component vector of float)

-0:94        's' (temp 4-component vector of float)

-0:94        textureGatherOffset (global 4-component vector of float)

-0:94          'samp2DA' (uniform sampler2DArray)

-0:94          Constant:

-0:94            0.300000

-0:94            0.300000

-0:94            0.300000

-0:94          Constant:

-0:94            1 (const int)

-0:94            1 (const int)

-0:95      move second child to first child (temp 4-component vector of float)

-0:95        's' (temp 4-component vector of float)

-0:95        textureGatherOffset (global 4-component vector of float)

-0:95          'samp2DR' (uniform sampler2DRect)

-0:95          Constant:

-0:95            0.300000

-0:95            0.300000

-0:95          Constant:

-0:95            1 (const int)

-0:95            1 (const int)

-0:96      move second child to first child (temp 4-component vector of float)

-0:96        's' (temp 4-component vector of float)

-0:96        textureGatherOffset (global 4-component vector of float)

-0:96          'samp2DS' (uniform sampler2DShadow)

-0:96          Constant:

-0:96            0.300000

-0:96            0.300000

-0:96          Constant:

-0:96            1.300000

-0:96          Constant:

-0:96            1 (const int)

-0:96            1 (const int)

-0:97      move second child to first child (temp 4-component vector of float)

-0:97        's' (temp 4-component vector of float)

-0:97        textureGatherOffset (global 4-component vector of float)

-0:97          'samp2D' (uniform sampler2D)

-0:97          Constant:

-0:97            0.300000

-0:97            0.300000

-0:97          Constant:

-0:97            1 (const int)

-0:97            1 (const int)

-0:97          Constant:

-0:97            2 (const int)

-0:107  Function Definition: bar235( (global void)

-0:107    Function Parameters: 

-0:109    Sequence

-0:109      Sequence

-0:109        move second child to first child (temp 3-component vector of int)

-0:109          'a' (temp 3-component vector of int)

-0:109          textureSize (global 3-component vector of int)

-0:109            'Sca' (uniform samplerCubeArray)

-0:109            Constant:

-0:109              3 (const int)

-0:110      Sequence

-0:110        move second child to first child (temp 4-component vector of float)

-0:110          'b' (temp 4-component vector of float)

-0:110          texture (global 4-component vector of float)

-0:110            'Sca' (uniform samplerCubeArray)

-0:110            'i' (smooth in 4-component vector of float)

-0:111      Sequence

-0:111        move second child to first child (temp 4-component vector of int)

-0:111          'c' (temp 4-component vector of int)

-0:111          texture (global 4-component vector of int)

-0:111            'Isca' (uniform isamplerCubeArray)

-0:111            'i' (smooth in 4-component vector of float)

-0:111            Constant:

-0:111              0.700000

-0:112      Sequence

-0:112        move second child to first child (temp 4-component vector of uint)

-0:112          'd' (temp 4-component vector of uint)

-0:112          texture (global 4-component vector of uint)

-0:112            'Usca' (uniform usamplerCubeArray)

-0:112            'i' (smooth in 4-component vector of float)

-0:114      move second child to first child (temp 4-component vector of float)

-0:114        'b' (temp 4-component vector of float)

-0:114        textureLod (global 4-component vector of float)

-0:114          'Sca' (uniform samplerCubeArray)

-0:114          'i' (smooth in 4-component vector of float)

-0:114          Constant:

-0:114            1.700000

-0:115      move second child to first child (temp 3-component vector of int)

-0:115        'a' (temp 3-component vector of int)

-0:115        textureSize (global 3-component vector of int)

-0:115          'Scas' (uniform samplerCubeArrayShadow)

-0:115          direct index (temp int)

-0:115            'a' (temp 3-component vector of int)

-0:115            Constant:

-0:115              0 (const int)

-0:116      Sequence

-0:116        move second child to first child (temp float)

-0:116          'f' (temp float)

-0:116          texture (global float)

-0:116            'Scas' (uniform samplerCubeArrayShadow)

-0:116            'i' (smooth in 4-component vector of float)

-0:116            direct index (temp float)

-0:116              'b' (temp 4-component vector of float)

-0:116              Constant:

-0:116                1 (const int)

-0:117      move second child to first child (temp 4-component vector of int)

-0:117        'c' (temp 4-component vector of int)

-0:117        textureGrad (global 4-component vector of int)

-0:117          'Isca' (uniform isamplerCubeArray)

-0:117          'i' (smooth in 4-component vector of float)

-0:117          Constant:

-0:117            0.100000

-0:117            0.100000

-0:117            0.100000

-0:117          Constant:

-0:117            0.200000

-0:117            0.200000

-0:117            0.200000

-0:129  Function Definition: bar23444( (global void)

-0:129    Function Parameters: 

-0:?     Sequence

-0:132      Sequence

-0:132        move second child to first child (temp float)

-0:132          'a1' (temp float)

-0:132          direct index (temp float)

-0:132            direct index (temp 3-component vector of float)

-0:132              'm43' (temp 4X3 matrix of float)

-0:132              Constant:

-0:132                3 (const int)

-0:132            Constant:

-0:132              1 (const int)

-0:134      Sequence

-0:134        move second child to first child (temp int)

-0:134          'a2' (temp int)

-0:134          Constant:

-0:134            4 (const int)

-0:135      add second child into first child (temp int)

-0:135        'a2' (temp int)

-0:135        Constant:

-0:135          3 (const int)

-0:136      add second child into first child (temp int)

-0:136        'a2' (temp int)

-0:136        Constant:

-0:136          3 (const int)

-0:137      Sequence

-0:137        move second child to first child (temp float)

-0:137          'b' (const (read only) float)

-0:137          component-wise multiply (temp float)

-0:137            Constant:

-0:137              2.000000

-0:137            'a1' (temp float)

-0:138      move second child to first child (temp float)

-0:138        direct index (temp float)

-0:138          'a' (global 3-component vector of float)

-0:138          Constant:

-0:138            0 (const int)

-0:138        Constant:

-0:138          -1.000000

-0:140      Constant:

-0:140        0.000000

-0:141      Constant:

-0:141        0.000000

-0:143      Constant:

-0:143        1 (const int)

-0:162  Function Definition: qux2( (global void)

-0:162    Function Parameters: 

-0:?     Sequence

-0:165      imageAtomicCompSwap (global int)

-0:165        'iimg2D' (layout(r32i ) uniform iimage2D)

-0:165        Construct ivec2 (temp 2-component vector of int)

-0:165          'i' (temp int)

-0:165          'i' (temp int)

-0:165        'i' (temp int)

-0:165        'i' (temp int)

-0:166      Sequence

-0:166        move second child to first child (temp 4-component vector of int)

-0:166          'pos' (temp 4-component vector of int)

-0:166          imageLoad (global 4-component vector of int)

-0:166            'iimg2D' (layout(r32i ) uniform iimage2D)

-0:166            Construct ivec2 (temp 2-component vector of int)

-0:166              'i' (temp int)

-0:166              'i' (temp int)

-0:?   Linker Objects

-0:?     'a' (global 3-component vector of float)

-0:?     'b' (global float)

-0:?     'c' (global int)

-0:?     'i' (smooth in 4-component vector of float)

-0:?     'o' (out 4-component vector of float)

-0:?     'fflat' (flat in float)

-0:?     'fsmooth' (smooth in float)

-0:?     'fnop' (noperspective in float)

-0:?     'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)

-0:?     'sampC' (uniform samplerCube)

-0:?     'gl_Color' (smooth in 4-component vector of float Color)

-0:?     'gl_Color' (flat in 4-component vector of float Color)

-0:?     'samp2D' (uniform sampler2D)

-0:?     'samp2DS' (uniform sampler2DShadow)

-0:?     'samp2DR' (uniform sampler2DRect)

-0:?     'samp2DA' (uniform sampler2DArray)

-0:?     'Sca' (uniform samplerCubeArray)

-0:?     'Isca' (uniform isamplerCubeArray)

-0:?     'Usca' (uniform usamplerCubeArray)

-0:?     'Scas' (uniform samplerCubeArrayShadow)

-0:?     'x' (global int)

-0:?     'ai' (const 3-element array of int)

-0:?       10 (const int)

-0:?       23 (const int)

-0:?       32 (const int)

-0:?     'instanceName' (layout(binding=0 column_major shared ) uniform block{layout(column_major shared ) uniform int a})

-0:?     'bounds' (layout(binding=0 ) uniform sampler2D)

-0:?     'gl_FogFragCoord' (smooth in float)

-0:?     'iimg2Dbad' (layout(r32i ) uniform iimage2D)

-0:?     'iimg2D' (layout(r32i ) uniform iimage2D)

-

+130.frag
+ERROR: 0:25: 'textureGather(...)' : not supported for this version or the enabled extensions 
+ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Color
+ERROR: 0:38: 'gl_Color' : redeclaring non-array as array 
+ERROR: 0:39: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Color
+WARNING: 0:45: extension GL_ARB_texture_gather is being used for textureGather(...)
+ERROR: 0:62: '<' :  wrong operand types: no operation '<' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)
+ERROR: 0:63: '>' :  wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp 3-component vector of uint' and a right operand of type 'temp 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:64: '>=' :  wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'const 2-component vector of uint' and a right operand of type 'const 2-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:80: 'textureGatherOffset' : no matching overloaded function found 
+ERROR: 0:80: 'assign' :  cannot convert from 'const float' to 'temp 4-component vector of float'
+ERROR: 0:81: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions 
+ERROR: 0:84: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions 
+ERROR: 0:85: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions 
+WARNING: 0:88: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
+ERROR: 0:120: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:126: 'uniform block' : not supported for this version or the enabled extensions 
+ERROR: 0:140: 'length' : does not operate on this type: temp bool
+ERROR: 0:140: 'boolb' : can't use function syntax on variable 
+ERROR: 0:141: 'length' : does not operate on this type: temp float
+ERROR: 0:141: '' : function call, method, or subroutine call expected 
+ERROR: 0:141: '' : no matching overloaded function found 
+ERROR: 0:142: 'length' : incomplete method syntax 
+ERROR: 0:143: 'length' : method does not accept any arguments 
+ERROR: 0:146: 'gl_FogFragCoord' : identifiers starting with "gl_" are reserved 
+ERROR: 0:151: 'int' : must be qualified as flat in
+ERROR: 0:151: 'redeclaration' : cannot change the type of gl_FogFragCoord
+ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the enabled extensions 
+ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions 
+ERROR: 0:154: 'iimage2D' : Reserved word. 
+ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in' 
+ERROR: 28 compilation errors.  No code generated.
+
+
+Shader version: 130
+Requested GL_ARB_gpu_shader5
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_shader_image_load_store
+Requested GL_ARB_shading_language_420pack
+Requested GL_ARB_texture_cube_map_array
+Requested GL_ARB_texture_gather
+Requested GL_ARB_texture_rectangle
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:18    Sequence
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'clip' (temp float)
+0:18          direct index (smooth temp float ClipDistance)
+0:18            'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)
+0:18            Constant:
+0:18              3 (const int)
+0:23  Function Definition: foo( (global void)
+0:23    Function Parameters: 
+0:25    Sequence
+0:25      Sequence
+0:25        move second child to first child (temp 4-component vector of float)
+0:25          's' (temp 4-component vector of float)
+0:25          textureGather (global 4-component vector of float)
+0:25            'sampC' (uniform samplerCube)
+0:25            Constant:
+0:25              0.200000
+0:25              0.200000
+0:25              0.200000
+0:30  Function Definition: bar( (global void)
+0:30    Function Parameters: 
+0:32    Sequence
+0:32      Sequence
+0:32        move second child to first child (temp 4-component vector of float)
+0:32          's' (temp 4-component vector of float)
+0:32          textureGather (global 4-component vector of float)
+0:32            'sampC' (uniform samplerCube)
+0:32            Constant:
+0:32              0.200000
+0:32              0.200000
+0:32              0.200000
+0:43  Function Definition: bar2( (global void)
+0:43    Function Parameters: 
+0:45    Sequence
+0:45      Sequence
+0:45        move second child to first child (temp 4-component vector of float)
+0:45          's' (temp 4-component vector of float)
+0:45          textureGather (global 4-component vector of float)
+0:45            'sampC' (uniform samplerCube)
+0:45            Constant:
+0:45              0.200000
+0:45              0.200000
+0:45              0.200000
+0:49      move second child to first child (temp 3-component vector of bool)
+0:49        'b3' (temp 3-component vector of bool)
+0:49        Compare Less Than (global 3-component vector of bool)
+0:49          'uv3' (temp 3-component vector of uint)
+0:49          'uv3' (temp 3-component vector of uint)
+0:50      move second child to first child (temp 3-component vector of bool)
+0:50        'b3' (temp 3-component vector of bool)
+0:50        Equal (global 3-component vector of bool)
+0:50          'uv3' (temp 3-component vector of uint)
+0:50          'uv3' (temp 3-component vector of uint)
+0:56      direct index (temp int)
+0:56        'a1' (temp 1-element array of int)
+0:56        Constant:
+0:56          0 (const int)
+0:57      direct index (temp int)
+0:57        'a2' (temp 1-element array of int)
+0:57        Constant:
+0:57          0 (const int)
+0:60      direct index (temp int)
+0:60        'a3' (temp 4-element array of int)
+0:60        Constant:
+0:60          3 (const int)
+0:61      Compare Not Equal (temp bool)
+0:61        'b3' (temp 3-component vector of bool)
+0:61        'b3' (temp 3-component vector of bool)
+0:62      Constant:
+0:62        false (const bool)
+0:63      Constant:
+0:63        false (const bool)
+0:64      Constant:
+0:64        false (const bool)
+0:65      Constant:
+0:65        true (const bool)
+0:66      Constant:
+0:66        false (const bool)
+0:77  Function Definition: bar23( (global void)
+0:77    Function Parameters: 
+0:?     Sequence
+0:80      's' (temp 4-component vector of float)
+0:81      move second child to first child (temp 4-component vector of float)
+0:81        's' (temp 4-component vector of float)
+0:81        textureGatherOffset (global 4-component vector of float)
+0:81          'samp2DR' (uniform sampler2DRect)
+0:81          Constant:
+0:81            0.300000
+0:81            0.300000
+0:81          Constant:
+0:81            1 (const int)
+0:81            1 (const int)
+0:82      move second child to first child (temp 4-component vector of float)
+0:82        's' (temp 4-component vector of float)
+0:82        textureGatherOffset (global 4-component vector of float)
+0:82          'samp2D' (uniform sampler2D)
+0:82          Constant:
+0:82            0.300000
+0:82            0.300000
+0:82          Constant:
+0:82            1 (const int)
+0:82            1 (const int)
+0:83      move second child to first child (temp 4-component vector of float)
+0:83        's' (temp 4-component vector of float)
+0:83        textureGatherOffset (global 4-component vector of float)
+0:83          'samp2DA' (uniform sampler2DArray)
+0:83          Constant:
+0:83            0.300000
+0:83            0.300000
+0:83            0.300000
+0:83          Constant:
+0:83            1 (const int)
+0:83            1 (const int)
+0:84      move second child to first child (temp 4-component vector of float)
+0:84        's' (temp 4-component vector of float)
+0:84        textureGatherOffset (global 4-component vector of float)
+0:84          'samp2DS' (uniform sampler2DShadow)
+0:84          Constant:
+0:84            0.300000
+0:84            0.300000
+0:84          Constant:
+0:84            1.300000
+0:84          Constant:
+0:84            1 (const int)
+0:84            1 (const int)
+0:85      move second child to first child (temp 4-component vector of float)
+0:85        's' (temp 4-component vector of float)
+0:85        textureGatherOffset (global 4-component vector of float)
+0:85          'samp2D' (uniform sampler2D)
+0:85          Constant:
+0:85            0.300000
+0:85            0.300000
+0:85          Constant:
+0:85            1 (const int)
+0:85            1 (const int)
+0:85          Constant:
+0:85            2 (const int)
+0:90  Function Definition: bar234( (global void)
+0:90    Function Parameters: 
+0:?     Sequence
+0:93      move second child to first child (temp 4-component vector of float)
+0:93        's' (temp 4-component vector of float)
+0:93        textureGatherOffset (global 4-component vector of float)
+0:93          'samp2D' (uniform sampler2D)
+0:93          Constant:
+0:93            0.300000
+0:93            0.300000
+0:93          Constant:
+0:93            1 (const int)
+0:93            1 (const int)
+0:94      move second child to first child (temp 4-component vector of float)
+0:94        's' (temp 4-component vector of float)
+0:94        textureGatherOffset (global 4-component vector of float)
+0:94          'samp2DA' (uniform sampler2DArray)
+0:94          Constant:
+0:94            0.300000
+0:94            0.300000
+0:94            0.300000
+0:94          Constant:
+0:94            1 (const int)
+0:94            1 (const int)
+0:95      move second child to first child (temp 4-component vector of float)
+0:95        's' (temp 4-component vector of float)
+0:95        textureGatherOffset (global 4-component vector of float)
+0:95          'samp2DR' (uniform sampler2DRect)
+0:95          Constant:
+0:95            0.300000
+0:95            0.300000
+0:95          Constant:
+0:95            1 (const int)
+0:95            1 (const int)
+0:96      move second child to first child (temp 4-component vector of float)
+0:96        's' (temp 4-component vector of float)
+0:96        textureGatherOffset (global 4-component vector of float)
+0:96          'samp2DS' (uniform sampler2DShadow)
+0:96          Constant:
+0:96            0.300000
+0:96            0.300000
+0:96          Constant:
+0:96            1.300000
+0:96          Constant:
+0:96            1 (const int)
+0:96            1 (const int)
+0:97      move second child to first child (temp 4-component vector of float)
+0:97        's' (temp 4-component vector of float)
+0:97        textureGatherOffset (global 4-component vector of float)
+0:97          'samp2D' (uniform sampler2D)
+0:97          Constant:
+0:97            0.300000
+0:97            0.300000
+0:97          Constant:
+0:97            1 (const int)
+0:97            1 (const int)
+0:97          Constant:
+0:97            2 (const int)
+0:107  Function Definition: bar235( (global void)
+0:107    Function Parameters: 
+0:109    Sequence
+0:109      Sequence
+0:109        move second child to first child (temp 3-component vector of int)
+0:109          'a' (temp 3-component vector of int)
+0:109          textureSize (global 3-component vector of int)
+0:109            'Sca' (uniform samplerCubeArray)
+0:109            Constant:
+0:109              3 (const int)
+0:110      Sequence
+0:110        move second child to first child (temp 4-component vector of float)
+0:110          'b' (temp 4-component vector of float)
+0:110          texture (global 4-component vector of float)
+0:110            'Sca' (uniform samplerCubeArray)
+0:110            'i' (smooth in 4-component vector of float)
+0:111      Sequence
+0:111        move second child to first child (temp 4-component vector of int)
+0:111          'c' (temp 4-component vector of int)
+0:111          texture (global 4-component vector of int)
+0:111            'Isca' (uniform isamplerCubeArray)
+0:111            'i' (smooth in 4-component vector of float)
+0:111            Constant:
+0:111              0.700000
+0:112      Sequence
+0:112        move second child to first child (temp 4-component vector of uint)
+0:112          'd' (temp 4-component vector of uint)
+0:112          texture (global 4-component vector of uint)
+0:112            'Usca' (uniform usamplerCubeArray)
+0:112            'i' (smooth in 4-component vector of float)
+0:114      move second child to first child (temp 4-component vector of float)
+0:114        'b' (temp 4-component vector of float)
+0:114        textureLod (global 4-component vector of float)
+0:114          'Sca' (uniform samplerCubeArray)
+0:114          'i' (smooth in 4-component vector of float)
+0:114          Constant:
+0:114            1.700000
+0:115      move second child to first child (temp 3-component vector of int)
+0:115        'a' (temp 3-component vector of int)
+0:115        textureSize (global 3-component vector of int)
+0:115          'Scas' (uniform samplerCubeArrayShadow)
+0:115          direct index (temp int)
+0:115            'a' (temp 3-component vector of int)
+0:115            Constant:
+0:115              0 (const int)
+0:116      Sequence
+0:116        move second child to first child (temp float)
+0:116          'f' (temp float)
+0:116          texture (global float)
+0:116            'Scas' (uniform samplerCubeArrayShadow)
+0:116            'i' (smooth in 4-component vector of float)
+0:116            direct index (temp float)
+0:116              'b' (temp 4-component vector of float)
+0:116              Constant:
+0:116                1 (const int)
+0:117      move second child to first child (temp 4-component vector of int)
+0:117        'c' (temp 4-component vector of int)
+0:117        textureGrad (global 4-component vector of int)
+0:117          'Isca' (uniform isamplerCubeArray)
+0:117          'i' (smooth in 4-component vector of float)
+0:117          Constant:
+0:117            0.100000
+0:117            0.100000
+0:117            0.100000
+0:117          Constant:
+0:117            0.200000
+0:117            0.200000
+0:117            0.200000
+0:129  Function Definition: bar23444( (global void)
+0:129    Function Parameters: 
+0:?     Sequence
+0:132      Sequence
+0:132        move second child to first child (temp float)
+0:132          'a1' (temp float)
+0:132          direct index (temp float)
+0:132            direct index (temp 3-component vector of float)
+0:132              'm43' (temp 4X3 matrix of float)
+0:132              Constant:
+0:132                3 (const int)
+0:132            Constant:
+0:132              1 (const int)
+0:134      Sequence
+0:134        move second child to first child (temp int)
+0:134          'a2' (temp int)
+0:134          Constant:
+0:134            4 (const int)
+0:135      add second child into first child (temp int)
+0:135        'a2' (temp int)
+0:135        Constant:
+0:135          3 (const int)
+0:136      add second child into first child (temp int)
+0:136        'a2' (temp int)
+0:136        Constant:
+0:136          3 (const int)
+0:137      Sequence
+0:137        move second child to first child (temp float)
+0:137          'b' (const (read only) float)
+0:137          component-wise multiply (temp float)
+0:137            Constant:
+0:137              2.000000
+0:137            'a1' (temp float)
+0:138      move second child to first child (temp float)
+0:138        direct index (temp float)
+0:138          'a' (global 3-component vector of float)
+0:138          Constant:
+0:138            0 (const int)
+0:138        Constant:
+0:138          -1.000000
+0:140      Constant:
+0:140        0.000000
+0:141      Constant:
+0:141        0.000000
+0:143      Constant:
+0:143        1 (const int)
+0:162  Function Definition: qux2( (global void)
+0:162    Function Parameters: 
+0:?     Sequence
+0:165      imageAtomicCompSwap (global int)
+0:165        'iimg2D' (layout(r32i ) uniform iimage2D)
+0:165        Construct ivec2 (temp 2-component vector of int)
+0:165          'i' (temp int)
+0:165          'i' (temp int)
+0:165        'i' (temp int)
+0:165        'i' (temp int)
+0:166      Sequence
+0:166        move second child to first child (temp 4-component vector of int)
+0:166          'pos' (temp 4-component vector of int)
+0:166          imageLoad (global 4-component vector of int)
+0:166            'iimg2D' (layout(r32i ) uniform iimage2D)
+0:166            Construct ivec2 (temp 2-component vector of int)
+0:166              'i' (temp int)
+0:166              'i' (temp int)
+0:?   Linker Objects
+0:?     'a' (global 3-component vector of float)
+0:?     'b' (global float)
+0:?     'c' (global int)
+0:?     'i' (smooth in 4-component vector of float)
+0:?     'o' (out 4-component vector of float)
+0:?     'fflat' (flat in float)
+0:?     'fsmooth' (smooth in float)
+0:?     'fnop' (noperspective in float)
+0:?     'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)
+0:?     'sampC' (uniform samplerCube)
+0:?     'gl_Color' (smooth in 4-component vector of float Color)
+0:?     'gl_Color' (flat in 4-component vector of float Color)
+0:?     'samp2D' (uniform sampler2D)
+0:?     'samp2DS' (uniform sampler2DShadow)
+0:?     'samp2DR' (uniform sampler2DRect)
+0:?     'samp2DA' (uniform sampler2DArray)
+0:?     'Sca' (uniform samplerCubeArray)
+0:?     'Isca' (uniform isamplerCubeArray)
+0:?     'Usca' (uniform usamplerCubeArray)
+0:?     'Scas' (uniform samplerCubeArrayShadow)
+0:?     'x' (global int)
+0:?     'ai' (const 3-element array of int)
+0:?       10 (const int)
+0:?       23 (const int)
+0:?       32 (const int)
+0:?     'instanceName' (layout(binding=0 column_major shared ) uniform block{layout(column_major shared ) uniform int a})
+0:?     'bounds' (layout(binding=0 ) uniform sampler2D)
+0:?     'gl_FogFragCoord' (smooth in float)
+0:?     'iimg2Dbad' (layout(r32i ) uniform iimage2D)
+0:?     'iimg2D' (layout(r32i ) uniform iimage2D)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+Requested GL_ARB_gpu_shader5
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_shader_image_load_store
+Requested GL_ARB_shading_language_420pack
+Requested GL_ARB_texture_cube_map_array
+Requested GL_ARB_texture_gather
+Requested GL_ARB_texture_rectangle
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:18    Sequence
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'clip' (temp float)
+0:18          direct index (smooth temp float ClipDistance)
+0:18            'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:18            Constant:
+0:18              3 (const int)
+0:23  Function Definition: foo( (global void)
+0:23    Function Parameters: 
+0:25    Sequence
+0:25      Sequence
+0:25        move second child to first child (temp 4-component vector of float)
+0:25          's' (temp 4-component vector of float)
+0:25          textureGather (global 4-component vector of float)
+0:25            'sampC' (uniform samplerCube)
+0:25            Constant:
+0:25              0.200000
+0:25              0.200000
+0:25              0.200000
+0:30  Function Definition: bar( (global void)
+0:30    Function Parameters: 
+0:32    Sequence
+0:32      Sequence
+0:32        move second child to first child (temp 4-component vector of float)
+0:32          's' (temp 4-component vector of float)
+0:32          textureGather (global 4-component vector of float)
+0:32            'sampC' (uniform samplerCube)
+0:32            Constant:
+0:32              0.200000
+0:32              0.200000
+0:32              0.200000
+0:43  Function Definition: bar2( (global void)
+0:43    Function Parameters: 
+0:45    Sequence
+0:45      Sequence
+0:45        move second child to first child (temp 4-component vector of float)
+0:45          's' (temp 4-component vector of float)
+0:45          textureGather (global 4-component vector of float)
+0:45            'sampC' (uniform samplerCube)
+0:45            Constant:
+0:45              0.200000
+0:45              0.200000
+0:45              0.200000
+0:49      move second child to first child (temp 3-component vector of bool)
+0:49        'b3' (temp 3-component vector of bool)
+0:49        Compare Less Than (global 3-component vector of bool)
+0:49          'uv3' (temp 3-component vector of uint)
+0:49          'uv3' (temp 3-component vector of uint)
+0:50      move second child to first child (temp 3-component vector of bool)
+0:50        'b3' (temp 3-component vector of bool)
+0:50        Equal (global 3-component vector of bool)
+0:50          'uv3' (temp 3-component vector of uint)
+0:50          'uv3' (temp 3-component vector of uint)
+0:56      direct index (temp int)
+0:56        'a1' (temp 1-element array of int)
+0:56        Constant:
+0:56          0 (const int)
+0:57      direct index (temp int)
+0:57        'a2' (temp 1-element array of int)
+0:57        Constant:
+0:57          0 (const int)
+0:60      direct index (temp int)
+0:60        'a3' (temp 4-element array of int)
+0:60        Constant:
+0:60          3 (const int)
+0:61      Compare Not Equal (temp bool)
+0:61        'b3' (temp 3-component vector of bool)
+0:61        'b3' (temp 3-component vector of bool)
+0:62      Constant:
+0:62        false (const bool)
+0:63      Constant:
+0:63        false (const bool)
+0:64      Constant:
+0:64        false (const bool)
+0:65      Constant:
+0:65        true (const bool)
+0:66      Constant:
+0:66        false (const bool)
+0:77  Function Definition: bar23( (global void)
+0:77    Function Parameters: 
+0:?     Sequence
+0:80      's' (temp 4-component vector of float)
+0:81      move second child to first child (temp 4-component vector of float)
+0:81        's' (temp 4-component vector of float)
+0:81        textureGatherOffset (global 4-component vector of float)
+0:81          'samp2DR' (uniform sampler2DRect)
+0:81          Constant:
+0:81            0.300000
+0:81            0.300000
+0:81          Constant:
+0:81            1 (const int)
+0:81            1 (const int)
+0:82      move second child to first child (temp 4-component vector of float)
+0:82        's' (temp 4-component vector of float)
+0:82        textureGatherOffset (global 4-component vector of float)
+0:82          'samp2D' (uniform sampler2D)
+0:82          Constant:
+0:82            0.300000
+0:82            0.300000
+0:82          Constant:
+0:82            1 (const int)
+0:82            1 (const int)
+0:83      move second child to first child (temp 4-component vector of float)
+0:83        's' (temp 4-component vector of float)
+0:83        textureGatherOffset (global 4-component vector of float)
+0:83          'samp2DA' (uniform sampler2DArray)
+0:83          Constant:
+0:83            0.300000
+0:83            0.300000
+0:83            0.300000
+0:83          Constant:
+0:83            1 (const int)
+0:83            1 (const int)
+0:84      move second child to first child (temp 4-component vector of float)
+0:84        's' (temp 4-component vector of float)
+0:84        textureGatherOffset (global 4-component vector of float)
+0:84          'samp2DS' (uniform sampler2DShadow)
+0:84          Constant:
+0:84            0.300000
+0:84            0.300000
+0:84          Constant:
+0:84            1.300000
+0:84          Constant:
+0:84            1 (const int)
+0:84            1 (const int)
+0:85      move second child to first child (temp 4-component vector of float)
+0:85        's' (temp 4-component vector of float)
+0:85        textureGatherOffset (global 4-component vector of float)
+0:85          'samp2D' (uniform sampler2D)
+0:85          Constant:
+0:85            0.300000
+0:85            0.300000
+0:85          Constant:
+0:85            1 (const int)
+0:85            1 (const int)
+0:85          Constant:
+0:85            2 (const int)
+0:90  Function Definition: bar234( (global void)
+0:90    Function Parameters: 
+0:?     Sequence
+0:93      move second child to first child (temp 4-component vector of float)
+0:93        's' (temp 4-component vector of float)
+0:93        textureGatherOffset (global 4-component vector of float)
+0:93          'samp2D' (uniform sampler2D)
+0:93          Constant:
+0:93            0.300000
+0:93            0.300000
+0:93          Constant:
+0:93            1 (const int)
+0:93            1 (const int)
+0:94      move second child to first child (temp 4-component vector of float)
+0:94        's' (temp 4-component vector of float)
+0:94        textureGatherOffset (global 4-component vector of float)
+0:94          'samp2DA' (uniform sampler2DArray)
+0:94          Constant:
+0:94            0.300000
+0:94            0.300000
+0:94            0.300000
+0:94          Constant:
+0:94            1 (const int)
+0:94            1 (const int)
+0:95      move second child to first child (temp 4-component vector of float)
+0:95        's' (temp 4-component vector of float)
+0:95        textureGatherOffset (global 4-component vector of float)
+0:95          'samp2DR' (uniform sampler2DRect)
+0:95          Constant:
+0:95            0.300000
+0:95            0.300000
+0:95          Constant:
+0:95            1 (const int)
+0:95            1 (const int)
+0:96      move second child to first child (temp 4-component vector of float)
+0:96        's' (temp 4-component vector of float)
+0:96        textureGatherOffset (global 4-component vector of float)
+0:96          'samp2DS' (uniform sampler2DShadow)
+0:96          Constant:
+0:96            0.300000
+0:96            0.300000
+0:96          Constant:
+0:96            1.300000
+0:96          Constant:
+0:96            1 (const int)
+0:96            1 (const int)
+0:97      move second child to first child (temp 4-component vector of float)
+0:97        's' (temp 4-component vector of float)
+0:97        textureGatherOffset (global 4-component vector of float)
+0:97          'samp2D' (uniform sampler2D)
+0:97          Constant:
+0:97            0.300000
+0:97            0.300000
+0:97          Constant:
+0:97            1 (const int)
+0:97            1 (const int)
+0:97          Constant:
+0:97            2 (const int)
+0:107  Function Definition: bar235( (global void)
+0:107    Function Parameters: 
+0:109    Sequence
+0:109      Sequence
+0:109        move second child to first child (temp 3-component vector of int)
+0:109          'a' (temp 3-component vector of int)
+0:109          textureSize (global 3-component vector of int)
+0:109            'Sca' (uniform samplerCubeArray)
+0:109            Constant:
+0:109              3 (const int)
+0:110      Sequence
+0:110        move second child to first child (temp 4-component vector of float)
+0:110          'b' (temp 4-component vector of float)
+0:110          texture (global 4-component vector of float)
+0:110            'Sca' (uniform samplerCubeArray)
+0:110            'i' (smooth in 4-component vector of float)
+0:111      Sequence
+0:111        move second child to first child (temp 4-component vector of int)
+0:111          'c' (temp 4-component vector of int)
+0:111          texture (global 4-component vector of int)
+0:111            'Isca' (uniform isamplerCubeArray)
+0:111            'i' (smooth in 4-component vector of float)
+0:111            Constant:
+0:111              0.700000
+0:112      Sequence
+0:112        move second child to first child (temp 4-component vector of uint)
+0:112          'd' (temp 4-component vector of uint)
+0:112          texture (global 4-component vector of uint)
+0:112            'Usca' (uniform usamplerCubeArray)
+0:112            'i' (smooth in 4-component vector of float)
+0:114      move second child to first child (temp 4-component vector of float)
+0:114        'b' (temp 4-component vector of float)
+0:114        textureLod (global 4-component vector of float)
+0:114          'Sca' (uniform samplerCubeArray)
+0:114          'i' (smooth in 4-component vector of float)
+0:114          Constant:
+0:114            1.700000
+0:115      move second child to first child (temp 3-component vector of int)
+0:115        'a' (temp 3-component vector of int)
+0:115        textureSize (global 3-component vector of int)
+0:115          'Scas' (uniform samplerCubeArrayShadow)
+0:115          direct index (temp int)
+0:115            'a' (temp 3-component vector of int)
+0:115            Constant:
+0:115              0 (const int)
+0:116      Sequence
+0:116        move second child to first child (temp float)
+0:116          'f' (temp float)
+0:116          texture (global float)
+0:116            'Scas' (uniform samplerCubeArrayShadow)
+0:116            'i' (smooth in 4-component vector of float)
+0:116            direct index (temp float)
+0:116              'b' (temp 4-component vector of float)
+0:116              Constant:
+0:116                1 (const int)
+0:117      move second child to first child (temp 4-component vector of int)
+0:117        'c' (temp 4-component vector of int)
+0:117        textureGrad (global 4-component vector of int)
+0:117          'Isca' (uniform isamplerCubeArray)
+0:117          'i' (smooth in 4-component vector of float)
+0:117          Constant:
+0:117            0.100000
+0:117            0.100000
+0:117            0.100000
+0:117          Constant:
+0:117            0.200000
+0:117            0.200000
+0:117            0.200000
+0:129  Function Definition: bar23444( (global void)
+0:129    Function Parameters: 
+0:?     Sequence
+0:132      Sequence
+0:132        move second child to first child (temp float)
+0:132          'a1' (temp float)
+0:132          direct index (temp float)
+0:132            direct index (temp 3-component vector of float)
+0:132              'm43' (temp 4X3 matrix of float)
+0:132              Constant:
+0:132                3 (const int)
+0:132            Constant:
+0:132              1 (const int)
+0:134      Sequence
+0:134        move second child to first child (temp int)
+0:134          'a2' (temp int)
+0:134          Constant:
+0:134            4 (const int)
+0:135      add second child into first child (temp int)
+0:135        'a2' (temp int)
+0:135        Constant:
+0:135          3 (const int)
+0:136      add second child into first child (temp int)
+0:136        'a2' (temp int)
+0:136        Constant:
+0:136          3 (const int)
+0:137      Sequence
+0:137        move second child to first child (temp float)
+0:137          'b' (const (read only) float)
+0:137          component-wise multiply (temp float)
+0:137            Constant:
+0:137              2.000000
+0:137            'a1' (temp float)
+0:138      move second child to first child (temp float)
+0:138        direct index (temp float)
+0:138          'a' (global 3-component vector of float)
+0:138          Constant:
+0:138            0 (const int)
+0:138        Constant:
+0:138          -1.000000
+0:140      Constant:
+0:140        0.000000
+0:141      Constant:
+0:141        0.000000
+0:143      Constant:
+0:143        1 (const int)
+0:162  Function Definition: qux2( (global void)
+0:162    Function Parameters: 
+0:?     Sequence
+0:165      imageAtomicCompSwap (global int)
+0:165        'iimg2D' (layout(r32i ) uniform iimage2D)
+0:165        Construct ivec2 (temp 2-component vector of int)
+0:165          'i' (temp int)
+0:165          'i' (temp int)
+0:165        'i' (temp int)
+0:165        'i' (temp int)
+0:166      Sequence
+0:166        move second child to first child (temp 4-component vector of int)
+0:166          'pos' (temp 4-component vector of int)
+0:166          imageLoad (global 4-component vector of int)
+0:166            'iimg2D' (layout(r32i ) uniform iimage2D)
+0:166            Construct ivec2 (temp 2-component vector of int)
+0:166              'i' (temp int)
+0:166              'i' (temp int)
+0:?   Linker Objects
+0:?     'a' (global 3-component vector of float)
+0:?     'b' (global float)
+0:?     'c' (global int)
+0:?     'i' (smooth in 4-component vector of float)
+0:?     'o' (out 4-component vector of float)
+0:?     'fflat' (flat in float)
+0:?     'fsmooth' (smooth in float)
+0:?     'fnop' (noperspective in float)
+0:?     'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:?     'sampC' (uniform samplerCube)
+0:?     'gl_Color' (smooth in 4-component vector of float Color)
+0:?     'gl_Color' (flat in 4-component vector of float Color)
+0:?     'samp2D' (uniform sampler2D)
+0:?     'samp2DS' (uniform sampler2DShadow)
+0:?     'samp2DR' (uniform sampler2DRect)
+0:?     'samp2DA' (uniform sampler2DArray)
+0:?     'Sca' (uniform samplerCubeArray)
+0:?     'Isca' (uniform isamplerCubeArray)
+0:?     'Usca' (uniform usamplerCubeArray)
+0:?     'Scas' (uniform samplerCubeArrayShadow)
+0:?     'x' (global int)
+0:?     'ai' (const 3-element array of int)
+0:?       10 (const int)
+0:?       23 (const int)
+0:?       32 (const int)
+0:?     'instanceName' (layout(binding=0 column_major shared ) uniform block{layout(column_major shared ) uniform int a})
+0:?     'bounds' (layout(binding=0 ) uniform sampler2D)
+0:?     'gl_FogFragCoord' (smooth in float)
+0:?     'iimg2Dbad' (layout(r32i ) uniform iimage2D)
+0:?     'iimg2D' (layout(r32i ) uniform iimage2D)
+
diff --git a/Test/baseResults/130.vert.out b/Test/baseResults/130.vert.out
index cbfe39f..7cfeb19 100644
--- a/Test/baseResults/130.vert.out
+++ b/Test/baseResults/130.vert.out
@@ -1,303 +1,303 @@
-130.vert

-ERROR: 0:59: 'gl_InstanceID' : undeclared identifier 

-ERROR: 0:59: '=' :  cannot convert from 'temp float' to 'temp int'

-ERROR: 0:61: 'texelFetch' : no matching overloaded function found 

-ERROR: 0:61: 'assign' :  cannot convert from 'const float' to 'temp int'

-ERROR: 0:75: '##' : token pasting not implemented (internal error) 

-ERROR: 0:75: '' :  syntax error

-ERROR: 6 compilation errors.  No code generated.

-

-

-Shader version: 130

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp float)

-0:17          'f' (temp float)

-0:17          Constant:

-0:17            3.000000

-0:18      switch

-0:18      condition

-0:18        'c' (uniform int)

-0:18      body

-0:18        Sequence

-0:19          case:  with expression

-0:19            Constant:

-0:19              1 (const int)

-0:?           Sequence

-0:20            move second child to first child (temp float)

-0:20              'f' (temp float)

-0:20              sine (global float)

-0:20                'f' (temp float)

-0:21            Branch: Break

-0:22          case:  with expression

-0:22            Constant:

-0:22              2 (const int)

-0:?           Sequence

-0:23            move second child to first child (temp float)

-0:23              'f' (temp float)

-0:23              component-wise multiply (temp float)

-0:23                'f' (temp float)

-0:23                'f' (temp float)

-0:24          default: 

-0:?           Sequence

-0:25            move second child to first child (temp float)

-0:25              'f' (temp float)

-0:25              Constant:

-0:25                3.000000

-0:29      move second child to first child (temp uint)

-0:29        'i' (temp uint)

-0:29        direct index (temp uint)

-0:29          texture (global 4-component vector of uint)

-0:29            'us2D' (uniform usampler2D)

-0:29            Convert int to float (temp 2-component vector of float)

-0:29              'x' (in 2-component vector of int)

-0:29          Constant:

-0:29            3 (const int)

-0:30      inclusive-or (temp uint)

-0:30        left-shift (temp uint)

-0:30          'i' (temp uint)

-0:30          Constant:

-0:30            3 (const uint)

-0:30        Constant:

-0:30          69 (const uint)

-0:33      Sequence

-0:33        move second child to first child (temp 3-component vector of float)

-0:33          'v11' (temp 3-component vector of float)

-0:33          modf (global 3-component vector of float)

-0:33            'modfIn' (temp 3-component vector of float)

-0:33            'modfOut' (temp 3-component vector of float)

-0:34      Sequence

-0:34        move second child to first child (temp float)

-0:34          't' (temp float)

-0:34          trunc (global float)

-0:34            'f' (temp float)

-0:35      Sequence

-0:35        move second child to first child (temp 2-component vector of float)

-0:35          'v12' (temp 2-component vector of float)

-0:35          round (global 2-component vector of float)

-0:35            'v2a' (in 2-component vector of float)

-0:36      Sequence

-0:36        move second child to first child (temp 2-component vector of float)

-0:36          'v13' (temp 2-component vector of float)

-0:36          roundEven (global 2-component vector of float)

-0:36            'v2a' (in 2-component vector of float)

-0:37      Sequence

-0:37        move second child to first child (temp 2-component vector of bool)

-0:37          'b10' (temp 2-component vector of bool)

-0:37          isnan (global 2-component vector of bool)

-0:37            'v2a' (in 2-component vector of float)

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of bool)

-0:38          'b11' (temp 4-component vector of bool)

-0:38          isinf (global 4-component vector of bool)

-0:38            'v4' (uniform 4-component vector of float)

-0:40      add (temp 2-component vector of float)

-0:40        hyp. sine (global float)

-0:40          'c1D' (in float)

-0:41        vector-scale (temp 2-component vector of float)

-0:41          hyp. cosine (global float)

-0:41            'c1D' (in float)

-0:41          hyp. tangent (global 2-component vector of float)

-0:41            'c2D' (in 2-component vector of float)

-0:42      add (temp 4-component vector of float)

-0:42        arc hyp. sine (global 4-component vector of float)

-0:42          'c4D' (smooth temp 4-component vector of float)

-0:42        arc hyp. cosine (global 4-component vector of float)

-0:42          'c4D' (smooth temp 4-component vector of float)

-0:43      arc hyp. tangent (global 3-component vector of float)

-0:43        'c3D' (in 3-component vector of float)

-0:45      Sequence

-0:45        move second child to first child (temp int)

-0:45          'id' (temp int)

-0:45          'gl_VertexID' (gl_VertexId int VertexId)

-0:46      move second child to first child (temp float)

-0:46        direct index (smooth temp float ClipDistance)

-0:46          'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance)

-0:46          Constant:

-0:46            1 (const int)

-0:46        Constant:

-0:46          0.300000

-0:57  Function Definition: foo88( (global void)

-0:57    Function Parameters: 

-0:?     Sequence

-0:61      'id' (temp int)

-0:63      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:64      'gl_Color' (in 4-component vector of float Color)

-0:65      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:65        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:65        Constant:

-0:65          0 (const int)

-0:66      far: direct index for structure (global float)

-0:66        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})

-0:66        Constant:

-0:66          1 (const int)

-0:67      'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)

-0:68      'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:69      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)

-0:?   Linker Objects

-0:?     'c' (uniform int)

-0:?     'us2D' (uniform usampler2D)

-0:?     'x' (in 2-component vector of int)

-0:?     'v2a' (in 2-component vector of float)

-0:?     'c1D' (in float)

-0:?     'c2D' (in 2-component vector of float)

-0:?     'c3D' (in 3-component vector of float)

-0:?     'c4D' (smooth temp 4-component vector of float)

-0:?     'v4' (uniform 4-component vector of float)

-0:?     'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance)

-0:?     'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)

-0:?     'abc' (global int)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-

-

-Linked vertex stage:

-

-ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)

-

-Shader version: 130

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp float)

-0:17          'f' (temp float)

-0:17          Constant:

-0:17            3.000000

-0:18      switch

-0:18      condition

-0:18        'c' (uniform int)

-0:18      body

-0:18        Sequence

-0:19          case:  with expression

-0:19            Constant:

-0:19              1 (const int)

-0:?           Sequence

-0:20            move second child to first child (temp float)

-0:20              'f' (temp float)

-0:20              sine (global float)

-0:20                'f' (temp float)

-0:21            Branch: Break

-0:22          case:  with expression

-0:22            Constant:

-0:22              2 (const int)

-0:?           Sequence

-0:23            move second child to first child (temp float)

-0:23              'f' (temp float)

-0:23              component-wise multiply (temp float)

-0:23                'f' (temp float)

-0:23                'f' (temp float)

-0:24          default: 

-0:?           Sequence

-0:25            move second child to first child (temp float)

-0:25              'f' (temp float)

-0:25              Constant:

-0:25                3.000000

-0:29      move second child to first child (temp uint)

-0:29        'i' (temp uint)

-0:29        direct index (temp uint)

-0:29          texture (global 4-component vector of uint)

-0:29            'us2D' (uniform usampler2D)

-0:29            Convert int to float (temp 2-component vector of float)

-0:29              'x' (in 2-component vector of int)

-0:29          Constant:

-0:29            3 (const int)

-0:30      inclusive-or (temp uint)

-0:30        left-shift (temp uint)

-0:30          'i' (temp uint)

-0:30          Constant:

-0:30            3 (const uint)

-0:30        Constant:

-0:30          69 (const uint)

-0:33      Sequence

-0:33        move second child to first child (temp 3-component vector of float)

-0:33          'v11' (temp 3-component vector of float)

-0:33          modf (global 3-component vector of float)

-0:33            'modfIn' (temp 3-component vector of float)

-0:33            'modfOut' (temp 3-component vector of float)

-0:34      Sequence

-0:34        move second child to first child (temp float)

-0:34          't' (temp float)

-0:34          trunc (global float)

-0:34            'f' (temp float)

-0:35      Sequence

-0:35        move second child to first child (temp 2-component vector of float)

-0:35          'v12' (temp 2-component vector of float)

-0:35          round (global 2-component vector of float)

-0:35            'v2a' (in 2-component vector of float)

-0:36      Sequence

-0:36        move second child to first child (temp 2-component vector of float)

-0:36          'v13' (temp 2-component vector of float)

-0:36          roundEven (global 2-component vector of float)

-0:36            'v2a' (in 2-component vector of float)

-0:37      Sequence

-0:37        move second child to first child (temp 2-component vector of bool)

-0:37          'b10' (temp 2-component vector of bool)

-0:37          isnan (global 2-component vector of bool)

-0:37            'v2a' (in 2-component vector of float)

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of bool)

-0:38          'b11' (temp 4-component vector of bool)

-0:38          isinf (global 4-component vector of bool)

-0:38            'v4' (uniform 4-component vector of float)

-0:40      add (temp 2-component vector of float)

-0:40        hyp. sine (global float)

-0:40          'c1D' (in float)

-0:41        vector-scale (temp 2-component vector of float)

-0:41          hyp. cosine (global float)

-0:41            'c1D' (in float)

-0:41          hyp. tangent (global 2-component vector of float)

-0:41            'c2D' (in 2-component vector of float)

-0:42      add (temp 4-component vector of float)

-0:42        arc hyp. sine (global 4-component vector of float)

-0:42          'c4D' (smooth temp 4-component vector of float)

-0:42        arc hyp. cosine (global 4-component vector of float)

-0:42          'c4D' (smooth temp 4-component vector of float)

-0:43      arc hyp. tangent (global 3-component vector of float)

-0:43        'c3D' (in 3-component vector of float)

-0:45      Sequence

-0:45        move second child to first child (temp int)

-0:45          'id' (temp int)

-0:45          'gl_VertexID' (gl_VertexId int VertexId)

-0:46      move second child to first child (temp float)

-0:46        direct index (smooth temp float ClipDistance)

-0:46          'gl_ClipDistance' (smooth out 2-element array of float ClipDistance)

-0:46          Constant:

-0:46            1 (const int)

-0:46        Constant:

-0:46          0.300000

-0:57  Function Definition: foo88( (global void)

-0:57    Function Parameters: 

-0:?     Sequence

-0:61      'id' (temp int)

-0:63      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:64      'gl_Color' (in 4-component vector of float Color)

-0:65      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:65        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:65        Constant:

-0:65          0 (const int)

-0:66      far: direct index for structure (global float)

-0:66        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})

-0:66        Constant:

-0:66          1 (const int)

-0:67      'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)

-0:68      'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:69      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)

-0:?   Linker Objects

-0:?     'c' (uniform int)

-0:?     'us2D' (uniform usampler2D)

-0:?     'x' (in 2-component vector of int)

-0:?     'v2a' (in 2-component vector of float)

-0:?     'c1D' (in float)

-0:?     'c2D' (in 2-component vector of float)

-0:?     'c3D' (in 3-component vector of float)

-0:?     'c4D' (smooth temp 4-component vector of float)

-0:?     'v4' (uniform 4-component vector of float)

-0:?     'gl_ClipDistance' (smooth out 2-element array of float ClipDistance)

-0:?     'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)

-0:?     'abc' (global int)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-

+130.vert
+ERROR: 0:59: 'gl_InstanceID' : undeclared identifier 
+ERROR: 0:59: '=' :  cannot convert from 'temp float' to 'temp int'
+ERROR: 0:61: 'texelFetch' : no matching overloaded function found 
+ERROR: 0:61: 'assign' :  cannot convert from 'const float' to 'temp int'
+ERROR: 0:75: '##' : token pasting not implemented (internal error) 
+ERROR: 0:75: '' :  syntax error
+ERROR: 6 compilation errors.  No code generated.
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp float)
+0:17          'f' (temp float)
+0:17          Constant:
+0:17            3.000000
+0:18      switch
+0:18      condition
+0:18        'c' (uniform int)
+0:18      body
+0:18        Sequence
+0:19          case:  with expression
+0:19            Constant:
+0:19              1 (const int)
+0:?           Sequence
+0:20            move second child to first child (temp float)
+0:20              'f' (temp float)
+0:20              sine (global float)
+0:20                'f' (temp float)
+0:21            Branch: Break
+0:22          case:  with expression
+0:22            Constant:
+0:22              2 (const int)
+0:?           Sequence
+0:23            move second child to first child (temp float)
+0:23              'f' (temp float)
+0:23              component-wise multiply (temp float)
+0:23                'f' (temp float)
+0:23                'f' (temp float)
+0:24          default: 
+0:?           Sequence
+0:25            move second child to first child (temp float)
+0:25              'f' (temp float)
+0:25              Constant:
+0:25                3.000000
+0:29      move second child to first child (temp uint)
+0:29        'i' (temp uint)
+0:29        direct index (temp uint)
+0:29          texture (global 4-component vector of uint)
+0:29            'us2D' (uniform usampler2D)
+0:29            Convert int to float (temp 2-component vector of float)
+0:29              'x' (in 2-component vector of int)
+0:29          Constant:
+0:29            3 (const int)
+0:30      inclusive-or (temp uint)
+0:30        left-shift (temp uint)
+0:30          'i' (temp uint)
+0:30          Constant:
+0:30            3 (const uint)
+0:30        Constant:
+0:30          69 (const uint)
+0:33      Sequence
+0:33        move second child to first child (temp 3-component vector of float)
+0:33          'v11' (temp 3-component vector of float)
+0:33          modf (global 3-component vector of float)
+0:33            'modfIn' (temp 3-component vector of float)
+0:33            'modfOut' (temp 3-component vector of float)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          't' (temp float)
+0:34          trunc (global float)
+0:34            'f' (temp float)
+0:35      Sequence
+0:35        move second child to first child (temp 2-component vector of float)
+0:35          'v12' (temp 2-component vector of float)
+0:35          round (global 2-component vector of float)
+0:35            'v2a' (in 2-component vector of float)
+0:36      Sequence
+0:36        move second child to first child (temp 2-component vector of float)
+0:36          'v13' (temp 2-component vector of float)
+0:36          roundEven (global 2-component vector of float)
+0:36            'v2a' (in 2-component vector of float)
+0:37      Sequence
+0:37        move second child to first child (temp 2-component vector of bool)
+0:37          'b10' (temp 2-component vector of bool)
+0:37          isnan (global 2-component vector of bool)
+0:37            'v2a' (in 2-component vector of float)
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of bool)
+0:38          'b11' (temp 4-component vector of bool)
+0:38          isinf (global 4-component vector of bool)
+0:38            'v4' (uniform 4-component vector of float)
+0:40      add (temp 2-component vector of float)
+0:40        hyp. sine (global float)
+0:40          'c1D' (in float)
+0:41        vector-scale (temp 2-component vector of float)
+0:41          hyp. cosine (global float)
+0:41            'c1D' (in float)
+0:41          hyp. tangent (global 2-component vector of float)
+0:41            'c2D' (in 2-component vector of float)
+0:42      add (temp 4-component vector of float)
+0:42        arc hyp. sine (global 4-component vector of float)
+0:42          'c4D' (smooth temp 4-component vector of float)
+0:42        arc hyp. cosine (global 4-component vector of float)
+0:42          'c4D' (smooth temp 4-component vector of float)
+0:43      arc hyp. tangent (global 3-component vector of float)
+0:43        'c3D' (in 3-component vector of float)
+0:45      Sequence
+0:45        move second child to first child (temp int)
+0:45          'id' (temp int)
+0:45          'gl_VertexID' (gl_VertexId int VertexId)
+0:46      move second child to first child (temp float)
+0:46        direct index (smooth temp float ClipDistance)
+0:46          'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance)
+0:46          Constant:
+0:46            1 (const int)
+0:46        Constant:
+0:46          0.300000
+0:57  Function Definition: foo88( (global void)
+0:57    Function Parameters: 
+0:?     Sequence
+0:61      'id' (temp int)
+0:63      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:64      'gl_Color' (in 4-component vector of float Color)
+0:65      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65        Constant:
+0:65          0 (const int)
+0:66      far: direct index for structure (global float)
+0:66        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:66        Constant:
+0:66          1 (const int)
+0:67      'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:68      'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:69      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:?   Linker Objects
+0:?     'c' (uniform int)
+0:?     'us2D' (uniform usampler2D)
+0:?     'x' (in 2-component vector of int)
+0:?     'v2a' (in 2-component vector of float)
+0:?     'c1D' (in float)
+0:?     'c2D' (in 2-component vector of float)
+0:?     'c3D' (in 3-component vector of float)
+0:?     'c4D' (smooth temp 4-component vector of float)
+0:?     'v4' (uniform 4-component vector of float)
+0:?     'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance)
+0:?     'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:?     'abc' (global int)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp float)
+0:17          'f' (temp float)
+0:17          Constant:
+0:17            3.000000
+0:18      switch
+0:18      condition
+0:18        'c' (uniform int)
+0:18      body
+0:18        Sequence
+0:19          case:  with expression
+0:19            Constant:
+0:19              1 (const int)
+0:?           Sequence
+0:20            move second child to first child (temp float)
+0:20              'f' (temp float)
+0:20              sine (global float)
+0:20                'f' (temp float)
+0:21            Branch: Break
+0:22          case:  with expression
+0:22            Constant:
+0:22              2 (const int)
+0:?           Sequence
+0:23            move second child to first child (temp float)
+0:23              'f' (temp float)
+0:23              component-wise multiply (temp float)
+0:23                'f' (temp float)
+0:23                'f' (temp float)
+0:24          default: 
+0:?           Sequence
+0:25            move second child to first child (temp float)
+0:25              'f' (temp float)
+0:25              Constant:
+0:25                3.000000
+0:29      move second child to first child (temp uint)
+0:29        'i' (temp uint)
+0:29        direct index (temp uint)
+0:29          texture (global 4-component vector of uint)
+0:29            'us2D' (uniform usampler2D)
+0:29            Convert int to float (temp 2-component vector of float)
+0:29              'x' (in 2-component vector of int)
+0:29          Constant:
+0:29            3 (const int)
+0:30      inclusive-or (temp uint)
+0:30        left-shift (temp uint)
+0:30          'i' (temp uint)
+0:30          Constant:
+0:30            3 (const uint)
+0:30        Constant:
+0:30          69 (const uint)
+0:33      Sequence
+0:33        move second child to first child (temp 3-component vector of float)
+0:33          'v11' (temp 3-component vector of float)
+0:33          modf (global 3-component vector of float)
+0:33            'modfIn' (temp 3-component vector of float)
+0:33            'modfOut' (temp 3-component vector of float)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          't' (temp float)
+0:34          trunc (global float)
+0:34            'f' (temp float)
+0:35      Sequence
+0:35        move second child to first child (temp 2-component vector of float)
+0:35          'v12' (temp 2-component vector of float)
+0:35          round (global 2-component vector of float)
+0:35            'v2a' (in 2-component vector of float)
+0:36      Sequence
+0:36        move second child to first child (temp 2-component vector of float)
+0:36          'v13' (temp 2-component vector of float)
+0:36          roundEven (global 2-component vector of float)
+0:36            'v2a' (in 2-component vector of float)
+0:37      Sequence
+0:37        move second child to first child (temp 2-component vector of bool)
+0:37          'b10' (temp 2-component vector of bool)
+0:37          isnan (global 2-component vector of bool)
+0:37            'v2a' (in 2-component vector of float)
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of bool)
+0:38          'b11' (temp 4-component vector of bool)
+0:38          isinf (global 4-component vector of bool)
+0:38            'v4' (uniform 4-component vector of float)
+0:40      add (temp 2-component vector of float)
+0:40        hyp. sine (global float)
+0:40          'c1D' (in float)
+0:41        vector-scale (temp 2-component vector of float)
+0:41          hyp. cosine (global float)
+0:41            'c1D' (in float)
+0:41          hyp. tangent (global 2-component vector of float)
+0:41            'c2D' (in 2-component vector of float)
+0:42      add (temp 4-component vector of float)
+0:42        arc hyp. sine (global 4-component vector of float)
+0:42          'c4D' (smooth temp 4-component vector of float)
+0:42        arc hyp. cosine (global 4-component vector of float)
+0:42          'c4D' (smooth temp 4-component vector of float)
+0:43      arc hyp. tangent (global 3-component vector of float)
+0:43        'c3D' (in 3-component vector of float)
+0:45      Sequence
+0:45        move second child to first child (temp int)
+0:45          'id' (temp int)
+0:45          'gl_VertexID' (gl_VertexId int VertexId)
+0:46      move second child to first child (temp float)
+0:46        direct index (smooth temp float ClipDistance)
+0:46          'gl_ClipDistance' (smooth out 2-element array of float ClipDistance)
+0:46          Constant:
+0:46            1 (const int)
+0:46        Constant:
+0:46          0.300000
+0:57  Function Definition: foo88( (global void)
+0:57    Function Parameters: 
+0:?     Sequence
+0:61      'id' (temp int)
+0:63      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:64      'gl_Color' (in 4-component vector of float Color)
+0:65      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:65        Constant:
+0:65          0 (const int)
+0:66      far: direct index for structure (global float)
+0:66        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:66        Constant:
+0:66          1 (const int)
+0:67      'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:68      'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:69      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:?   Linker Objects
+0:?     'c' (uniform int)
+0:?     'us2D' (uniform usampler2D)
+0:?     'x' (in 2-component vector of int)
+0:?     'v2a' (in 2-component vector of float)
+0:?     'c1D' (in float)
+0:?     'c2D' (in 2-component vector of float)
+0:?     'c3D' (in 3-component vector of float)
+0:?     'c4D' (smooth temp 4-component vector of float)
+0:?     'v4' (uniform 4-component vector of float)
+0:?     'gl_ClipDistance' (smooth out 2-element array of float ClipDistance)
+0:?     'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:?     'abc' (global int)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+
diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out
index 8af2967..fbeee83 100644
--- a/Test/baseResults/140.frag.out
+++ b/Test/baseResults/140.frag.out
@@ -1,223 +1,223 @@
-140.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-ERROR: 0:17: '#error' : GL_ES is not set  

-ERROR: 0:20: 'fragment-shader struct input' : not supported for this version or the enabled extensions 

-ERROR: 0:24: 'location' : not supported for this version or the enabled extensions 

-ERROR: 0:24: 'location qualifier on input' : not supported for this version or the enabled extensions 

-ERROR: 0:26: 'location' : not supported for this version or the enabled extensions 

-ERROR: 0:26: 'location qualifier on output' : not supported for this version or the enabled extensions 

-ERROR: 0:40: 'assign' :  l-value required "v" (can't modify shader input)

-ERROR: 0:40: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. 

-ERROR: 8 compilation errors.  No code generated.

-

-

-Shader version: 140

-Requested GL_ARB_explicit_attrib_location

-Requested GL_ARB_separate_shader_objects

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'clip' (temp float)

-0:12          direct index (smooth temp float ClipDistance)

-0:12            'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)

-0:12            Constant:

-0:12              2 (const int)

-0:22  Sequence

-0:22    move second child to first child (temp float)

-0:22      'patch' (global float)

-0:22      Constant:

-0:22        3.100000

-0:38  Function Definition: foo( (global void)

-0:38    Function Parameters: 

-0:40    Sequence

-0:40      Sequence

-0:40        move second child to first child (temp 2-component vector of float)

-0:40          'r1' (temp 2-component vector of float)

-0:40          modf (global 2-component vector of float)

-0:40            vector swizzle (temp 2-component vector of float)

-0:40              'v' (smooth in 4-component vector of float)

-0:40              Sequence

-0:40                Constant:

-0:40                  0 (const int)

-0:40                Constant:

-0:40                  1 (const int)

-0:40            vector swizzle (temp 2-component vector of float)

-0:40              'v' (smooth in 4-component vector of float)

-0:40              Sequence

-0:40                Constant:

-0:40                  2 (const int)

-0:40                Constant:

-0:40                  3 (const int)

-0:41      Sequence

-0:41        move second child to first child (temp 2-component vector of float)

-0:41          'r2' (temp 2-component vector of float)

-0:41          modf (global 2-component vector of float)

-0:41            vector swizzle (temp 2-component vector of float)

-0:41              'o' (out 4-component vector of float)

-0:41              Sequence

-0:41                Constant:

-0:41                  0 (const int)

-0:41                Constant:

-0:41                  1 (const int)

-0:41            vector swizzle (temp 2-component vector of float)

-0:41              'o' (out 4-component vector of float)

-0:41              Sequence

-0:41                Constant:

-0:41                  2 (const int)

-0:41                Constant:

-0:41                  3 (const int)

-0:42      move second child to first child (temp float)

-0:42        direct index (temp float)

-0:42          'o' (out 4-component vector of float)

-0:42          Constant:

-0:42            2 (const int)

-0:42        Function Call: fooi( (global float)

-0:47  Sequence

-0:47    move second child to first child (temp float)

-0:47      'i1' (global float)

-0:47      Test condition and select (temp float)

-0:47        Condition

-0:47        'gl_FrontFacing' (gl_FrontFacing bool Face)

-0:47        true case

-0:47        Constant:

-0:47          -2.000000

-0:47        false case

-0:47        Constant:

-0:47          2.000000

-0:48  Sequence

-0:48    move second child to first child (temp float)

-0:48      'i2' (global float)

-0:48      Constant:

-0:48        102.000000

-0:50  Function Definition: fooi( (global float)

-0:50    Function Parameters: 

-0:52    Sequence

-0:52      Branch: Return with expression

-0:52        add (temp float)

-0:52          'i1' (global float)

-0:52          'i2' (global float)

-0:?   Linker Objects

-0:?     'v' (smooth in 4-component vector of float)

-0:?     'i' (smooth in 4-component vector of float)

-0:?     'o' (out 4-component vector of float)

-0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)

-0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)

-0:?     's' (smooth in structure{global float f})

-0:?     'patch' (global float)

-0:?     'vl' (layout(location=3 ) smooth in 4-component vector of float)

-0:?     'factorBad' (layout(location=3 ) out 4-component vector of float)

-0:?     'factor' (layout(location=5 ) out 4-component vector of float)

-0:?     'vl2' (layout(location=4 ) smooth in 4-component vector of float)

-0:?     'i1' (global float)

-0:?     'i2' (global float)

-

-

-Linked fragment stage:

-

-

-Shader version: 140

-Requested GL_ARB_explicit_attrib_location

-Requested GL_ARB_separate_shader_objects

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'clip' (temp float)

-0:12          direct index (smooth temp float ClipDistance)

-0:12            'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)

-0:12            Constant:

-0:12              2 (const int)

-0:22  Sequence

-0:22    move second child to first child (temp float)

-0:22      'patch' (global float)

-0:22      Constant:

-0:22        3.100000

-0:38  Function Definition: foo( (global void)

-0:38    Function Parameters: 

-0:40    Sequence

-0:40      Sequence

-0:40        move second child to first child (temp 2-component vector of float)

-0:40          'r1' (temp 2-component vector of float)

-0:40          modf (global 2-component vector of float)

-0:40            vector swizzle (temp 2-component vector of float)

-0:40              'v' (smooth in 4-component vector of float)

-0:40              Sequence

-0:40                Constant:

-0:40                  0 (const int)

-0:40                Constant:

-0:40                  1 (const int)

-0:40            vector swizzle (temp 2-component vector of float)

-0:40              'v' (smooth in 4-component vector of float)

-0:40              Sequence

-0:40                Constant:

-0:40                  2 (const int)

-0:40                Constant:

-0:40                  3 (const int)

-0:41      Sequence

-0:41        move second child to first child (temp 2-component vector of float)

-0:41          'r2' (temp 2-component vector of float)

-0:41          modf (global 2-component vector of float)

-0:41            vector swizzle (temp 2-component vector of float)

-0:41              'o' (out 4-component vector of float)

-0:41              Sequence

-0:41                Constant:

-0:41                  0 (const int)

-0:41                Constant:

-0:41                  1 (const int)

-0:41            vector swizzle (temp 2-component vector of float)

-0:41              'o' (out 4-component vector of float)

-0:41              Sequence

-0:41                Constant:

-0:41                  2 (const int)

-0:41                Constant:

-0:41                  3 (const int)

-0:42      move second child to first child (temp float)

-0:42        direct index (temp float)

-0:42          'o' (out 4-component vector of float)

-0:42          Constant:

-0:42            2 (const int)

-0:42        Function Call: fooi( (global float)

-0:47  Sequence

-0:47    move second child to first child (temp float)

-0:47      'i1' (global float)

-0:47      Test condition and select (temp float)

-0:47        Condition

-0:47        'gl_FrontFacing' (gl_FrontFacing bool Face)

-0:47        true case

-0:47        Constant:

-0:47          -2.000000

-0:47        false case

-0:47        Constant:

-0:47          2.000000

-0:48  Sequence

-0:48    move second child to first child (temp float)

-0:48      'i2' (global float)

-0:48      Constant:

-0:48        102.000000

-0:50  Function Definition: fooi( (global float)

-0:50    Function Parameters: 

-0:52    Sequence

-0:52      Branch: Return with expression

-0:52        add (temp float)

-0:52          'i1' (global float)

-0:52          'i2' (global float)

-0:?   Linker Objects

-0:?     'v' (smooth in 4-component vector of float)

-0:?     'i' (smooth in 4-component vector of float)

-0:?     'o' (out 4-component vector of float)

-0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)

-0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)

-0:?     's' (smooth in structure{global float f})

-0:?     'patch' (global float)

-0:?     'vl' (layout(location=3 ) smooth in 4-component vector of float)

-0:?     'factorBad' (layout(location=3 ) out 4-component vector of float)

-0:?     'factor' (layout(location=5 ) out 4-component vector of float)

-0:?     'vl2' (layout(location=4 ) smooth in 4-component vector of float)

-0:?     'i1' (global float)

-0:?     'i2' (global float)

-

+140.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+ERROR: 0:17: '#error' : GL_ES is not set  
+ERROR: 0:20: 'fragment-shader struct input' : not supported for this version or the enabled extensions 
+ERROR: 0:24: 'location' : not supported for this version or the enabled extensions 
+ERROR: 0:24: 'location qualifier on input' : not supported for this version or the enabled extensions 
+ERROR: 0:26: 'location' : not supported for this version or the enabled extensions 
+ERROR: 0:26: 'location qualifier on output' : not supported for this version or the enabled extensions 
+ERROR: 0:40: 'assign' :  l-value required "v" (can't modify shader input)
+ERROR: 0:40: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. 
+ERROR: 8 compilation errors.  No code generated.
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'clip' (temp float)
+0:12          direct index (smooth temp float ClipDistance)
+0:12            'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:12            Constant:
+0:12              2 (const int)
+0:22  Sequence
+0:22    move second child to first child (temp float)
+0:22      'patch' (global float)
+0:22      Constant:
+0:22        3.100000
+0:38  Function Definition: foo( (global void)
+0:38    Function Parameters: 
+0:40    Sequence
+0:40      Sequence
+0:40        move second child to first child (temp 2-component vector of float)
+0:40          'r1' (temp 2-component vector of float)
+0:40          modf (global 2-component vector of float)
+0:40            vector swizzle (temp 2-component vector of float)
+0:40              'v' (smooth in 4-component vector of float)
+0:40              Sequence
+0:40                Constant:
+0:40                  0 (const int)
+0:40                Constant:
+0:40                  1 (const int)
+0:40            vector swizzle (temp 2-component vector of float)
+0:40              'v' (smooth in 4-component vector of float)
+0:40              Sequence
+0:40                Constant:
+0:40                  2 (const int)
+0:40                Constant:
+0:40                  3 (const int)
+0:41      Sequence
+0:41        move second child to first child (temp 2-component vector of float)
+0:41          'r2' (temp 2-component vector of float)
+0:41          modf (global 2-component vector of float)
+0:41            vector swizzle (temp 2-component vector of float)
+0:41              'o' (out 4-component vector of float)
+0:41              Sequence
+0:41                Constant:
+0:41                  0 (const int)
+0:41                Constant:
+0:41                  1 (const int)
+0:41            vector swizzle (temp 2-component vector of float)
+0:41              'o' (out 4-component vector of float)
+0:41              Sequence
+0:41                Constant:
+0:41                  2 (const int)
+0:41                Constant:
+0:41                  3 (const int)
+0:42      move second child to first child (temp float)
+0:42        direct index (temp float)
+0:42          'o' (out 4-component vector of float)
+0:42          Constant:
+0:42            2 (const int)
+0:42        Function Call: fooi( (global float)
+0:47  Sequence
+0:47    move second child to first child (temp float)
+0:47      'i1' (global float)
+0:47      Test condition and select (temp float)
+0:47        Condition
+0:47        'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:47        true case
+0:47        Constant:
+0:47          -2.000000
+0:47        false case
+0:47        Constant:
+0:47          2.000000
+0:48  Sequence
+0:48    move second child to first child (temp float)
+0:48      'i2' (global float)
+0:48      Constant:
+0:48        102.000000
+0:50  Function Definition: fooi( (global float)
+0:50    Function Parameters: 
+0:52    Sequence
+0:52      Branch: Return with expression
+0:52        add (temp float)
+0:52          'i1' (global float)
+0:52          'i2' (global float)
+0:?   Linker Objects
+0:?     'v' (smooth in 4-component vector of float)
+0:?     'i' (smooth in 4-component vector of float)
+0:?     'o' (out 4-component vector of float)
+0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:?     's' (smooth in structure{global float f})
+0:?     'patch' (global float)
+0:?     'vl' (layout(location=3 ) smooth in 4-component vector of float)
+0:?     'factorBad' (layout(location=3 ) out 4-component vector of float)
+0:?     'factor' (layout(location=5 ) out 4-component vector of float)
+0:?     'vl2' (layout(location=4 ) smooth in 4-component vector of float)
+0:?     'i1' (global float)
+0:?     'i2' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'clip' (temp float)
+0:12          direct index (smooth temp float ClipDistance)
+0:12            'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:12            Constant:
+0:12              2 (const int)
+0:22  Sequence
+0:22    move second child to first child (temp float)
+0:22      'patch' (global float)
+0:22      Constant:
+0:22        3.100000
+0:38  Function Definition: foo( (global void)
+0:38    Function Parameters: 
+0:40    Sequence
+0:40      Sequence
+0:40        move second child to first child (temp 2-component vector of float)
+0:40          'r1' (temp 2-component vector of float)
+0:40          modf (global 2-component vector of float)
+0:40            vector swizzle (temp 2-component vector of float)
+0:40              'v' (smooth in 4-component vector of float)
+0:40              Sequence
+0:40                Constant:
+0:40                  0 (const int)
+0:40                Constant:
+0:40                  1 (const int)
+0:40            vector swizzle (temp 2-component vector of float)
+0:40              'v' (smooth in 4-component vector of float)
+0:40              Sequence
+0:40                Constant:
+0:40                  2 (const int)
+0:40                Constant:
+0:40                  3 (const int)
+0:41      Sequence
+0:41        move second child to first child (temp 2-component vector of float)
+0:41          'r2' (temp 2-component vector of float)
+0:41          modf (global 2-component vector of float)
+0:41            vector swizzle (temp 2-component vector of float)
+0:41              'o' (out 4-component vector of float)
+0:41              Sequence
+0:41                Constant:
+0:41                  0 (const int)
+0:41                Constant:
+0:41                  1 (const int)
+0:41            vector swizzle (temp 2-component vector of float)
+0:41              'o' (out 4-component vector of float)
+0:41              Sequence
+0:41                Constant:
+0:41                  2 (const int)
+0:41                Constant:
+0:41                  3 (const int)
+0:42      move second child to first child (temp float)
+0:42        direct index (temp float)
+0:42          'o' (out 4-component vector of float)
+0:42          Constant:
+0:42            2 (const int)
+0:42        Function Call: fooi( (global float)
+0:47  Sequence
+0:47    move second child to first child (temp float)
+0:47      'i1' (global float)
+0:47      Test condition and select (temp float)
+0:47        Condition
+0:47        'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:47        true case
+0:47        Constant:
+0:47          -2.000000
+0:47        false case
+0:47        Constant:
+0:47          2.000000
+0:48  Sequence
+0:48    move second child to first child (temp float)
+0:48      'i2' (global float)
+0:48      Constant:
+0:48        102.000000
+0:50  Function Definition: fooi( (global float)
+0:50    Function Parameters: 
+0:52    Sequence
+0:52      Branch: Return with expression
+0:52        add (temp float)
+0:52          'i1' (global float)
+0:52          'i2' (global float)
+0:?   Linker Objects
+0:?     'v' (smooth in 4-component vector of float)
+0:?     'i' (smooth in 4-component vector of float)
+0:?     'o' (out 4-component vector of float)
+0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:?     'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
+0:?     's' (smooth in structure{global float f})
+0:?     'patch' (global float)
+0:?     'vl' (layout(location=3 ) smooth in 4-component vector of float)
+0:?     'factorBad' (layout(location=3 ) out 4-component vector of float)
+0:?     'factor' (layout(location=5 ) out 4-component vector of float)
+0:?     'vl2' (layout(location=4 ) smooth in 4-component vector of float)
+0:?     'i1' (global float)
+0:?     'i2' (global float)
+
diff --git a/Test/baseResults/140.vert.out b/Test/baseResults/140.vert.out
index 3493c0e..634458c 100644
--- a/Test/baseResults/140.vert.out
+++ b/Test/baseResults/140.vert.out
@@ -1,270 +1,270 @@
-140.vert

-ERROR: 0:23: 'gl_Position' : identifiers starting with "gl_" are reserved 

-ERROR: 0:25: 'location' : not supported for this version or the enabled extensions 

-ERROR: 0:25: 'location qualifier on input' : not supported for this version or the enabled extensions 

-ERROR: 0:34: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Position

-ERROR: 0:34: 'redeclaration' : cannot change interpolation qualification of gl_Position

-ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Position

-ERROR: 0:38: 'gl_ClipVertex' : cannot redeclare after use 

-ERROR: 0:39: 'gl_FogFragCoord' : cannot redeclare after use 

-ERROR: 0:51: 'texelFetch' : no matching overloaded function found 

-ERROR: 0:53: 'texture' : no matching overloaded function found 

-ERROR: 10 compilation errors.  No code generated.

-

-

-Shader version: 140

-Requested GL_ARB_explicit_attrib_location

-Requested GL_ARB_separate_shader_objects

-ERROR: node is still EOpNull!

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Sequence

-0:11        move second child to first child (temp int)

-0:11          'id' (temp int)

-0:11          'gl_InstanceID' (gl_InstanceId int InstanceId)

-0:12      add second child into first child (temp int)

-0:12        'id' (temp int)

-0:12        anonMem: direct index for structure (layout(column_major std140 offset=0 ) uniform int)

-0:12          'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})

-0:12          Constant:

-0:12            0 (const uint)

-0:13      add second child into first child (temp int)

-0:13        'id' (temp int)

-0:13        direct index (temp int)

-0:13          textureFetch (global 4-component vector of int)

-0:13            'sbuf' (uniform isamplerBuffer)

-0:13            Constant:

-0:13              8 (const int)

-0:13          Constant:

-0:13            3 (const int)

-0:14      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:15      'gl_Color' (in 4-component vector of float Color)

-0:16      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:16        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:16        Constant:

-0:16          0 (const int)

-0:17      far: direct index for structure (global float)

-0:17        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})

-0:17        Constant:

-0:17          1 (const int)

-0:18      'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)

-0:19      'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:20      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)

-0:48  Function Definition: foo( (global void)

-0:48    Function Parameters: 

-0:50    Sequence

-0:50      Sequence

-0:50        move second child to first child (temp 4-component vector of float)

-0:50          'v' (temp 4-component vector of float)

-0:50          textureFetch (global 4-component vector of float)

-0:50            's2dr' (uniform sampler2DRect)

-0:50            'itloc2' (in 2-component vector of int)

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'v' (temp 4-component vector of float)

-0:51        Constant:

-0:51          0.000000

-0:52      add second child into first child (temp 4-component vector of float)

-0:52        'v' (temp 4-component vector of float)

-0:52        texture (global 4-component vector of float)

-0:52          's2dr' (uniform sampler2DRect)

-0:52          'tloc2' (in 2-component vector of float)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'v' (temp 4-component vector of float)

-0:53        Constant:

-0:53          0.000000

-0:54      add second child into first child (temp 4-component vector of float)

-0:54        'v' (temp 4-component vector of float)

-0:54        texture (global float)

-0:54          's2drs' (uniform sampler2DRectShadow)

-0:54          'tloc3' (in 3-component vector of float)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'v' (temp 4-component vector of float)

-0:55        textureProj (global 4-component vector of float)

-0:55          's2dr' (uniform sampler2DRect)

-0:55          'tloc3' (in 3-component vector of float)

-0:56      add second child into first child (temp 4-component vector of float)

-0:56        'v' (temp 4-component vector of float)

-0:56        textureProj (global 4-component vector of float)

-0:56          's2dr' (uniform sampler2DRect)

-0:56          'tloc4' (in 4-component vector of float)

-0:57      add second child into first child (temp 4-component vector of float)

-0:57        'v' (temp 4-component vector of float)

-0:57        textureProjGradOffset (global 4-component vector of float)

-0:57          's2dr' (uniform sampler2DRect)

-0:57          'tloc4' (in 4-component vector of float)

-0:57          Constant:

-0:57            0.000000

-0:57            0.000000

-0:57          Constant:

-0:57            0.000000

-0:57            0.000000

-0:57          Constant:

-0:57            1 (const int)

-0:57            2 (const int)

-0:58      add second child into first child (temp 4-component vector of float)

-0:58        'v' (temp 4-component vector of float)

-0:58        textureProjGradOffset (global float)

-0:58          's2drs' (uniform sampler2DRectShadow)

-0:58          'tloc4' (in 4-component vector of float)

-0:58          Constant:

-0:58            0.000000

-0:58            0.000000

-0:58          Constant:

-0:58            0.000000

-0:58            0.000000

-0:58          Constant:

-0:58            1 (const int)

-0:58            2 (const int)

-0:?   Linker Objects

-0:?     'sbuf' (uniform isamplerBuffer)

-0:?     'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})

-0:?     'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)

-0:?     'gl_Position' (smooth out 4-component vector of float)

-0:?     'locBad' (layout(location=9 ) in 4-component vector of float)

-0:?     'loc' (layout(location=9 ) in 4-component vector of float)

-0:?     'gl_PointSize' (gl_PointSize float PointSize)

-0:?     'gl_PointSize' (gl_PointSize float PointSize)

-0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:?     's2dr' (uniform sampler2DRect)

-0:?     's2drs' (uniform sampler2DRectShadow)

-0:?     'itloc2' (in 2-component vector of int)

-0:?     'tloc2' (in 2-component vector of float)

-0:?     'tloc3' (in 3-component vector of float)

-0:?     'tloc4' (in 4-component vector of float)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 140

-Requested GL_ARB_explicit_attrib_location

-Requested GL_ARB_separate_shader_objects

-ERROR: node is still EOpNull!

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Sequence

-0:11        move second child to first child (temp int)

-0:11          'id' (temp int)

-0:11          'gl_InstanceID' (gl_InstanceId int InstanceId)

-0:12      add second child into first child (temp int)

-0:12        'id' (temp int)

-0:12        anonMem: direct index for structure (layout(column_major std140 offset=0 ) uniform int)

-0:12          'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})

-0:12          Constant:

-0:12            0 (const uint)

-0:13      add second child into first child (temp int)

-0:13        'id' (temp int)

-0:13        direct index (temp int)

-0:13          textureFetch (global 4-component vector of int)

-0:13            'sbuf' (uniform isamplerBuffer)

-0:13            Constant:

-0:13              8 (const int)

-0:13          Constant:

-0:13            3 (const int)

-0:14      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:15      'gl_Color' (in 4-component vector of float Color)

-0:16      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:16        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})

-0:16        Constant:

-0:16          0 (const int)

-0:17      far: direct index for structure (global float)

-0:17        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})

-0:17        Constant:

-0:17          1 (const int)

-0:18      'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)

-0:19      'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:20      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)

-0:48  Function Definition: foo( (global void)

-0:48    Function Parameters: 

-0:50    Sequence

-0:50      Sequence

-0:50        move second child to first child (temp 4-component vector of float)

-0:50          'v' (temp 4-component vector of float)

-0:50          textureFetch (global 4-component vector of float)

-0:50            's2dr' (uniform sampler2DRect)

-0:50            'itloc2' (in 2-component vector of int)

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'v' (temp 4-component vector of float)

-0:51        Constant:

-0:51          0.000000

-0:52      add second child into first child (temp 4-component vector of float)

-0:52        'v' (temp 4-component vector of float)

-0:52        texture (global 4-component vector of float)

-0:52          's2dr' (uniform sampler2DRect)

-0:52          'tloc2' (in 2-component vector of float)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'v' (temp 4-component vector of float)

-0:53        Constant:

-0:53          0.000000

-0:54      add second child into first child (temp 4-component vector of float)

-0:54        'v' (temp 4-component vector of float)

-0:54        texture (global float)

-0:54          's2drs' (uniform sampler2DRectShadow)

-0:54          'tloc3' (in 3-component vector of float)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'v' (temp 4-component vector of float)

-0:55        textureProj (global 4-component vector of float)

-0:55          's2dr' (uniform sampler2DRect)

-0:55          'tloc3' (in 3-component vector of float)

-0:56      add second child into first child (temp 4-component vector of float)

-0:56        'v' (temp 4-component vector of float)

-0:56        textureProj (global 4-component vector of float)

-0:56          's2dr' (uniform sampler2DRect)

-0:56          'tloc4' (in 4-component vector of float)

-0:57      add second child into first child (temp 4-component vector of float)

-0:57        'v' (temp 4-component vector of float)

-0:57        textureProjGradOffset (global 4-component vector of float)

-0:57          's2dr' (uniform sampler2DRect)

-0:57          'tloc4' (in 4-component vector of float)

-0:57          Constant:

-0:57            0.000000

-0:57            0.000000

-0:57          Constant:

-0:57            0.000000

-0:57            0.000000

-0:57          Constant:

-0:57            1 (const int)

-0:57            2 (const int)

-0:58      add second child into first child (temp 4-component vector of float)

-0:58        'v' (temp 4-component vector of float)

-0:58        textureProjGradOffset (global float)

-0:58          's2drs' (uniform sampler2DRectShadow)

-0:58          'tloc4' (in 4-component vector of float)

-0:58          Constant:

-0:58            0.000000

-0:58            0.000000

-0:58          Constant:

-0:58            0.000000

-0:58            0.000000

-0:58          Constant:

-0:58            1 (const int)

-0:58            2 (const int)

-0:?   Linker Objects

-0:?     'sbuf' (uniform isamplerBuffer)

-0:?     'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})

-0:?     'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)

-0:?     'gl_Position' (smooth out 4-component vector of float)

-0:?     'locBad' (layout(location=9 ) in 4-component vector of float)

-0:?     'loc' (layout(location=9 ) in 4-component vector of float)

-0:?     'gl_PointSize' (gl_PointSize float PointSize)

-0:?     'gl_PointSize' (gl_PointSize float PointSize)

-0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)

-0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)

-0:?     's2dr' (uniform sampler2DRect)

-0:?     's2drs' (uniform sampler2DRectShadow)

-0:?     'itloc2' (in 2-component vector of int)

-0:?     'tloc2' (in 2-component vector of float)

-0:?     'tloc3' (in 3-component vector of float)

-0:?     'tloc4' (in 4-component vector of float)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+140.vert
+ERROR: 0:23: 'gl_Position' : identifiers starting with "gl_" are reserved 
+ERROR: 0:25: 'location' : not supported for this version or the enabled extensions 
+ERROR: 0:25: 'location qualifier on input' : not supported for this version or the enabled extensions 
+ERROR: 0:34: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Position
+ERROR: 0:34: 'redeclaration' : cannot change interpolation qualification of gl_Position
+ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Position
+ERROR: 0:38: 'gl_ClipVertex' : cannot redeclare after use 
+ERROR: 0:39: 'gl_FogFragCoord' : cannot redeclare after use 
+ERROR: 0:51: 'texelFetch' : no matching overloaded function found 
+ERROR: 0:53: 'texture' : no matching overloaded function found 
+ERROR: 10 compilation errors.  No code generated.
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Sequence
+0:11        move second child to first child (temp int)
+0:11          'id' (temp int)
+0:11          'gl_InstanceID' (gl_InstanceId int InstanceId)
+0:12      add second child into first child (temp int)
+0:12        'id' (temp int)
+0:12        anonMem: direct index for structure (layout(column_major std140 offset=0 ) uniform int)
+0:12          'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:12          Constant:
+0:12            0 (const uint)
+0:13      add second child into first child (temp int)
+0:13        'id' (temp int)
+0:13        direct index (temp int)
+0:13          textureFetch (global 4-component vector of int)
+0:13            'sbuf' (uniform isamplerBuffer)
+0:13            Constant:
+0:13              8 (const int)
+0:13          Constant:
+0:13            3 (const int)
+0:14      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:15      'gl_Color' (in 4-component vector of float Color)
+0:16      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16        Constant:
+0:16          0 (const int)
+0:17      far: direct index for structure (global float)
+0:17        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:17        Constant:
+0:17          1 (const int)
+0:18      'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:19      'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:20      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:48  Function Definition: foo( (global void)
+0:48    Function Parameters: 
+0:50    Sequence
+0:50      Sequence
+0:50        move second child to first child (temp 4-component vector of float)
+0:50          'v' (temp 4-component vector of float)
+0:50          textureFetch (global 4-component vector of float)
+0:50            's2dr' (uniform sampler2DRect)
+0:50            'itloc2' (in 2-component vector of int)
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'v' (temp 4-component vector of float)
+0:51        Constant:
+0:51          0.000000
+0:52      add second child into first child (temp 4-component vector of float)
+0:52        'v' (temp 4-component vector of float)
+0:52        texture (global 4-component vector of float)
+0:52          's2dr' (uniform sampler2DRect)
+0:52          'tloc2' (in 2-component vector of float)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'v' (temp 4-component vector of float)
+0:53        Constant:
+0:53          0.000000
+0:54      add second child into first child (temp 4-component vector of float)
+0:54        'v' (temp 4-component vector of float)
+0:54        texture (global float)
+0:54          's2drs' (uniform sampler2DRectShadow)
+0:54          'tloc3' (in 3-component vector of float)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'v' (temp 4-component vector of float)
+0:55        textureProj (global 4-component vector of float)
+0:55          's2dr' (uniform sampler2DRect)
+0:55          'tloc3' (in 3-component vector of float)
+0:56      add second child into first child (temp 4-component vector of float)
+0:56        'v' (temp 4-component vector of float)
+0:56        textureProj (global 4-component vector of float)
+0:56          's2dr' (uniform sampler2DRect)
+0:56          'tloc4' (in 4-component vector of float)
+0:57      add second child into first child (temp 4-component vector of float)
+0:57        'v' (temp 4-component vector of float)
+0:57        textureProjGradOffset (global 4-component vector of float)
+0:57          's2dr' (uniform sampler2DRect)
+0:57          'tloc4' (in 4-component vector of float)
+0:57          Constant:
+0:57            0.000000
+0:57            0.000000
+0:57          Constant:
+0:57            0.000000
+0:57            0.000000
+0:57          Constant:
+0:57            1 (const int)
+0:57            2 (const int)
+0:58      add second child into first child (temp 4-component vector of float)
+0:58        'v' (temp 4-component vector of float)
+0:58        textureProjGradOffset (global float)
+0:58          's2drs' (uniform sampler2DRectShadow)
+0:58          'tloc4' (in 4-component vector of float)
+0:58          Constant:
+0:58            0.000000
+0:58            0.000000
+0:58          Constant:
+0:58            0.000000
+0:58            0.000000
+0:58          Constant:
+0:58            1 (const int)
+0:58            2 (const int)
+0:?   Linker Objects
+0:?     'sbuf' (uniform isamplerBuffer)
+0:?     'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:?     'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord)
+0:?     'gl_Position' (smooth out 4-component vector of float)
+0:?     'locBad' (layout(location=9 ) in 4-component vector of float)
+0:?     'loc' (layout(location=9 ) in 4-component vector of float)
+0:?     'gl_PointSize' (gl_PointSize float PointSize)
+0:?     'gl_PointSize' (gl_PointSize float PointSize)
+0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:?     's2dr' (uniform sampler2DRect)
+0:?     's2drs' (uniform sampler2DRectShadow)
+0:?     'itloc2' (in 2-component vector of int)
+0:?     'tloc2' (in 2-component vector of float)
+0:?     'tloc3' (in 3-component vector of float)
+0:?     'tloc4' (in 4-component vector of float)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 140
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Sequence
+0:11        move second child to first child (temp int)
+0:11          'id' (temp int)
+0:11          'gl_InstanceID' (gl_InstanceId int InstanceId)
+0:12      add second child into first child (temp int)
+0:12        'id' (temp int)
+0:12        anonMem: direct index for structure (layout(column_major std140 offset=0 ) uniform int)
+0:12          'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:12          Constant:
+0:12            0 (const uint)
+0:13      add second child into first child (temp int)
+0:13        'id' (temp int)
+0:13        direct index (temp int)
+0:13          textureFetch (global 4-component vector of int)
+0:13            'sbuf' (uniform isamplerBuffer)
+0:13            Constant:
+0:13              8 (const int)
+0:13          Constant:
+0:13            3 (const int)
+0:14      'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:15      'gl_Color' (in 4-component vector of float Color)
+0:16      direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16        'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation})
+0:16        Constant:
+0:16          0 (const int)
+0:17      far: direct index for structure (global float)
+0:17        'gl_DepthRange' (uniform structure{global float near, global float far, global float diff})
+0:17        Constant:
+0:17          1 (const int)
+0:18      'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:19      'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:20      'gl_FrontColor' (smooth out 4-component vector of float FrontColor)
+0:48  Function Definition: foo( (global void)
+0:48    Function Parameters: 
+0:50    Sequence
+0:50      Sequence
+0:50        move second child to first child (temp 4-component vector of float)
+0:50          'v' (temp 4-component vector of float)
+0:50          textureFetch (global 4-component vector of float)
+0:50            's2dr' (uniform sampler2DRect)
+0:50            'itloc2' (in 2-component vector of int)
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'v' (temp 4-component vector of float)
+0:51        Constant:
+0:51          0.000000
+0:52      add second child into first child (temp 4-component vector of float)
+0:52        'v' (temp 4-component vector of float)
+0:52        texture (global 4-component vector of float)
+0:52          's2dr' (uniform sampler2DRect)
+0:52          'tloc2' (in 2-component vector of float)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'v' (temp 4-component vector of float)
+0:53        Constant:
+0:53          0.000000
+0:54      add second child into first child (temp 4-component vector of float)
+0:54        'v' (temp 4-component vector of float)
+0:54        texture (global float)
+0:54          's2drs' (uniform sampler2DRectShadow)
+0:54          'tloc3' (in 3-component vector of float)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'v' (temp 4-component vector of float)
+0:55        textureProj (global 4-component vector of float)
+0:55          's2dr' (uniform sampler2DRect)
+0:55          'tloc3' (in 3-component vector of float)
+0:56      add second child into first child (temp 4-component vector of float)
+0:56        'v' (temp 4-component vector of float)
+0:56        textureProj (global 4-component vector of float)
+0:56          's2dr' (uniform sampler2DRect)
+0:56          'tloc4' (in 4-component vector of float)
+0:57      add second child into first child (temp 4-component vector of float)
+0:57        'v' (temp 4-component vector of float)
+0:57        textureProjGradOffset (global 4-component vector of float)
+0:57          's2dr' (uniform sampler2DRect)
+0:57          'tloc4' (in 4-component vector of float)
+0:57          Constant:
+0:57            0.000000
+0:57            0.000000
+0:57          Constant:
+0:57            0.000000
+0:57            0.000000
+0:57          Constant:
+0:57            1 (const int)
+0:57            2 (const int)
+0:58      add second child into first child (temp 4-component vector of float)
+0:58        'v' (temp 4-component vector of float)
+0:58        textureProjGradOffset (global float)
+0:58          's2drs' (uniform sampler2DRectShadow)
+0:58          'tloc4' (in 4-component vector of float)
+0:58          Constant:
+0:58            0.000000
+0:58            0.000000
+0:58          Constant:
+0:58            0.000000
+0:58            0.000000
+0:58          Constant:
+0:58            1 (const int)
+0:58            2 (const int)
+0:?   Linker Objects
+0:?     'sbuf' (uniform isamplerBuffer)
+0:?     'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem})
+0:?     'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord)
+0:?     'gl_Position' (smooth out 4-component vector of float)
+0:?     'locBad' (layout(location=9 ) in 4-component vector of float)
+0:?     'loc' (layout(location=9 ) in 4-component vector of float)
+0:?     'gl_PointSize' (gl_PointSize float PointSize)
+0:?     'gl_PointSize' (gl_PointSize float PointSize)
+0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:?     'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
+0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:?     'gl_FogFragCoord' (smooth out float FogFragCoord)
+0:?     's2dr' (uniform sampler2DRect)
+0:?     's2drs' (uniform sampler2DRectShadow)
+0:?     'itloc2' (in 2-component vector of int)
+0:?     'tloc2' (in 2-component vector of float)
+0:?     'tloc3' (in 3-component vector of float)
+0:?     'tloc4' (in 4-component vector of float)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out
index 73bd45a..082a827 100644
--- a/Test/baseResults/150.frag.out
+++ b/Test/baseResults/150.frag.out
@@ -1,244 +1,244 @@
-150.frag

-ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord

-ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord

-ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord 

-ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use 

-ERROR: 4 compilation errors.  No code generated.

-

-

-Shader version: 150

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-ERROR: node is still EOpNull!

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Sequence

-0:11        move second child to first child (temp 4-component vector of float)

-0:11          'c' (temp 4-component vector of float)

-0:11          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:18  Sequence

-0:18    move second child to first child (temp float)

-0:18      'patch' (global float)

-0:18      Constant:

-0:18        3.100000

-0:31  Function Definition: barWxyz( (global void)

-0:31    Function Parameters: 

-0:33    Sequence

-0:33      Sequence

-0:33        move second child to first child (temp 2-component vector of int)

-0:33          't11' (temp 2-component vector of int)

-0:33          textureSize (global 2-component vector of int)

-0:33            'sms' (uniform sampler2DMS)

-0:34      Sequence

-0:34        move second child to first child (temp 2-component vector of int)

-0:34          't12' (temp 2-component vector of int)

-0:34          textureSize (global 2-component vector of int)

-0:34            'isms' (uniform isampler2DMS)

-0:35      Sequence

-0:35        move second child to first child (temp 2-component vector of int)

-0:35          't13' (temp 2-component vector of int)

-0:35          textureSize (global 2-component vector of int)

-0:35            'usms' (uniform usampler2DMS)

-0:36      Sequence

-0:36        move second child to first child (temp 3-component vector of int)

-0:36          't21' (temp 3-component vector of int)

-0:36          textureSize (global 3-component vector of int)

-0:36            'smsa' (uniform sampler2DMSArray)

-0:37      Sequence

-0:37        move second child to first child (temp 3-component vector of int)

-0:37          't22' (temp 3-component vector of int)

-0:37          textureSize (global 3-component vector of int)

-0:37            'ismsa' (uniform isampler2DMSArray)

-0:38      Sequence

-0:38        move second child to first child (temp 3-component vector of int)

-0:38          't23' (temp 3-component vector of int)

-0:38          textureSize (global 3-component vector of int)

-0:38            'usmsa' (uniform usampler2DMSArray)

-0:39      Sequence

-0:39        move second child to first child (temp 4-component vector of float)

-0:39          't31' (temp 4-component vector of float)

-0:39          textureFetch (global 4-component vector of float)

-0:39            'sms' (uniform sampler2DMS)

-0:39            'p2' (flat in 2-component vector of int)

-0:39            'samp' (flat in int)

-0:40      Sequence

-0:40        move second child to first child (temp 4-component vector of int)

-0:40          't32' (temp 4-component vector of int)

-0:40          textureFetch (global 4-component vector of int)

-0:40            'isms' (uniform isampler2DMS)

-0:40            'p2' (flat in 2-component vector of int)

-0:40            'samp' (flat in int)

-0:41      Sequence

-0:41        move second child to first child (temp 4-component vector of uint)

-0:41          't33' (temp 4-component vector of uint)

-0:41          textureFetch (global 4-component vector of uint)

-0:41            'usms' (uniform usampler2DMS)

-0:41            'p2' (flat in 2-component vector of int)

-0:41            Constant:

-0:41              3 (const int)

-0:42      Sequence

-0:42        move second child to first child (temp 4-component vector of float)

-0:42          't41' (temp 4-component vector of float)

-0:42          textureFetch (global 4-component vector of float)

-0:42            'smsa' (uniform sampler2DMSArray)

-0:42            'p3' (flat in 3-component vector of int)

-0:42            'samp' (flat in int)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of int)

-0:43          't42' (temp 4-component vector of int)

-0:43          textureFetch (global 4-component vector of int)

-0:43            'ismsa' (uniform isampler2DMSArray)

-0:43            Constant:

-0:43              2 (const int)

-0:43              2 (const int)

-0:43              2 (const int)

-0:43            'samp' (flat in int)

-0:44      Sequence

-0:44        move second child to first child (temp 4-component vector of uint)

-0:44          't43' (temp 4-component vector of uint)

-0:44          textureFetch (global 4-component vector of uint)

-0:44            'usmsa' (uniform usampler2DMSArray)

-0:44            'p3' (flat in 3-component vector of int)

-0:44            'samp' (flat in int)

-0:47  Function Definition: primitiveID( (global int)

-0:47    Function Parameters: 

-0:49    Sequence

-0:49      Branch: Return with expression

-0:49        'gl_PrimitiveID' (flat in int PrimitiveID)

-0:?   Linker Objects

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'foo' (smooth in 4-component vector of float)

-0:?     's' (smooth in structure{global float f})

-0:?     'patch' (global float)

-0:?     'sms' (uniform sampler2DMS)

-0:?     'isms' (uniform isampler2DMS)

-0:?     'usms' (uniform usampler2DMS)

-0:?     'smsa' (uniform sampler2DMSArray)

-0:?     'ismsa' (uniform isampler2DMSArray)

-0:?     'usmsa' (uniform usampler2DMSArray)

-0:?     'p2' (flat in 2-component vector of int)

-0:?     'p3' (flat in 3-component vector of int)

-0:?     'samp' (flat in int)

-

-

-Linked fragment stage:

-

-

-Shader version: 150

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-ERROR: node is still EOpNull!

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Sequence

-0:11        move second child to first child (temp 4-component vector of float)

-0:11          'c' (temp 4-component vector of float)

-0:11          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:18  Sequence

-0:18    move second child to first child (temp float)

-0:18      'patch' (global float)

-0:18      Constant:

-0:18        3.100000

-0:31  Function Definition: barWxyz( (global void)

-0:31    Function Parameters: 

-0:33    Sequence

-0:33      Sequence

-0:33        move second child to first child (temp 2-component vector of int)

-0:33          't11' (temp 2-component vector of int)

-0:33          textureSize (global 2-component vector of int)

-0:33            'sms' (uniform sampler2DMS)

-0:34      Sequence

-0:34        move second child to first child (temp 2-component vector of int)

-0:34          't12' (temp 2-component vector of int)

-0:34          textureSize (global 2-component vector of int)

-0:34            'isms' (uniform isampler2DMS)

-0:35      Sequence

-0:35        move second child to first child (temp 2-component vector of int)

-0:35          't13' (temp 2-component vector of int)

-0:35          textureSize (global 2-component vector of int)

-0:35            'usms' (uniform usampler2DMS)

-0:36      Sequence

-0:36        move second child to first child (temp 3-component vector of int)

-0:36          't21' (temp 3-component vector of int)

-0:36          textureSize (global 3-component vector of int)

-0:36            'smsa' (uniform sampler2DMSArray)

-0:37      Sequence

-0:37        move second child to first child (temp 3-component vector of int)

-0:37          't22' (temp 3-component vector of int)

-0:37          textureSize (global 3-component vector of int)

-0:37            'ismsa' (uniform isampler2DMSArray)

-0:38      Sequence

-0:38        move second child to first child (temp 3-component vector of int)

-0:38          't23' (temp 3-component vector of int)

-0:38          textureSize (global 3-component vector of int)

-0:38            'usmsa' (uniform usampler2DMSArray)

-0:39      Sequence

-0:39        move second child to first child (temp 4-component vector of float)

-0:39          't31' (temp 4-component vector of float)

-0:39          textureFetch (global 4-component vector of float)

-0:39            'sms' (uniform sampler2DMS)

-0:39            'p2' (flat in 2-component vector of int)

-0:39            'samp' (flat in int)

-0:40      Sequence

-0:40        move second child to first child (temp 4-component vector of int)

-0:40          't32' (temp 4-component vector of int)

-0:40          textureFetch (global 4-component vector of int)

-0:40            'isms' (uniform isampler2DMS)

-0:40            'p2' (flat in 2-component vector of int)

-0:40            'samp' (flat in int)

-0:41      Sequence

-0:41        move second child to first child (temp 4-component vector of uint)

-0:41          't33' (temp 4-component vector of uint)

-0:41          textureFetch (global 4-component vector of uint)

-0:41            'usms' (uniform usampler2DMS)

-0:41            'p2' (flat in 2-component vector of int)

-0:41            Constant:

-0:41              3 (const int)

-0:42      Sequence

-0:42        move second child to first child (temp 4-component vector of float)

-0:42          't41' (temp 4-component vector of float)

-0:42          textureFetch (global 4-component vector of float)

-0:42            'smsa' (uniform sampler2DMSArray)

-0:42            'p3' (flat in 3-component vector of int)

-0:42            'samp' (flat in int)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of int)

-0:43          't42' (temp 4-component vector of int)

-0:43          textureFetch (global 4-component vector of int)

-0:43            'ismsa' (uniform isampler2DMSArray)

-0:43            Constant:

-0:43              2 (const int)

-0:43              2 (const int)

-0:43              2 (const int)

-0:43            'samp' (flat in int)

-0:44      Sequence

-0:44        move second child to first child (temp 4-component vector of uint)

-0:44          't43' (temp 4-component vector of uint)

-0:44          textureFetch (global 4-component vector of uint)

-0:44            'usmsa' (uniform usampler2DMSArray)

-0:44            'p3' (flat in 3-component vector of int)

-0:44            'samp' (flat in int)

-0:47  Function Definition: primitiveID( (global int)

-0:47    Function Parameters: 

-0:49    Sequence

-0:49      Branch: Return with expression

-0:49        'gl_PrimitiveID' (flat in int PrimitiveID)

-0:?   Linker Objects

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'foo' (smooth in 4-component vector of float)

-0:?     's' (smooth in structure{global float f})

-0:?     'patch' (global float)

-0:?     'sms' (uniform sampler2DMS)

-0:?     'isms' (uniform isampler2DMS)

-0:?     'usms' (uniform usampler2DMS)

-0:?     'smsa' (uniform sampler2DMSArray)

-0:?     'ismsa' (uniform isampler2DMSArray)

-0:?     'usmsa' (uniform usampler2DMSArray)

-0:?     'p2' (flat in 2-component vector of int)

-0:?     'p3' (flat in 3-component vector of int)

-0:?     'samp' (flat in int)

-

+150.frag
+ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord 
+ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use 
+ERROR: 4 compilation errors.  No code generated.
+
+
+Shader version: 150
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Sequence
+0:11        move second child to first child (temp 4-component vector of float)
+0:11          'c' (temp 4-component vector of float)
+0:11          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:18  Sequence
+0:18    move second child to first child (temp float)
+0:18      'patch' (global float)
+0:18      Constant:
+0:18        3.100000
+0:31  Function Definition: barWxyz( (global void)
+0:31    Function Parameters: 
+0:33    Sequence
+0:33      Sequence
+0:33        move second child to first child (temp 2-component vector of int)
+0:33          't11' (temp 2-component vector of int)
+0:33          textureSize (global 2-component vector of int)
+0:33            'sms' (uniform sampler2DMS)
+0:34      Sequence
+0:34        move second child to first child (temp 2-component vector of int)
+0:34          't12' (temp 2-component vector of int)
+0:34          textureSize (global 2-component vector of int)
+0:34            'isms' (uniform isampler2DMS)
+0:35      Sequence
+0:35        move second child to first child (temp 2-component vector of int)
+0:35          't13' (temp 2-component vector of int)
+0:35          textureSize (global 2-component vector of int)
+0:35            'usms' (uniform usampler2DMS)
+0:36      Sequence
+0:36        move second child to first child (temp 3-component vector of int)
+0:36          't21' (temp 3-component vector of int)
+0:36          textureSize (global 3-component vector of int)
+0:36            'smsa' (uniform sampler2DMSArray)
+0:37      Sequence
+0:37        move second child to first child (temp 3-component vector of int)
+0:37          't22' (temp 3-component vector of int)
+0:37          textureSize (global 3-component vector of int)
+0:37            'ismsa' (uniform isampler2DMSArray)
+0:38      Sequence
+0:38        move second child to first child (temp 3-component vector of int)
+0:38          't23' (temp 3-component vector of int)
+0:38          textureSize (global 3-component vector of int)
+0:38            'usmsa' (uniform usampler2DMSArray)
+0:39      Sequence
+0:39        move second child to first child (temp 4-component vector of float)
+0:39          't31' (temp 4-component vector of float)
+0:39          textureFetch (global 4-component vector of float)
+0:39            'sms' (uniform sampler2DMS)
+0:39            'p2' (flat in 2-component vector of int)
+0:39            'samp' (flat in int)
+0:40      Sequence
+0:40        move second child to first child (temp 4-component vector of int)
+0:40          't32' (temp 4-component vector of int)
+0:40          textureFetch (global 4-component vector of int)
+0:40            'isms' (uniform isampler2DMS)
+0:40            'p2' (flat in 2-component vector of int)
+0:40            'samp' (flat in int)
+0:41      Sequence
+0:41        move second child to first child (temp 4-component vector of uint)
+0:41          't33' (temp 4-component vector of uint)
+0:41          textureFetch (global 4-component vector of uint)
+0:41            'usms' (uniform usampler2DMS)
+0:41            'p2' (flat in 2-component vector of int)
+0:41            Constant:
+0:41              3 (const int)
+0:42      Sequence
+0:42        move second child to first child (temp 4-component vector of float)
+0:42          't41' (temp 4-component vector of float)
+0:42          textureFetch (global 4-component vector of float)
+0:42            'smsa' (uniform sampler2DMSArray)
+0:42            'p3' (flat in 3-component vector of int)
+0:42            'samp' (flat in int)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of int)
+0:43          't42' (temp 4-component vector of int)
+0:43          textureFetch (global 4-component vector of int)
+0:43            'ismsa' (uniform isampler2DMSArray)
+0:43            Constant:
+0:43              2 (const int)
+0:43              2 (const int)
+0:43              2 (const int)
+0:43            'samp' (flat in int)
+0:44      Sequence
+0:44        move second child to first child (temp 4-component vector of uint)
+0:44          't43' (temp 4-component vector of uint)
+0:44          textureFetch (global 4-component vector of uint)
+0:44            'usmsa' (uniform usampler2DMSArray)
+0:44            'p3' (flat in 3-component vector of int)
+0:44            'samp' (flat in int)
+0:47  Function Definition: primitiveID( (global int)
+0:47    Function Parameters: 
+0:49    Sequence
+0:49      Branch: Return with expression
+0:49        'gl_PrimitiveID' (flat in int PrimitiveID)
+0:?   Linker Objects
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'foo' (smooth in 4-component vector of float)
+0:?     's' (smooth in structure{global float f})
+0:?     'patch' (global float)
+0:?     'sms' (uniform sampler2DMS)
+0:?     'isms' (uniform isampler2DMS)
+0:?     'usms' (uniform usampler2DMS)
+0:?     'smsa' (uniform sampler2DMSArray)
+0:?     'ismsa' (uniform isampler2DMSArray)
+0:?     'usmsa' (uniform usampler2DMSArray)
+0:?     'p2' (flat in 2-component vector of int)
+0:?     'p3' (flat in 3-component vector of int)
+0:?     'samp' (flat in int)
+
+
+Linked fragment stage:
+
+
+Shader version: 150
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Sequence
+0:11        move second child to first child (temp 4-component vector of float)
+0:11          'c' (temp 4-component vector of float)
+0:11          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:18  Sequence
+0:18    move second child to first child (temp float)
+0:18      'patch' (global float)
+0:18      Constant:
+0:18        3.100000
+0:31  Function Definition: barWxyz( (global void)
+0:31    Function Parameters: 
+0:33    Sequence
+0:33      Sequence
+0:33        move second child to first child (temp 2-component vector of int)
+0:33          't11' (temp 2-component vector of int)
+0:33          textureSize (global 2-component vector of int)
+0:33            'sms' (uniform sampler2DMS)
+0:34      Sequence
+0:34        move second child to first child (temp 2-component vector of int)
+0:34          't12' (temp 2-component vector of int)
+0:34          textureSize (global 2-component vector of int)
+0:34            'isms' (uniform isampler2DMS)
+0:35      Sequence
+0:35        move second child to first child (temp 2-component vector of int)
+0:35          't13' (temp 2-component vector of int)
+0:35          textureSize (global 2-component vector of int)
+0:35            'usms' (uniform usampler2DMS)
+0:36      Sequence
+0:36        move second child to first child (temp 3-component vector of int)
+0:36          't21' (temp 3-component vector of int)
+0:36          textureSize (global 3-component vector of int)
+0:36            'smsa' (uniform sampler2DMSArray)
+0:37      Sequence
+0:37        move second child to first child (temp 3-component vector of int)
+0:37          't22' (temp 3-component vector of int)
+0:37          textureSize (global 3-component vector of int)
+0:37            'ismsa' (uniform isampler2DMSArray)
+0:38      Sequence
+0:38        move second child to first child (temp 3-component vector of int)
+0:38          't23' (temp 3-component vector of int)
+0:38          textureSize (global 3-component vector of int)
+0:38            'usmsa' (uniform usampler2DMSArray)
+0:39      Sequence
+0:39        move second child to first child (temp 4-component vector of float)
+0:39          't31' (temp 4-component vector of float)
+0:39          textureFetch (global 4-component vector of float)
+0:39            'sms' (uniform sampler2DMS)
+0:39            'p2' (flat in 2-component vector of int)
+0:39            'samp' (flat in int)
+0:40      Sequence
+0:40        move second child to first child (temp 4-component vector of int)
+0:40          't32' (temp 4-component vector of int)
+0:40          textureFetch (global 4-component vector of int)
+0:40            'isms' (uniform isampler2DMS)
+0:40            'p2' (flat in 2-component vector of int)
+0:40            'samp' (flat in int)
+0:41      Sequence
+0:41        move second child to first child (temp 4-component vector of uint)
+0:41          't33' (temp 4-component vector of uint)
+0:41          textureFetch (global 4-component vector of uint)
+0:41            'usms' (uniform usampler2DMS)
+0:41            'p2' (flat in 2-component vector of int)
+0:41            Constant:
+0:41              3 (const int)
+0:42      Sequence
+0:42        move second child to first child (temp 4-component vector of float)
+0:42          't41' (temp 4-component vector of float)
+0:42          textureFetch (global 4-component vector of float)
+0:42            'smsa' (uniform sampler2DMSArray)
+0:42            'p3' (flat in 3-component vector of int)
+0:42            'samp' (flat in int)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of int)
+0:43          't42' (temp 4-component vector of int)
+0:43          textureFetch (global 4-component vector of int)
+0:43            'ismsa' (uniform isampler2DMSArray)
+0:43            Constant:
+0:43              2 (const int)
+0:43              2 (const int)
+0:43              2 (const int)
+0:43            'samp' (flat in int)
+0:44      Sequence
+0:44        move second child to first child (temp 4-component vector of uint)
+0:44          't43' (temp 4-component vector of uint)
+0:44          textureFetch (global 4-component vector of uint)
+0:44            'usmsa' (uniform usampler2DMSArray)
+0:44            'p3' (flat in 3-component vector of int)
+0:44            'samp' (flat in int)
+0:47  Function Definition: primitiveID( (global int)
+0:47    Function Parameters: 
+0:49    Sequence
+0:49      Branch: Return with expression
+0:49        'gl_PrimitiveID' (flat in int PrimitiveID)
+0:?   Linker Objects
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'foo' (smooth in 4-component vector of float)
+0:?     's' (smooth in structure{global float f})
+0:?     'patch' (global float)
+0:?     'sms' (uniform sampler2DMS)
+0:?     'isms' (uniform isampler2DMS)
+0:?     'usms' (uniform usampler2DMS)
+0:?     'smsa' (uniform sampler2DMSArray)
+0:?     'ismsa' (uniform isampler2DMSArray)
+0:?     'usmsa' (uniform usampler2DMSArray)
+0:?     'p2' (flat in 2-component vector of int)
+0:?     'p3' (flat in 3-component vector of int)
+0:?     'samp' (flat in int)
+
diff --git a/Test/baseResults/150.geom.out b/Test/baseResults/150.geom.out
index 6731380..aa00868 100644
--- a/Test/baseResults/150.geom.out
+++ b/Test/baseResults/150.geom.out
@@ -1,317 +1,317 @@
-150.geom

-ERROR: 0:15: 'fromVertex' : block instance name redefinition 

-ERROR: 0:19: 'fromVertex' : redefinition 

-ERROR: 0:21: 'fooC' : block instance name redefinition 

-ERROR: 0:29: 'EmitStreamVertex' : no matching overloaded function found 

-ERROR: 0:30: 'EndStreamPrimitive' : no matching overloaded function found 

-ERROR: 0:44: 'stream' : can only be used on an output 

-ERROR: 0:45: 'stream' : can only be used on an output 

-ERROR: 0:46: 'stream' : can only be used on an output 

-ERROR: 0:47: 'stream' : can only be used on an output 

-ERROR: 0:47: 'stream' : can only be used on an output 

-ERROR: 0:60: 'stream' : member cannot contradict block 

-ERROR: 0:66: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices 

-ERROR: 0:66: 'max_vertices' : cannot change previously set layout value 

-ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier 

-ERROR: 0:72: 'points' : cannot change previously set output primitive 

-ERROR: 0:73: 'points' : cannot change previously set output primitive 

-ERROR: 0:74: 'triangle_strip' : cannot apply to input 

-ERROR: 0:75: 'triangle_strip' : cannot apply to: uniform

-ERROR: 0:76: 'triangle_strip' : can only apply to a standalone qualifier 

-ERROR: 0:77: 'triangle_strip' : can only apply to a standalone qualifier 

-ERROR: 0:78: 'invocations' : not supported for this version or the enabled extensions 

-ERROR: 0:78: 'invocations' : can only apply to a standalone qualifier 

-ERROR: 0:80: 'invocations' : not supported for this version or the enabled extensions 

-ERROR: 0:80: 'invocations' : can only apply to a standalone qualifier 

-ERROR: 0:81: 'max_vertices' : can only apply to a standalone qualifier 

-ERROR: 0:82: 'triangle_strip' : can only apply to a standalone qualifier 

-ERROR: 0:85: 'lines' : cannot apply to 'out' 

-ERROR: 0:87: 'triangles' : cannot change previously set input primitive 

-ERROR: 0:88: 'triangles_adjacency' : cannot change previously set input primitive 

-ERROR: 0:89: 'invocations' : not supported for this version or the enabled extensions 

-ERROR: 0:92: 'stream' : member cannot contradict block 

-ERROR: 0:92: 'stream' : can only be used on an output 

-ERROR: 0:129: 'gl_ViewportIndex' : required extension not requested: GL_ARB_viewport_array

-ERROR: 0:129: 'gl_MaxViewports' : required extension not requested: GL_ARB_viewport_array

-ERROR: 0:139: 'gl_ViewportIndex' : identifiers starting with "gl_" are reserved 

-ERROR: 35 compilation errors.  No code generated.

-

-

-Shader version: 150

-Requested GL_ARB_viewport_array

-invocations = 4

-max_vertices = 200

-input primitive = lines_adjacency

-output primitive = triangle_strip

-ERROR: node is still EOpNull!

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      EmitVertex (global void)

-0:28      EndPrimitive (global void)

-0:29      Constant:

-0:29        0.000000

-0:30      Constant:

-0:30        0.000000

-0:32      move second child to first child (temp 3-component vector of float)

-0:32        color: direct index for structure (layout(stream=0 ) out 3-component vector of float)

-0:32          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

-0:32          Constant:

-0:32            0 (const uint)

-0:32        color: direct index for structure (in 3-component vector of float)

-0:32          direct index (temp block{in 3-component vector of float color})

-0:32            'fromV' (in 4-element array of block{in 3-component vector of float color})

-0:32            Constant:

-0:32              0 (const int)

-0:32          Constant:

-0:32            0 (const int)

-0:33      move second child to first child (temp float)

-0:33        direct index (layout(stream=0 ) temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float ClipDistance)

-0:33            'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33            Constant:

-0:33              2 (const uint)

-0:33          Constant:

-0:33            3 (const int)

-0:33        direct index (temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            2 (const int)

-0:34      move second child to first child (temp 4-component vector of float)

-0:34        gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float Position)

-0:34          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34          Constant:

-0:34            0 (const uint)

-0:34        gl_Position: direct index for structure (in 4-component vector of float Position)

-0:34          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34            Constant:

-0:34              0 (const int)

-0:34          Constant:

-0:34            0 (const int)

-0:35      move second child to first child (temp float)

-0:35        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)

-0:35          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:35          Constant:

-0:35            1 (const uint)

-0:35        gl_PointSize: direct index for structure (in float PointSize)

-0:35          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:35            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:35            Constant:

-0:35              3 (const int)

-0:35          Constant:

-0:35            1 (const int)

-0:36      move second child to first child (temp int)

-0:36        'gl_PrimitiveID' (layout(stream=0 ) out int PrimitiveID)

-0:36        'gl_PrimitiveIDIn' (in int PrimitiveID)

-0:37      move second child to first child (temp int)

-0:37        'gl_Layer' (layout(stream=0 ) out int Layer)

-0:37        Constant:

-0:37          2 (const int)

-0:67  Function Definition: foo(i1; (global void)

-0:67    Function Parameters: 

-0:67      'a' (in int)

-0:69    Sequence

-0:69      move second child to first child (temp 4-component vector of float)

-0:69        a: direct index for structure (layout(stream=6 ) out 4-component vector of float)

-0:69          'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:69          Constant:

-0:69            0 (const int)

-0:69        Constant:

-0:69          1.000000

-0:69          1.000000

-0:69          1.000000

-0:69          1.000000

-0:107  Sequence

-0:107    move second child to first child (temp float)

-0:107      'summ' (global float)

-0:107      Constant:

-0:107        11332.000000

-0:127  Function Definition: fooe1( (global void)

-0:127    Function Parameters: 

-0:129    Sequence

-0:129      move second child to first child (temp int)

-0:129        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)

-0:129        Constant:

-0:129          15 (const int)

-0:134  Function Definition: fooe2( (global void)

-0:134    Function Parameters: 

-0:136    Sequence

-0:136      move second child to first child (temp int)

-0:136        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)

-0:136        Constant:

-0:136          15 (const int)

-0:?   Linker Objects

-0:?     'fromV' (in 4-element array of block{in 3-component vector of float color})

-0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

-0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'ov0' (layout(stream=0 ) out 4-component vector of float)

-0:?     'ov4' (layout(stream=4 ) out 4-component vector of float)

-0:?     'o1v0' (layout(stream=0 ) out 4-component vector of float)

-0:?     'ua' (layout(stream=3 ) uniform int)

-0:?     'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})

-0:?     'ov3' (layout(stream=3 ) out 4-component vector of float)

-0:?     'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:?     'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:?     'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:?     'ov2s3' (layout(stream=3 ) out 4-component vector of float)

-0:?     'badv4' (layout(stream=3 ) out 4-component vector of float)

-0:?     'bad2v4' (in 4-element array of 4-component vector of float)

-0:?     'anon@2' (layout(stream=3 ) out block{layout(stream=3 ) out int a})

-0:?     'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})

-0:?     'inbi' (in 4-element array of block{layout(stream=2 ) in int a})

-0:?     'insn' (in 4-element array of block{in int a15})

-0:?     'anon@3' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})

-0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})

-0:?     'summ' (global float)

-0:?     'gl_ViewportIndex' (layout(stream=3 ) out int)

-

-

-Linked geometry stage:

-

-

-Shader version: 150

-Requested GL_ARB_viewport_array

-invocations = 4

-max_vertices = 200

-input primitive = lines_adjacency

-output primitive = triangle_strip

-ERROR: node is still EOpNull!

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      EmitVertex (global void)

-0:28      EndPrimitive (global void)

-0:29      Constant:

-0:29        0.000000

-0:30      Constant:

-0:30        0.000000

-0:32      move second child to first child (temp 3-component vector of float)

-0:32        color: direct index for structure (layout(stream=0 ) out 3-component vector of float)

-0:32          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

-0:32          Constant:

-0:32            0 (const uint)

-0:32        color: direct index for structure (in 3-component vector of float)

-0:32          direct index (temp block{in 3-component vector of float color})

-0:32            'fromV' (in 4-element array of block{in 3-component vector of float color})

-0:32            Constant:

-0:32              0 (const int)

-0:32          Constant:

-0:32            0 (const int)

-0:33      move second child to first child (temp float)

-0:33        direct index (layout(stream=0 ) temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (layout(stream=0 ) out 4-element array of float ClipDistance)

-0:33            'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})

-0:33            Constant:

-0:33              2 (const uint)

-0:33          Constant:

-0:33            3 (const int)

-0:33        direct index (temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            2 (const int)

-0:34      move second child to first child (temp 4-component vector of float)

-0:34        gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float Position)

-0:34          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})

-0:34          Constant:

-0:34            0 (const uint)

-0:34        gl_Position: direct index for structure (in 4-component vector of float Position)

-0:34          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:34            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:34            Constant:

-0:34              0 (const int)

-0:34          Constant:

-0:34            0 (const int)

-0:35      move second child to first child (temp float)

-0:35        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)

-0:35          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})

-0:35          Constant:

-0:35            1 (const uint)

-0:35        gl_PointSize: direct index for structure (in float PointSize)

-0:35          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:35            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:35            Constant:

-0:35              3 (const int)

-0:35          Constant:

-0:35            1 (const int)

-0:36      move second child to first child (temp int)

-0:36        'gl_PrimitiveID' (layout(stream=0 ) out int PrimitiveID)

-0:36        'gl_PrimitiveIDIn' (in int PrimitiveID)

-0:37      move second child to first child (temp int)

-0:37        'gl_Layer' (layout(stream=0 ) out int Layer)

-0:37        Constant:

-0:37          2 (const int)

-0:67  Function Definition: foo(i1; (global void)

-0:67    Function Parameters: 

-0:67      'a' (in int)

-0:69    Sequence

-0:69      move second child to first child (temp 4-component vector of float)

-0:69        a: direct index for structure (layout(stream=6 ) out 4-component vector of float)

-0:69          'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:69          Constant:

-0:69            0 (const int)

-0:69        Constant:

-0:69          1.000000

-0:69          1.000000

-0:69          1.000000

-0:69          1.000000

-0:107  Sequence

-0:107    move second child to first child (temp float)

-0:107      'summ' (global float)

-0:107      Constant:

-0:107        11332.000000

-0:127  Function Definition: fooe1( (global void)

-0:127    Function Parameters: 

-0:129    Sequence

-0:129      move second child to first child (temp int)

-0:129        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)

-0:129        Constant:

-0:129          15 (const int)

-0:134  Function Definition: fooe2( (global void)

-0:134    Function Parameters: 

-0:136    Sequence

-0:136      move second child to first child (temp int)

-0:136        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)

-0:136        Constant:

-0:136          15 (const int)

-0:?   Linker Objects

-0:?     'fromV' (in 4-element array of block{in 3-component vector of float color})

-0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})

-0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})

-0:?     'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'ov0' (layout(stream=0 ) out 4-component vector of float)

-0:?     'ov4' (layout(stream=4 ) out 4-component vector of float)

-0:?     'o1v0' (layout(stream=0 ) out 4-component vector of float)

-0:?     'ua' (layout(stream=3 ) uniform int)

-0:?     'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})

-0:?     'ov3' (layout(stream=3 ) out 4-component vector of float)

-0:?     'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:?     'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:?     'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})

-0:?     'ov2s3' (layout(stream=3 ) out 4-component vector of float)

-0:?     'badv4' (layout(stream=3 ) out 4-component vector of float)

-0:?     'bad2v4' (in 4-element array of 4-component vector of float)

-0:?     'anon@2' (layout(stream=3 ) out block{layout(stream=3 ) out int a})

-0:?     'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})

-0:?     'inbi' (in 4-element array of block{layout(stream=2 ) in int a})

-0:?     'insn' (in 4-element array of block{in int a15})

-0:?     'anon@3' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})

-0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})

-0:?     'summ' (global float)

-0:?     'gl_ViewportIndex' (layout(stream=3 ) out int)

-

+150.geom
+ERROR: 0:15: 'fromVertex' : block instance name redefinition 
+ERROR: 0:19: 'fromVertex' : redefinition 
+ERROR: 0:21: 'fooC' : block instance name redefinition 
+ERROR: 0:29: 'EmitStreamVertex' : no matching overloaded function found 
+ERROR: 0:30: 'EndStreamPrimitive' : no matching overloaded function found 
+ERROR: 0:44: 'stream' : can only be used on an output 
+ERROR: 0:45: 'stream' : can only be used on an output 
+ERROR: 0:46: 'stream' : can only be used on an output 
+ERROR: 0:47: 'stream' : can only be used on an output 
+ERROR: 0:47: 'stream' : can only be used on an output 
+ERROR: 0:60: 'stream' : member cannot contradict block 
+ERROR: 0:66: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices 
+ERROR: 0:66: 'max_vertices' : cannot change previously set layout value 
+ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier 
+ERROR: 0:72: 'points' : cannot change previously set output primitive 
+ERROR: 0:73: 'points' : cannot change previously set output primitive 
+ERROR: 0:74: 'triangle_strip' : cannot apply to input 
+ERROR: 0:75: 'triangle_strip' : cannot apply to: uniform
+ERROR: 0:76: 'triangle_strip' : can only apply to a standalone qualifier 
+ERROR: 0:77: 'triangle_strip' : can only apply to a standalone qualifier 
+ERROR: 0:78: 'invocations' : not supported for this version or the enabled extensions 
+ERROR: 0:78: 'invocations' : can only apply to a standalone qualifier 
+ERROR: 0:80: 'invocations' : not supported for this version or the enabled extensions 
+ERROR: 0:80: 'invocations' : can only apply to a standalone qualifier 
+ERROR: 0:81: 'max_vertices' : can only apply to a standalone qualifier 
+ERROR: 0:82: 'triangle_strip' : can only apply to a standalone qualifier 
+ERROR: 0:85: 'lines' : cannot apply to 'out' 
+ERROR: 0:87: 'triangles' : cannot change previously set input primitive 
+ERROR: 0:88: 'triangles_adjacency' : cannot change previously set input primitive 
+ERROR: 0:89: 'invocations' : not supported for this version or the enabled extensions 
+ERROR: 0:92: 'stream' : member cannot contradict block 
+ERROR: 0:92: 'stream' : can only be used on an output 
+ERROR: 0:129: 'gl_ViewportIndex' : required extension not requested: GL_ARB_viewport_array
+ERROR: 0:129: 'gl_MaxViewports' : required extension not requested: GL_ARB_viewport_array
+ERROR: 0:139: 'gl_ViewportIndex' : identifiers starting with "gl_" are reserved 
+ERROR: 35 compilation errors.  No code generated.
+
+
+Shader version: 150
+Requested GL_ARB_viewport_array
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      EmitVertex (global void)
+0:28      EndPrimitive (global void)
+0:29      Constant:
+0:29        0.000000
+0:30      Constant:
+0:30        0.000000
+0:32      move second child to first child (temp 3-component vector of float)
+0:32        color: direct index for structure (layout(stream=0 ) out 3-component vector of float)
+0:32          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:32          Constant:
+0:32            0 (const uint)
+0:32        color: direct index for structure (in 3-component vector of float)
+0:32          direct index (temp block{in 3-component vector of float color})
+0:32            'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:32            Constant:
+0:32              0 (const int)
+0:32          Constant:
+0:32            0 (const int)
+0:33      move second child to first child (temp float)
+0:33        direct index (layout(stream=0 ) temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float ClipDistance)
+0:33            'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33            Constant:
+0:33              2 (const uint)
+0:33          Constant:
+0:33            3 (const int)
+0:33        direct index (temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            2 (const int)
+0:34      move second child to first child (temp 4-component vector of float)
+0:34        gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float Position)
+0:34          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34          Constant:
+0:34            0 (const uint)
+0:34        gl_Position: direct index for structure (in 4-component vector of float Position)
+0:34          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34            Constant:
+0:34              0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:35      move second child to first child (temp float)
+0:35        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:35          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:35          Constant:
+0:35            1 (const uint)
+0:35        gl_PointSize: direct index for structure (in float PointSize)
+0:35          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:35            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:35            Constant:
+0:35              3 (const int)
+0:35          Constant:
+0:35            1 (const int)
+0:36      move second child to first child (temp int)
+0:36        'gl_PrimitiveID' (layout(stream=0 ) out int PrimitiveID)
+0:36        'gl_PrimitiveIDIn' (in int PrimitiveID)
+0:37      move second child to first child (temp int)
+0:37        'gl_Layer' (layout(stream=0 ) out int Layer)
+0:37        Constant:
+0:37          2 (const int)
+0:67  Function Definition: foo(i1; (global void)
+0:67    Function Parameters: 
+0:67      'a' (in int)
+0:69    Sequence
+0:69      move second child to first child (temp 4-component vector of float)
+0:69        a: direct index for structure (layout(stream=6 ) out 4-component vector of float)
+0:69          'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:69          Constant:
+0:69            0 (const int)
+0:69        Constant:
+0:69          1.000000
+0:69          1.000000
+0:69          1.000000
+0:69          1.000000
+0:107  Sequence
+0:107    move second child to first child (temp float)
+0:107      'summ' (global float)
+0:107      Constant:
+0:107        11332.000000
+0:127  Function Definition: fooe1( (global void)
+0:127    Function Parameters: 
+0:129    Sequence
+0:129      move second child to first child (temp int)
+0:129        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:129        Constant:
+0:129          15 (const int)
+0:134  Function Definition: fooe2( (global void)
+0:134    Function Parameters: 
+0:136    Sequence
+0:136      move second child to first child (temp int)
+0:136        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:136        Constant:
+0:136          15 (const int)
+0:?   Linker Objects
+0:?     'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'ov0' (layout(stream=0 ) out 4-component vector of float)
+0:?     'ov4' (layout(stream=4 ) out 4-component vector of float)
+0:?     'o1v0' (layout(stream=0 ) out 4-component vector of float)
+0:?     'ua' (layout(stream=3 ) uniform int)
+0:?     'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})
+0:?     'ov3' (layout(stream=3 ) out 4-component vector of float)
+0:?     'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:?     'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:?     'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:?     'ov2s3' (layout(stream=3 ) out 4-component vector of float)
+0:?     'badv4' (layout(stream=3 ) out 4-component vector of float)
+0:?     'bad2v4' (in 4-element array of 4-component vector of float)
+0:?     'anon@2' (layout(stream=3 ) out block{layout(stream=3 ) out int a})
+0:?     'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})
+0:?     'inbi' (in 4-element array of block{layout(stream=2 ) in int a})
+0:?     'insn' (in 4-element array of block{in int a15})
+0:?     'anon@3' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})
+0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:?     'summ' (global float)
+0:?     'gl_ViewportIndex' (layout(stream=3 ) out int)
+
+
+Linked geometry stage:
+
+
+Shader version: 150
+Requested GL_ARB_viewport_array
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      EmitVertex (global void)
+0:28      EndPrimitive (global void)
+0:29      Constant:
+0:29        0.000000
+0:30      Constant:
+0:30        0.000000
+0:32      move second child to first child (temp 3-component vector of float)
+0:32        color: direct index for structure (layout(stream=0 ) out 3-component vector of float)
+0:32          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:32          Constant:
+0:32            0 (const uint)
+0:32        color: direct index for structure (in 3-component vector of float)
+0:32          direct index (temp block{in 3-component vector of float color})
+0:32            'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:32            Constant:
+0:32              0 (const int)
+0:32          Constant:
+0:32            0 (const int)
+0:33      move second child to first child (temp float)
+0:33        direct index (layout(stream=0 ) temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (layout(stream=0 ) out 4-element array of float ClipDistance)
+0:33            'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:33            Constant:
+0:33              2 (const uint)
+0:33          Constant:
+0:33            3 (const int)
+0:33        direct index (temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            2 (const int)
+0:34      move second child to first child (temp 4-component vector of float)
+0:34        gl_Position: direct index for structure (layout(stream=0 ) gl_Position 4-component vector of float Position)
+0:34          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:34          Constant:
+0:34            0 (const uint)
+0:34        gl_Position: direct index for structure (in 4-component vector of float Position)
+0:34          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34            Constant:
+0:34              0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:35      move second child to first child (temp float)
+0:35        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:35          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:35          Constant:
+0:35            1 (const uint)
+0:35        gl_PointSize: direct index for structure (in float PointSize)
+0:35          direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:35            'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:35            Constant:
+0:35              3 (const int)
+0:35          Constant:
+0:35            1 (const int)
+0:36      move second child to first child (temp int)
+0:36        'gl_PrimitiveID' (layout(stream=0 ) out int PrimitiveID)
+0:36        'gl_PrimitiveIDIn' (in int PrimitiveID)
+0:37      move second child to first child (temp int)
+0:37        'gl_Layer' (layout(stream=0 ) out int Layer)
+0:37        Constant:
+0:37          2 (const int)
+0:67  Function Definition: foo(i1; (global void)
+0:67    Function Parameters: 
+0:67      'a' (in int)
+0:69    Sequence
+0:69      move second child to first child (temp 4-component vector of float)
+0:69        a: direct index for structure (layout(stream=6 ) out 4-component vector of float)
+0:69          'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:69          Constant:
+0:69            0 (const int)
+0:69        Constant:
+0:69          1.000000
+0:69          1.000000
+0:69          1.000000
+0:69          1.000000
+0:107  Sequence
+0:107    move second child to first child (temp float)
+0:107      'summ' (global float)
+0:107      Constant:
+0:107        11332.000000
+0:127  Function Definition: fooe1( (global void)
+0:127    Function Parameters: 
+0:129    Sequence
+0:129      move second child to first child (temp int)
+0:129        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:129        Constant:
+0:129          15 (const int)
+0:134  Function Definition: fooe2( (global void)
+0:134    Function Parameters: 
+0:136    Sequence
+0:136      move second child to first child (temp int)
+0:136        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:136        Constant:
+0:136          15 (const int)
+0:?   Linker Objects
+0:?     'fromV' (in 4-element array of block{in 3-component vector of float color})
+0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color})
+0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 4-element array of float ClipDistance gl_ClipDistance})
+0:?     'gl_in' (in 4-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'ov0' (layout(stream=0 ) out 4-component vector of float)
+0:?     'ov4' (layout(stream=4 ) out 4-component vector of float)
+0:?     'o1v0' (layout(stream=0 ) out 4-component vector of float)
+0:?     'ua' (layout(stream=3 ) uniform int)
+0:?     'ibb' (layout(stream=3 column_major shared ) uniform block{layout(stream=3 column_major shared ) uniform int ua})
+0:?     'ov3' (layout(stream=3 ) out 4-component vector of float)
+0:?     'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:?     'ouua6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:?     'ouua7' (layout(stream=7 ) out block{layout(stream=6 ) out 4-component vector of float a})
+0:?     'ov2s3' (layout(stream=3 ) out 4-component vector of float)
+0:?     'badv4' (layout(stream=3 ) out 4-component vector of float)
+0:?     'bad2v4' (in 4-element array of 4-component vector of float)
+0:?     'anon@2' (layout(stream=3 ) out block{layout(stream=3 ) out int a})
+0:?     'outbi' (layout(stream=3 ) out block{layout(stream=3 ) out int a, layout(stream=3 ) out int b, layout(stream=3 ) out int c})
+0:?     'inbi' (in 4-element array of block{layout(stream=2 ) in int a})
+0:?     'insn' (in 4-element array of block{in int a15})
+0:?     'anon@3' (layout(stream=3 ) out block{layout(stream=3 ) out float f15})
+0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:?     'summ' (global float)
+0:?     'gl_ViewportIndex' (layout(stream=3 ) out int)
+
diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out
index 185789c..484718c 100644
--- a/Test/baseResults/150.tesc.out
+++ b/Test/baseResults/150.tesc.out
@@ -1,1653 +1,1653 @@
-150.tesc

-Shader version: 150

-Requested GL_ARB_tessellation_shader

-vertices = 4

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Barrier (global void)

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'a' (temp int)

-0:14          Constant:

-0:14            5392 (const int)

-0:20      Sequence

-0:20        move second child to first child (temp 4-component vector of float)

-0:20          'p' (temp 4-component vector of float)

-0:20          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:20            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:20              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:20              Constant:

-0:20                1 (const int)

-0:20            Constant:

-0:20              0 (const int)

-0:21      Sequence

-0:21        move second child to first child (temp float)

-0:21          'ps' (temp float)

-0:21          gl_PointSize: direct index for structure (in float PointSize)

-0:21            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:21              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:21              Constant:

-0:21                1 (const int)

-0:21            Constant:

-0:21              1 (const int)

-0:22      Sequence

-0:22        move second child to first child (temp float)

-0:22          'cd' (temp float)

-0:22          direct index (temp float ClipDistance)

-0:22            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:22              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:22                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:22                Constant:

-0:22                  1 (const int)

-0:22              Constant:

-0:22                2 (const int)

-0:22            Constant:

-0:22              2 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'pvi' (temp int)

-0:24          'gl_PatchVerticesIn' (in int PatchVertices)

-0:25      Sequence

-0:25        move second child to first child (temp int)

-0:25          'pid' (temp int)

-0:25          'gl_PrimitiveID' (in int PrimitiveID)

-0:26      Sequence

-0:26        move second child to first child (temp int)

-0:26          'iid' (temp int)

-0:26          'gl_InvocationID' (in int InvocationID)

-0:28      move second child to first child (temp 4-component vector of float)

-0:28        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:28          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:28            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:28            'gl_InvocationID' (in int InvocationID)

-0:28          Constant:

-0:28            0 (const int)

-0:28        'p' (temp 4-component vector of float)

-0:29      move second child to first child (temp float)

-0:29        gl_PointSize: direct index for structure (out float PointSize)

-0:29          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:29            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:29            'gl_InvocationID' (in int InvocationID)

-0:29          Constant:

-0:29            1 (const int)

-0:29        'ps' (temp float)

-0:30      move second child to first child (temp float)

-0:30        direct index (temp float ClipDistance)

-0:30          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)

-0:30            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:30              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:30              'gl_InvocationID' (in int InvocationID)

-0:30            Constant:

-0:30              2 (const int)

-0:30          Constant:

-0:30            1 (const int)

-0:30        'cd' (temp float)

-0:32      move second child to first child (temp float)

-0:32        direct index (patch temp float TessLevelOuter)

-0:32          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)

-0:32          Constant:

-0:32            3 (const int)

-0:32        Constant:

-0:32          3.200000

-0:33      move second child to first child (temp float)

-0:33        direct index (patch temp float TessLevelInner)

-0:33          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)

-0:33          Constant:

-0:33            1 (const int)

-0:33        Constant:

-0:33          1.300000

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 4-element array of int)

-0:?     'patchOut' (patch out 4-component vector of float)

-

-150.tese

-ERROR: 0:12: 'barrier' : no matching overloaded function found 

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 150

-Requested GL_ARB_tessellation_shader

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Constant:

-0:12        0.000000

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'a' (temp int)

-0:14          Constant:

-0:14            1512 (const int)

-0:22      Sequence

-0:22        move second child to first child (temp 4-component vector of float)

-0:22          'p' (temp 4-component vector of float)

-0:22          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:22            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:22              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:22              Constant:

-0:22                1 (const int)

-0:22            Constant:

-0:22              0 (const int)

-0:23      Sequence

-0:23        move second child to first child (temp float)

-0:23          'ps' (temp float)

-0:23          gl_PointSize: direct index for structure (in float PointSize)

-0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:23              Constant:

-0:23                1 (const int)

-0:23            Constant:

-0:23              1 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'cd' (temp float)

-0:24          direct index (temp float ClipDistance)

-0:24            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:24              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:24                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:24                Constant:

-0:24                  1 (const int)

-0:24              Constant:

-0:24                2 (const int)

-0:24            Constant:

-0:24              2 (const int)

-0:26      Sequence

-0:26        move second child to first child (temp int)

-0:26          'pvi' (temp int)

-0:26          'gl_PatchVerticesIn' (in int PatchVertices)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'pid' (temp int)

-0:27          'gl_PrimitiveID' (in int PrimitiveID)

-0:28      Sequence

-0:28        move second child to first child (temp 3-component vector of float)

-0:28          'tc' (temp 3-component vector of float)

-0:28          'gl_TessCoord' (in 3-component vector of float TessCoord)

-0:29      Sequence

-0:29        move second child to first child (temp float)

-0:29          'tlo' (temp float)

-0:29          direct index (patch temp float TessLevelOuter)

-0:29            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)

-0:29            Constant:

-0:29              3 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp float)

-0:30          'tli' (temp float)

-0:30          direct index (patch temp float TessLevelInner)

-0:30            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)

-0:30            Constant:

-0:30              1 (const int)

-0:32      move second child to first child (temp 4-component vector of float)

-0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:32          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32          Constant:

-0:32            0 (const uint)

-0:32        'p' (temp 4-component vector of float)

-0:33      move second child to first child (temp float)

-0:33        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:33          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33          Constant:

-0:33            1 (const uint)

-0:33        'ps' (temp float)

-0:34      move second child to first child (temp float)

-0:34        direct index (temp float ClipDistance)

-0:34          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)

-0:34            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34            Constant:

-0:34              2 (const uint)

-0:34          Constant:

-0:34            2 (const int)

-0:34        'cd' (temp float)

-0:?   Linker Objects

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-

-400.tesc

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader 

-ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() 

-ERROR: 0:64: 'vertices' : can only apply to 'out' 

-ERROR: 0:65: 'vertices' : cannot change previously set layout value 

-ERROR: 0:69: '[' :  array index out of range '4'

-ERROR: 0:71: '' : tessellation control barrier() must be in main() 

-ERROR: 0:74: 'in' : type must be an array: ina

-ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:83: 'location' : overlapping use of location 4

-ERROR: 0:87: 'location' : overlapping use of location 4

-ERROR: 18 compilation errors.  No code generated.

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-vertices = 4

-ERROR: node is still EOpNull!

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:15    Sequence

-0:15      Barrier (global void)

-0:17      Sequence

-0:17        move second child to first child (temp int)

-0:17          'a' (temp int)

-0:17          Constant:

-0:17            5392 (const int)

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'p' (temp 4-component vector of float)

-0:23          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:23              Constant:

-0:23                1 (const int)

-0:23            Constant:

-0:23              0 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'ps' (temp float)

-0:24          gl_PointSize: direct index for structure (in float PointSize)

-0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:24              Constant:

-0:24                1 (const int)

-0:24            Constant:

-0:24              1 (const int)

-0:25      Sequence

-0:25        move second child to first child (temp float)

-0:25          'cd' (temp float)

-0:25          direct index (temp float ClipDistance)

-0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:25                Constant:

-0:25                  1 (const int)

-0:25              Constant:

-0:25                2 (const int)

-0:25            Constant:

-0:25              2 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'pvi' (temp int)

-0:27          'gl_PatchVerticesIn' (in int PatchVertices)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'pid' (temp int)

-0:28          'gl_PrimitiveID' (in int PrimitiveID)

-0:29      Sequence

-0:29        move second child to first child (temp int)

-0:29          'iid' (temp int)

-0:29          'gl_InvocationID' (in int InvocationID)

-0:31      move second child to first child (temp 4-component vector of float)

-0:31        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:31            'gl_InvocationID' (in int InvocationID)

-0:31          Constant:

-0:31            0 (const int)

-0:31        'p' (temp 4-component vector of float)

-0:32      move second child to first child (temp float)

-0:32        gl_PointSize: direct index for structure (out float PointSize)

-0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32            'gl_InvocationID' (in int InvocationID)

-0:32          Constant:

-0:32            1 (const int)

-0:32        'ps' (temp float)

-0:33      move second child to first child (temp float)

-0:33        direct index (temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)

-0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_InvocationID' (in int InvocationID)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            1 (const int)

-0:33        'cd' (temp float)

-0:35      move second child to first child (temp float)

-0:35        direct index (patch temp float TessLevelOuter)

-0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)

-0:35          Constant:

-0:35            3 (const int)

-0:35        Constant:

-0:35          3.200000

-0:36      move second child to first child (temp float)

-0:36        direct index (patch temp float TessLevelInner)

-0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)

-0:36          Constant:

-0:36            1 (const int)

-0:36        Constant:

-0:36          1.300000

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Greater Than (temp bool)

-0:38          'a' (temp int)

-0:38          Constant:

-0:38            10 (const int)

-0:38        true case

-0:39        Barrier (global void)

-0:38        false case

-0:41        Barrier (global void)

-0:43      Barrier (global void)

-0:47      Loop with condition not tested first

-0:47        Loop Condition

-0:47        Compare Greater Than (temp bool)

-0:47          'a' (temp int)

-0:47          Constant:

-0:47            10 (const int)

-0:47        Loop Body

-0:46        Sequence

-0:46          Barrier (global void)

-0:49      switch

-0:49      condition

-0:49        'a' (temp int)

-0:49      body

-0:49        Sequence

-0:50          default: 

-0:?           Sequence

-0:51            Barrier (global void)

-0:52            Branch: Break

-0:54      Test condition and select (temp int)

-0:54        Condition

-0:54        Compare Less Than (temp bool)

-0:54          'a' (temp int)

-0:54          Constant:

-0:54            12 (const int)

-0:54        true case

-0:54        'a' (temp int)

-0:54        false case

-0:54        Comma (temp int)

-0:54          Barrier (global void)

-0:54          'a' (temp int)

-0:56      Sequence

-0:56        Barrier (global void)

-0:59      Branch: Return

-0:61      Barrier (global void)

-0:67  Function Definition: foo( (global void)

-0:67    Function Parameters: 

-0:69    Sequence

-0:69      gl_PointSize: direct index for structure (out float PointSize)

-0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:69          Constant:

-0:69            4 (const int)

-0:69        Constant:

-0:69          1 (const int)

-0:71      Barrier (global void)

-0:91  Function Definition: foop( (global void)

-0:91    Function Parameters: 

-0:?     Sequence

-0:95      multiply second child into first child (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:96      move second child to first child (temp 3-component vector of float)

-0:96        'pv3' (temp 3-component vector of float)

-0:96        fma (global 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:97      move second child to first child (temp double)

-0:97        'd' (temp double)

-0:97        fma (global double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 4-element array of int)

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'pv3' (temp 3-component vector of float)

-0:?     'pinbi' (patch out block{out int a})

-

-400.tese

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:5: 'triangles' : cannot change previously set input primitive 

-ERROR: 0:6: 'isolines' : cannot change previously set input primitive 

-ERROR: 0:8: 'ccw' : cannot change previously set vertex order 

-ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing 

-ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing 

-ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader 

-ERROR: 0:22: 'barrier' : no matching overloaded function found 

-ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 

-ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 

-ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

-ERROR: 0:64: 'quads' : cannot apply to 'out' 

-ERROR: 0:64: 'cw' : can only apply to 'in' 

-ERROR: 0:65: 'triangles' : cannot apply to 'out' 

-ERROR: 0:66: 'isolines' : cannot apply to 'out' 

-ERROR: 0:67: 'cw' : can only apply to 'in' 

-ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' 

-ERROR: 0:69: 'equal_spacing' : can only apply to 'in' 

-ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' 

-ERROR: 0:71: 'point_mode' : can only apply to 'in' 

-ERROR: 0:73: 'in' : type must be an array: ina

-ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:78: 'in' : type must be an array: bla

-ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:96: 'location' : overlapping use of location 24

-ERROR: 0:99: 'location' : overlapping use of location 24

-ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 

-ERROR: 30 compilation errors.  No code generated.

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:22    Sequence

-0:22      Constant:

-0:22        0.000000

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'a' (temp int)

-0:24          Constant:

-0:24            1512 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp 4-component vector of float)

-0:32          'p' (temp 4-component vector of float)

-0:32          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32              Constant:

-0:32                1 (const int)

-0:32            Constant:

-0:32              0 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp float)

-0:33          'ps' (temp float)

-0:33          gl_PointSize: direct index for structure (in float PointSize)

-0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              1 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp float)

-0:34          'cd' (temp float)

-0:34          direct index (temp float ClipDistance)

-0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34                Constant:

-0:34                  1 (const int)

-0:34              Constant:

-0:34                2 (const int)

-0:34            Constant:

-0:34              2 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp int)

-0:36          'pvi' (temp int)

-0:36          'gl_PatchVerticesIn' (in int PatchVertices)

-0:37      Sequence

-0:37        move second child to first child (temp int)

-0:37          'pid' (temp int)

-0:37          'gl_PrimitiveID' (in int PrimitiveID)

-0:38      Sequence

-0:38        move second child to first child (temp 3-component vector of float)

-0:38          'tc' (temp 3-component vector of float)

-0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)

-0:39      Sequence

-0:39        move second child to first child (temp float)

-0:39          'tlo' (temp float)

-0:39          direct index (patch temp float TessLevelOuter)

-0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)

-0:39            Constant:

-0:39              3 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp float)

-0:40          'tli' (temp float)

-0:40          direct index (patch temp float TessLevelInner)

-0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)

-0:40            Constant:

-0:40              1 (const int)

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:42          Constant:

-0:42            0 (const uint)

-0:42        'p' (temp 4-component vector of float)

-0:43      move second child to first child (temp float)

-0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:43          Constant:

-0:43            1 (const uint)

-0:43        'ps' (temp float)

-0:44      move second child to first child (temp float)

-0:44        direct index (temp float ClipDistance)

-0:44          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)

-0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:44            Constant:

-0:44              2 (const uint)

-0:44          Constant:

-0:44            2 (const int)

-0:44        'cd' (temp float)

-0:?   Linker Objects

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'badp1' (smooth patch in 4-component vector of float)

-0:?     'badp2' (flat patch in 4-component vector of float)

-0:?     'badp3' (noperspective patch in 4-component vector of float)

-0:?     'badp4' (patch sample in 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'bla' (in block{in int f})

-0:?     'blb' (in 32-element array of block{in int f})

-0:?     'blc' (in 32-element array of block{in int f})

-0:?     'bld' (in 32-element array of block{in int f})

-0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)

-0:?     'pinbi' (patch in block{in int a})

-

-410.tesc

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:4: 'length' :  array must first be sized by a redeclaration or layout qualifier

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 400

-vertices = 0

-ERROR: node is still EOpNull!

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:?   Linker Objects

-0:?     'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 1-element array of int)

-0:?     'patchOut' (patch out 4-component vector of float)

-

-420.tesc

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out

-ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a

-ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb

-ERROR: 0:26: 'gl_PointSize' : no such field in structure 

-ERROR: 0:26: 'assign' :  cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'

-ERROR: 0:29: 'out' : type must be an array: outf

-ERROR: 6 compilation errors.  No code generated.

-

-

-Shader version: 420

-Requested GL_ARB_separate_shader_objects

-vertices = 4

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'p' (temp 4-component vector of float)

-0:17          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:17              Constant:

-0:17                1 (const int)

-0:17            Constant:

-0:17              0 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'ps' (temp float)

-0:18          gl_PointSize: direct index for structure (in float PointSize)

-0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:18              Constant:

-0:18                1 (const int)

-0:18            Constant:

-0:18              1 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'cd' (temp float)

-0:19          direct index (temp float ClipDistance)

-0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:19                Constant:

-0:19                  1 (const int)

-0:19              Constant:

-0:19                2 (const int)

-0:19            Constant:

-0:19              2 (const int)

-0:21      Sequence

-0:21        move second child to first child (temp int)

-0:21          'pvi' (temp int)

-0:21          'gl_PatchVerticesIn' (in int PatchVertices)

-0:22      Sequence

-0:22        move second child to first child (temp int)

-0:22          'pid' (temp int)

-0:22          'gl_PrimitiveID' (in int PrimitiveID)

-0:23      Sequence

-0:23        move second child to first child (temp int)

-0:23          'iid' (temp int)

-0:23          'gl_InvocationID' (in int InvocationID)

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:25            'gl_InvocationID' (in int InvocationID)

-0:25          Constant:

-0:25            0 (const int)

-0:25        'p' (temp 4-component vector of float)

-0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:26        'gl_InvocationID' (in int InvocationID)

-0:34  Function Definition: foo( (global void)

-0:34    Function Parameters: 

-0:36    Sequence

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        logical-or (temp bool)

-0:36          Compare Not Equal (temp bool)

-0:36            Constant:

-0:36              -0.625000

-0:36              -0.500000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.125000

-0:36              0.000000

-0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)

-0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:36              Constant:

-0:36                0 (const int)

-0:37          Compare Not Equal (temp bool)

-0:37            Constant:

-0:37              0.375000

-0:37              0.500000

-0:37              0.625000

-0:37              0.750000

-0:37              0.625000

-0:37              0.750000

-0:37              0.875000

-0:37              -0.625000

-0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)

-0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-0:37              Constant:

-0:37                0 (const int)

-0:36        true case is null

-0:?   Linker Objects

-0:?     'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:?     'a' (out 3-element array of int)

-0:?     'outb' (out 5-element array of int)

-0:?     'outc' (out 4-element array of int)

-0:?     'outf' (out float)

-0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-

-420.tese

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:7: '=' :  cannot convert from 'global 3-element array of float' to 'global 2-element array of float'

-ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): global 2-component vector of float

-ERROR: 0:9: 'initializer list' : wrong number of matrix columns: global 3X3 matrix of float

-ERROR: 0:10: 'initializer list' : wrong number of matrix columns: global 2X2 matrix of float

-ERROR: 0:25: 'initializer list' : wrong number of structure members 

-ERROR: 0:27: '=' :  cannot convert from 'const bool' to 'global int'

-ERROR: 0:28: 'constructor' :  cannot convert parameter 2 from 'const float' to 'global 4-component vector of float'

-ERROR: 0:29: 'constructor' :  cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'

-ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments 

-ERROR: 0:29: '=' :  cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'

-ERROR: 0:30: 'initializer list' : wrong number of matrix columns: global 4X2 matrix of float

-ERROR: 0:40: 'constructor' :  cannot convert parameter 1 from 'temp float' to 'global structure{global float s, global float t}'

-ERROR: 0:58: 'initializer list' : wrong number of structure members 

-ERROR: 13 compilation errors.  No code generated.

-

-

-Shader version: 420

-input primitive = none

-vertex spacing = none

-triangle order = none

-ERROR: node is still EOpNull!

-0:4  Sequence

-0:4    move second child to first child (temp 2X2 matrix of float)

-0:4      'b' (global 2X2 matrix of float)

-0:4      Constant:

-0:4        1.000000

-0:4        0.000000

-0:4        0.000000

-0:4        1.000000

-0:15  Sequence

-0:15    move second child to first child (temp structure{global float a, global int b})

-0:15      'e' (global structure{global float a, global int b})

-0:15      Constant:

-0:15        1.200000

-0:15        2 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp structure{global float a, global int b})

-0:20      'e2' (global structure{global float a, global int b})

-0:20      Constant:

-0:20        1.000000

-0:20        3 (const int)

-0:42  Sequence

-0:42    move second child to first child (temp 5-element array of float)

-0:42      'b5' (global 5-element array of float)

-0:42      Constant:

-0:42        3.400000

-0:42        4.200000

-0:42        5.000000

-0:42        5.200000

-0:42        1.100000

-0:67  Sequence

-0:67    move second child to first child (temp 3-component vector of float)

-0:67      'av3' (global 3-component vector of float)

-0:67      Construct vec3 (global 3-component vector of float)

-0:67        'vc1' (global float)

-0:67        'vc2' (global float)

-0:67        'vc3' (global float)

-0:68  Sequence

-0:68    move second child to first child (temp 3-component vector of float)

-0:68      'bv3' (global 3-component vector of float)

-0:68      Construct vec3 (global 3-component vector of float)

-0:68        'vc1' (global float)

-0:68        'vc2' (global float)

-0:68        'vc3' (global float)

-0:70  Function Definition: main( (global void)

-0:70    Function Parameters: 

-0:72    Sequence

-0:72      MemoryBarrier (global void)

-0:74      Test condition and select (temp void)

-0:74        Condition

-0:74        Compare Equal (temp bool)

-0:74          Constant:

-0:74            1 (const uint)

-0:74            2 (const uint)

-0:74            3.000000

-0:74            4.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            4.000000

-0:74            0.000000

-0:74            5.000000

-0:74            6.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            6.000000

-0:74            0.000000

-0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:74        true case is null

-0:76      Test condition and select (temp void)

-0:76        Condition

-0:76        Constant:

-0:76          true (const bool)

-0:76        true case is null

-0:?   Linker Objects

-0:?     'a' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'b' (global 2X2 matrix of float)

-0:?     'c' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'a2' (global 2-element array of float)

-0:?     'b2' (global 2-component vector of float)

-0:?     'c2' (global 3X3 matrix of float)

-0:?     'd' (global 2X2 matrix of float)

-0:?     'e' (global structure{global float a, global int b})

-0:?     'e2' (global structure{global float a, global int b})

-0:?     'e3' (global structure{global float a, global int b})

-0:?     'a3' (global int)

-0:?     'b3' (global 2-element array of 4-component vector of float)

-0:?     'b4' (global 2-element array of 4-component vector of float)

-0:?     'c3' (global 4X2 matrix of float)

-0:?     'd2' (global implicitly-sized array of structure{global float s, global float t})

-0:?     'b5' (global 5-element array of float)

-0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'vc1' (global float)

-0:?     'vc2' (global float)

-0:?     'vc3' (global float)

-0:?     'av3' (global 3-component vector of float)

-0:?     'bv3' (global 3-component vector of float)

-

-

-Linked tessellation control stage:

-

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation control stage: Contradictory layout vertices values

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation control stage: Types must match:

-    gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}"

-ERROR: Linking tessellation control stage: Types must match:

-    outa: "global 4-element array of int" versus "global 1-element array of int"

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    foo(

-ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation control stage: Types must match:

-    gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out 3-element array of block{out 4-component vector of float Position gl_Position}"

-

-Linked tessellation evaluation stage:

-

-ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives

-ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing

-ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering

-ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-

-Shader version: 420

-Requested GL_ARB_separate_shader_objects

-Requested GL_ARB_tessellation_shader

-vertices = 4

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Barrier (global void)

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'a' (temp int)

-0:14          Constant:

-0:14            5392 (const int)

-0:20      Sequence

-0:20        move second child to first child (temp 4-component vector of float)

-0:20          'p' (temp 4-component vector of float)

-0:20          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:20            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:20              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:20              Constant:

-0:20                1 (const int)

-0:20            Constant:

-0:20              0 (const int)

-0:21      Sequence

-0:21        move second child to first child (temp float)

-0:21          'ps' (temp float)

-0:21          gl_PointSize: direct index for structure (in float PointSize)

-0:21            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:21              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:21              Constant:

-0:21                1 (const int)

-0:21            Constant:

-0:21              1 (const int)

-0:22      Sequence

-0:22        move second child to first child (temp float)

-0:22          'cd' (temp float)

-0:22          direct index (temp float ClipDistance)

-0:22            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:22              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:22                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:22                Constant:

-0:22                  1 (const int)

-0:22              Constant:

-0:22                2 (const int)

-0:22            Constant:

-0:22              2 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'pvi' (temp int)

-0:24          'gl_PatchVerticesIn' (in int PatchVertices)

-0:25      Sequence

-0:25        move second child to first child (temp int)

-0:25          'pid' (temp int)

-0:25          'gl_PrimitiveID' (in int PrimitiveID)

-0:26      Sequence

-0:26        move second child to first child (temp int)

-0:26          'iid' (temp int)

-0:26          'gl_InvocationID' (in int InvocationID)

-0:28      move second child to first child (temp 4-component vector of float)

-0:28        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:28          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:28            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:28            'gl_InvocationID' (in int InvocationID)

-0:28          Constant:

-0:28            0 (const int)

-0:28        'p' (temp 4-component vector of float)

-0:29      move second child to first child (temp float)

-0:29        gl_PointSize: direct index for structure (out float PointSize)

-0:29          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:29            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:29            'gl_InvocationID' (in int InvocationID)

-0:29          Constant:

-0:29            1 (const int)

-0:29        'ps' (temp float)

-0:30      move second child to first child (temp float)

-0:30        direct index (temp float ClipDistance)

-0:30          gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)

-0:30            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:30              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:30              'gl_InvocationID' (in int InvocationID)

-0:30            Constant:

-0:30              2 (const int)

-0:30          Constant:

-0:30            1 (const int)

-0:30        'cd' (temp float)

-0:32      move second child to first child (temp float)

-0:32        direct index (patch temp float TessLevelOuter)

-0:32          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)

-0:32          Constant:

-0:32            3 (const int)

-0:32        Constant:

-0:32          3.200000

-0:33      move second child to first child (temp float)

-0:33        direct index (patch temp float TessLevelInner)

-0:33          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)

-0:33          Constant:

-0:33            1 (const int)

-0:33        Constant:

-0:33          1.300000

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:15    Sequence

-0:15      Barrier (global void)

-0:17      Sequence

-0:17        move second child to first child (temp int)

-0:17          'a' (temp int)

-0:17          Constant:

-0:17            5392 (const int)

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'p' (temp 4-component vector of float)

-0:23          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:23              Constant:

-0:23                1 (const int)

-0:23            Constant:

-0:23              0 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'ps' (temp float)

-0:24          gl_PointSize: direct index for structure (in float PointSize)

-0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:24              Constant:

-0:24                1 (const int)

-0:24            Constant:

-0:24              1 (const int)

-0:25      Sequence

-0:25        move second child to first child (temp float)

-0:25          'cd' (temp float)

-0:25          direct index (temp float ClipDistance)

-0:25            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:25                Constant:

-0:25                  1 (const int)

-0:25              Constant:

-0:25                2 (const int)

-0:25            Constant:

-0:25              2 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'pvi' (temp int)

-0:27          'gl_PatchVerticesIn' (in int PatchVertices)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'pid' (temp int)

-0:28          'gl_PrimitiveID' (in int PrimitiveID)

-0:29      Sequence

-0:29        move second child to first child (temp int)

-0:29          'iid' (temp int)

-0:29          'gl_InvocationID' (in int InvocationID)

-0:31      move second child to first child (temp 4-component vector of float)

-0:31        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:31            'gl_InvocationID' (in int InvocationID)

-0:31          Constant:

-0:31            0 (const int)

-0:31        'p' (temp 4-component vector of float)

-0:32      move second child to first child (temp float)

-0:32        gl_PointSize: direct index for structure (out float PointSize)

-0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:32            'gl_InvocationID' (in int InvocationID)

-0:32          Constant:

-0:32            1 (const int)

-0:32        'ps' (temp float)

-0:33      move second child to first child (temp float)

-0:33        direct index (temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)

-0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_InvocationID' (in int InvocationID)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            1 (const int)

-0:33        'cd' (temp float)

-0:35      move second child to first child (temp float)

-0:35        direct index (patch temp float TessLevelOuter)

-0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)

-0:35          Constant:

-0:35            3 (const int)

-0:35        Constant:

-0:35          3.200000

-0:36      move second child to first child (temp float)

-0:36        direct index (patch temp float TessLevelInner)

-0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)

-0:36          Constant:

-0:36            1 (const int)

-0:36        Constant:

-0:36          1.300000

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Greater Than (temp bool)

-0:38          'a' (temp int)

-0:38          Constant:

-0:38            10 (const int)

-0:38        true case

-0:39        Barrier (global void)

-0:38        false case

-0:41        Barrier (global void)

-0:43      Barrier (global void)

-0:47      Loop with condition not tested first

-0:47        Loop Condition

-0:47        Compare Greater Than (temp bool)

-0:47          'a' (temp int)

-0:47          Constant:

-0:47            10 (const int)

-0:47        Loop Body

-0:46        Sequence

-0:46          Barrier (global void)

-0:49      switch

-0:49      condition

-0:49        'a' (temp int)

-0:49      body

-0:49        Sequence

-0:50          default: 

-0:?           Sequence

-0:51            Barrier (global void)

-0:52            Branch: Break

-0:54      Test condition and select (temp int)

-0:54        Condition

-0:54        Compare Less Than (temp bool)

-0:54          'a' (temp int)

-0:54          Constant:

-0:54            12 (const int)

-0:54        true case

-0:54        'a' (temp int)

-0:54        false case

-0:54        Comma (temp int)

-0:54          Barrier (global void)

-0:54          'a' (temp int)

-0:56      Sequence

-0:56        Barrier (global void)

-0:59      Branch: Return

-0:61      Barrier (global void)

-0:67  Function Definition: foo( (global void)

-0:67    Function Parameters: 

-0:69    Sequence

-0:69      gl_PointSize: direct index for structure (out float PointSize)

-0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:69          Constant:

-0:69            4 (const int)

-0:69        Constant:

-0:69          1 (const int)

-0:71      Barrier (global void)

-0:91  Function Definition: foop( (global void)

-0:91    Function Parameters: 

-0:?     Sequence

-0:95      multiply second child into first child (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:96      move second child to first child (temp 3-component vector of float)

-0:96        'pv3' (temp 3-component vector of float)

-0:96        fma (global 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:97      move second child to first child (temp double)

-0:97        'd' (temp double)

-0:97        fma (global double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'p' (temp 4-component vector of float)

-0:17          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:17              Constant:

-0:17                1 (const int)

-0:17            Constant:

-0:17              0 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'ps' (temp float)

-0:18          gl_PointSize: direct index for structure (in float PointSize)

-0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:18              Constant:

-0:18                1 (const int)

-0:18            Constant:

-0:18              1 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'cd' (temp float)

-0:19          direct index (temp float ClipDistance)

-0:19            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:19                Constant:

-0:19                  1 (const int)

-0:19              Constant:

-0:19                2 (const int)

-0:19            Constant:

-0:19              2 (const int)

-0:21      Sequence

-0:21        move second child to first child (temp int)

-0:21          'pvi' (temp int)

-0:21          'gl_PatchVerticesIn' (in int PatchVertices)

-0:22      Sequence

-0:22        move second child to first child (temp int)

-0:22          'pid' (temp int)

-0:22          'gl_PrimitiveID' (in int PrimitiveID)

-0:23      Sequence

-0:23        move second child to first child (temp int)

-0:23          'iid' (temp int)

-0:23          'gl_InvocationID' (in int InvocationID)

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:25            'gl_InvocationID' (in int InvocationID)

-0:25          Constant:

-0:25            0 (const int)

-0:25        'p' (temp 4-component vector of float)

-0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:26        'gl_InvocationID' (in int InvocationID)

-0:34  Function Definition: foo( (global void)

-0:34    Function Parameters: 

-0:36    Sequence

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        logical-or (temp bool)

-0:36          Compare Not Equal (temp bool)

-0:36            Constant:

-0:36              -0.625000

-0:36              -0.500000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.125000

-0:36              0.000000

-0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)

-0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:36              Constant:

-0:36                0 (const int)

-0:37          Compare Not Equal (temp bool)

-0:37            Constant:

-0:37              0.375000

-0:37              0.500000

-0:37              0.625000

-0:37              0.750000

-0:37              0.625000

-0:37              0.750000

-0:37              0.875000

-0:37              -0.625000

-0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)

-0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-0:37              Constant:

-0:37                0 (const int)

-0:36        true case is null

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 4-element array of int)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'pv3' (temp 3-component vector of float)

-0:?     'pinbi' (patch out block{out int a})

-0:?     'a' (out 3-element array of int)

-0:?     'outb' (out 5-element array of int)

-0:?     'outc' (out 4-element array of int)

-0:?     'outf' (out float)

-0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-Shader version: 420

-Requested GL_ARB_separate_shader_objects

-Requested GL_ARB_tessellation_shader

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Constant:

-0:12        0.000000

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'a' (temp int)

-0:14          Constant:

-0:14            1512 (const int)

-0:22      Sequence

-0:22        move second child to first child (temp 4-component vector of float)

-0:22          'p' (temp 4-component vector of float)

-0:22          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:22            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:22              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:22              Constant:

-0:22                1 (const int)

-0:22            Constant:

-0:22              0 (const int)

-0:23      Sequence

-0:23        move second child to first child (temp float)

-0:23          'ps' (temp float)

-0:23          gl_PointSize: direct index for structure (in float PointSize)

-0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:23              Constant:

-0:23                1 (const int)

-0:23            Constant:

-0:23              1 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'cd' (temp float)

-0:24          direct index (temp float ClipDistance)

-0:24            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:24              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:24                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:24                Constant:

-0:24                  1 (const int)

-0:24              Constant:

-0:24                2 (const int)

-0:24            Constant:

-0:24              2 (const int)

-0:26      Sequence

-0:26        move second child to first child (temp int)

-0:26          'pvi' (temp int)

-0:26          'gl_PatchVerticesIn' (in int PatchVertices)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'pid' (temp int)

-0:27          'gl_PrimitiveID' (in int PrimitiveID)

-0:28      Sequence

-0:28        move second child to first child (temp 3-component vector of float)

-0:28          'tc' (temp 3-component vector of float)

-0:28          'gl_TessCoord' (in 3-component vector of float TessCoord)

-0:29      Sequence

-0:29        move second child to first child (temp float)

-0:29          'tlo' (temp float)

-0:29          direct index (patch temp float TessLevelOuter)

-0:29            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)

-0:29            Constant:

-0:29              3 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp float)

-0:30          'tli' (temp float)

-0:30          direct index (patch temp float TessLevelInner)

-0:30            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)

-0:30            Constant:

-0:30              1 (const int)

-0:32      move second child to first child (temp 4-component vector of float)

-0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:32          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:32          Constant:

-0:32            0 (const uint)

-0:32        'p' (temp 4-component vector of float)

-0:33      move second child to first child (temp float)

-0:33        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:33          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:33          Constant:

-0:33            1 (const uint)

-0:33        'ps' (temp float)

-0:34      move second child to first child (temp float)

-0:34        direct index (temp float ClipDistance)

-0:34          gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)

-0:34            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:34            Constant:

-0:34              2 (const uint)

-0:34          Constant:

-0:34            2 (const int)

-0:34        'cd' (temp float)

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:22    Sequence

-0:22      Constant:

-0:22        0.000000

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'a' (temp int)

-0:24          Constant:

-0:24            1512 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp 4-component vector of float)

-0:32          'p' (temp 4-component vector of float)

-0:32          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:32              Constant:

-0:32                1 (const int)

-0:32            Constant:

-0:32              0 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp float)

-0:33          'ps' (temp float)

-0:33          gl_PointSize: direct index for structure (in float PointSize)

-0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              1 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp float)

-0:34          'cd' (temp float)

-0:34          direct index (temp float ClipDistance)

-0:34            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:34                Constant:

-0:34                  1 (const int)

-0:34              Constant:

-0:34                2 (const int)

-0:34            Constant:

-0:34              2 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp int)

-0:36          'pvi' (temp int)

-0:36          'gl_PatchVerticesIn' (in int PatchVertices)

-0:37      Sequence

-0:37        move second child to first child (temp int)

-0:37          'pid' (temp int)

-0:37          'gl_PrimitiveID' (in int PrimitiveID)

-0:38      Sequence

-0:38        move second child to first child (temp 3-component vector of float)

-0:38          'tc' (temp 3-component vector of float)

-0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)

-0:39      Sequence

-0:39        move second child to first child (temp float)

-0:39          'tlo' (temp float)

-0:39          direct index (patch temp float TessLevelOuter)

-0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)

-0:39            Constant:

-0:39              3 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp float)

-0:40          'tli' (temp float)

-0:40          direct index (patch temp float TessLevelInner)

-0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)

-0:40            Constant:

-0:40              1 (const int)

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:42          Constant:

-0:42            0 (const uint)

-0:42        'p' (temp 4-component vector of float)

-0:43      move second child to first child (temp float)

-0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:43          Constant:

-0:43            1 (const uint)

-0:43        'ps' (temp float)

-0:44      move second child to first child (temp float)

-0:44        direct index (temp float ClipDistance)

-0:44          gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)

-0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:44            Constant:

-0:44              2 (const uint)

-0:44          Constant:

-0:44            2 (const int)

-0:44        'cd' (temp float)

-0:4  Sequence

-0:4    move second child to first child (temp 2X2 matrix of float)

-0:4      'b' (global 2X2 matrix of float)

-0:4      Constant:

-0:4        1.000000

-0:4        0.000000

-0:4        0.000000

-0:4        1.000000

-0:15  Sequence

-0:15    move second child to first child (temp structure{global float a, global int b})

-0:15      'e' (global structure{global float a, global int b})

-0:15      Constant:

-0:15        1.200000

-0:15        2 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp structure{global float a, global int b})

-0:20      'e2' (global structure{global float a, global int b})

-0:20      Constant:

-0:20        1.000000

-0:20        3 (const int)

-0:42  Sequence

-0:42    move second child to first child (temp 5-element array of float)

-0:42      'b5' (global 5-element array of float)

-0:42      Constant:

-0:42        3.400000

-0:42        4.200000

-0:42        5.000000

-0:42        5.200000

-0:42        1.100000

-0:67  Sequence

-0:67    move second child to first child (temp 3-component vector of float)

-0:67      'av3' (global 3-component vector of float)

-0:67      Construct vec3 (global 3-component vector of float)

-0:67        'vc1' (global float)

-0:67        'vc2' (global float)

-0:67        'vc3' (global float)

-0:68  Sequence

-0:68    move second child to first child (temp 3-component vector of float)

-0:68      'bv3' (global 3-component vector of float)

-0:68      Construct vec3 (global 3-component vector of float)

-0:68        'vc1' (global float)

-0:68        'vc2' (global float)

-0:68        'vc3' (global float)

-0:70  Function Definition: main( (global void)

-0:70    Function Parameters: 

-0:72    Sequence

-0:72      MemoryBarrier (global void)

-0:74      Test condition and select (temp void)

-0:74        Condition

-0:74        Compare Equal (temp bool)

-0:74          Constant:

-0:74            1 (const uint)

-0:74            2 (const uint)

-0:74            3.000000

-0:74            4.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            4.000000

-0:74            0.000000

-0:74            5.000000

-0:74            6.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            6.000000

-0:74            0.000000

-0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:74        true case is null

-0:76      Test condition and select (temp void)

-0:76        Condition

-0:76        Constant:

-0:76          true (const bool)

-0:76        true case is null

-0:?   Linker Objects

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'badp1' (smooth patch in 4-component vector of float)

-0:?     'badp2' (flat patch in 4-component vector of float)

-0:?     'badp3' (noperspective patch in 4-component vector of float)

-0:?     'badp4' (patch sample in 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'bla' (in block{in int f})

-0:?     'blb' (in 32-element array of block{in int f})

-0:?     'blc' (in 32-element array of block{in int f})

-0:?     'bld' (in 32-element array of block{in int f})

-0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)

-0:?     'pinbi' (patch in block{in int a})

-0:?     'a' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'b' (global 2X2 matrix of float)

-0:?     'c' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'a2' (global 2-element array of float)

-0:?     'b2' (global 2-component vector of float)

-0:?     'c2' (global 3X3 matrix of float)

-0:?     'd' (global 2X2 matrix of float)

-0:?     'e' (global structure{global float a, global int b})

-0:?     'e2' (global structure{global float a, global int b})

-0:?     'e3' (global structure{global float a, global int b})

-0:?     'a3' (global int)

-0:?     'b3' (global 2-element array of 4-component vector of float)

-0:?     'b4' (global 2-element array of 4-component vector of float)

-0:?     'c3' (global 4X2 matrix of float)

-0:?     'd2' (global 1-element array of structure{global float s, global float t})

-0:?     'b5' (global 5-element array of float)

-0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'vc1' (global float)

-0:?     'vc2' (global float)

-0:?     'vc3' (global float)

-0:?     'av3' (global 3-component vector of float)

-0:?     'bv3' (global 3-component vector of float)

-

+150.tesc
+Shader version: 150
+Requested GL_ARB_tessellation_shader
+vertices = 4
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Barrier (global void)
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'a' (temp int)
+0:14          Constant:
+0:14            5392 (const int)
+0:20      Sequence
+0:20        move second child to first child (temp 4-component vector of float)
+0:20          'p' (temp 4-component vector of float)
+0:20          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:20            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:20              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'ps' (temp float)
+0:21          gl_PointSize: direct index for structure (in float PointSize)
+0:21            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21              Constant:
+0:21                1 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'cd' (temp float)
+0:22          direct index (temp float ClipDistance)
+0:22            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:22              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22                Constant:
+0:22                  1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'pvi' (temp int)
+0:24          'gl_PatchVerticesIn' (in int PatchVertices)
+0:25      Sequence
+0:25        move second child to first child (temp int)
+0:25          'pid' (temp int)
+0:25          'gl_PrimitiveID' (in int PrimitiveID)
+0:26      Sequence
+0:26        move second child to first child (temp int)
+0:26          'iid' (temp int)
+0:26          'gl_InvocationID' (in int InvocationID)
+0:28      move second child to first child (temp 4-component vector of float)
+0:28        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:28          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:28            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:28            'gl_InvocationID' (in int InvocationID)
+0:28          Constant:
+0:28            0 (const int)
+0:28        'p' (temp 4-component vector of float)
+0:29      move second child to first child (temp float)
+0:29        gl_PointSize: direct index for structure (out float PointSize)
+0:29          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:29            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:29            'gl_InvocationID' (in int InvocationID)
+0:29          Constant:
+0:29            1 (const int)
+0:29        'ps' (temp float)
+0:30      move second child to first child (temp float)
+0:30        direct index (temp float ClipDistance)
+0:30          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:30            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:30              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:30              'gl_InvocationID' (in int InvocationID)
+0:30            Constant:
+0:30              2 (const int)
+0:30          Constant:
+0:30            1 (const int)
+0:30        'cd' (temp float)
+0:32      move second child to first child (temp float)
+0:32        direct index (patch temp float TessLevelOuter)
+0:32          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:32          Constant:
+0:32            3 (const int)
+0:32        Constant:
+0:32          3.200000
+0:33      move second child to first child (temp float)
+0:33        direct index (patch temp float TessLevelInner)
+0:33          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:33          Constant:
+0:33            1 (const int)
+0:33        Constant:
+0:33          1.300000
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 4-element array of int)
+0:?     'patchOut' (patch out 4-component vector of float)
+
+150.tese
+ERROR: 0:12: 'barrier' : no matching overloaded function found 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 150
+Requested GL_ARB_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Constant:
+0:12        0.000000
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'a' (temp int)
+0:14          Constant:
+0:14            1512 (const int)
+0:22      Sequence
+0:22        move second child to first child (temp 4-component vector of float)
+0:22          'p' (temp 4-component vector of float)
+0:22          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:22            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:22              Constant:
+0:22                1 (const int)
+0:22            Constant:
+0:22              0 (const int)
+0:23      Sequence
+0:23        move second child to first child (temp float)
+0:23          'ps' (temp float)
+0:23          gl_PointSize: direct index for structure (in float PointSize)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              Constant:
+0:23                1 (const int)
+0:23            Constant:
+0:23              1 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'cd' (temp float)
+0:24          direct index (temp float ClipDistance)
+0:24            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:24              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24                Constant:
+0:24                  1 (const int)
+0:24              Constant:
+0:24                2 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:26      Sequence
+0:26        move second child to first child (temp int)
+0:26          'pvi' (temp int)
+0:26          'gl_PatchVerticesIn' (in int PatchVertices)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'pid' (temp int)
+0:27          'gl_PrimitiveID' (in int PrimitiveID)
+0:28      Sequence
+0:28        move second child to first child (temp 3-component vector of float)
+0:28          'tc' (temp 3-component vector of float)
+0:28          'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:29      Sequence
+0:29        move second child to first child (temp float)
+0:29          'tlo' (temp float)
+0:29          direct index (patch temp float TessLevelOuter)
+0:29            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:29            Constant:
+0:29              3 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'tli' (temp float)
+0:30          direct index (patch temp float TessLevelInner)
+0:30            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:30            Constant:
+0:30              1 (const int)
+0:32      move second child to first child (temp 4-component vector of float)
+0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:32          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32          Constant:
+0:32            0 (const uint)
+0:32        'p' (temp 4-component vector of float)
+0:33      move second child to first child (temp float)
+0:33        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:33          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33          Constant:
+0:33            1 (const uint)
+0:33        'ps' (temp float)
+0:34      move second child to first child (temp float)
+0:34        direct index (temp float ClipDistance)
+0:34          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:34            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34            Constant:
+0:34              2 (const uint)
+0:34          Constant:
+0:34            2 (const int)
+0:34        'cd' (temp float)
+0:?   Linker Objects
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+
+400.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader 
+ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() 
+ERROR: 0:64: 'vertices' : can only apply to 'out' 
+ERROR: 0:65: 'vertices' : cannot change previously set layout value 
+ERROR: 0:69: '[' :  array index out of range '4'
+ERROR: 0:71: '' : tessellation control barrier() must be in main() 
+ERROR: 0:74: 'in' : type must be an array: ina
+ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:83: 'location' : overlapping use of location 4
+ERROR: 0:87: 'location' : overlapping use of location 4
+ERROR: 18 compilation errors.  No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      Barrier (global void)
+0:17      Sequence
+0:17        move second child to first child (temp int)
+0:17          'a' (temp int)
+0:17          Constant:
+0:17            5392 (const int)
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'p' (temp 4-component vector of float)
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              Constant:
+0:23                1 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'ps' (temp float)
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24              Constant:
+0:24                1 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:25      Sequence
+0:25        move second child to first child (temp float)
+0:25          'cd' (temp float)
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25                Constant:
+0:25                  1 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'pvi' (temp int)
+0:27          'gl_PatchVerticesIn' (in int PatchVertices)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'pid' (temp int)
+0:28          'gl_PrimitiveID' (in int PrimitiveID)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'iid' (temp int)
+0:29          'gl_InvocationID' (in int InvocationID)
+0:31      move second child to first child (temp 4-component vector of float)
+0:31        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31            'gl_InvocationID' (in int InvocationID)
+0:31          Constant:
+0:31            0 (const int)
+0:31        'p' (temp 4-component vector of float)
+0:32      move second child to first child (temp float)
+0:32        gl_PointSize: direct index for structure (out float PointSize)
+0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32            'gl_InvocationID' (in int InvocationID)
+0:32          Constant:
+0:32            1 (const int)
+0:32        'ps' (temp float)
+0:33      move second child to first child (temp float)
+0:33        direct index (temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_InvocationID' (in int InvocationID)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            1 (const int)
+0:33        'cd' (temp float)
+0:35      move second child to first child (temp float)
+0:35        direct index (patch temp float TessLevelOuter)
+0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35          Constant:
+0:35            3 (const int)
+0:35        Constant:
+0:35          3.200000
+0:36      move second child to first child (temp float)
+0:36        direct index (patch temp float TessLevelInner)
+0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36          Constant:
+0:36            1 (const int)
+0:36        Constant:
+0:36          1.300000
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Greater Than (temp bool)
+0:38          'a' (temp int)
+0:38          Constant:
+0:38            10 (const int)
+0:38        true case
+0:39        Barrier (global void)
+0:38        false case
+0:41        Barrier (global void)
+0:43      Barrier (global void)
+0:47      Loop with condition not tested first
+0:47        Loop Condition
+0:47        Compare Greater Than (temp bool)
+0:47          'a' (temp int)
+0:47          Constant:
+0:47            10 (const int)
+0:47        Loop Body
+0:46        Sequence
+0:46          Barrier (global void)
+0:49      switch
+0:49      condition
+0:49        'a' (temp int)
+0:49      body
+0:49        Sequence
+0:50          default: 
+0:?           Sequence
+0:51            Barrier (global void)
+0:52            Branch: Break
+0:54      Test condition and select (temp int)
+0:54        Condition
+0:54        Compare Less Than (temp bool)
+0:54          'a' (temp int)
+0:54          Constant:
+0:54            12 (const int)
+0:54        true case
+0:54        'a' (temp int)
+0:54        false case
+0:54        Comma (temp int)
+0:54          Barrier (global void)
+0:54          'a' (temp int)
+0:56      Sequence
+0:56        Barrier (global void)
+0:59      Branch: Return
+0:61      Barrier (global void)
+0:67  Function Definition: foo( (global void)
+0:67    Function Parameters: 
+0:69    Sequence
+0:69      gl_PointSize: direct index for structure (out float PointSize)
+0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69          Constant:
+0:69            4 (const int)
+0:69        Constant:
+0:69          1 (const int)
+0:71      Barrier (global void)
+0:91  Function Definition: foop( (global void)
+0:91    Function Parameters: 
+0:?     Sequence
+0:95      multiply second child into first child (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:96      move second child to first child (temp 3-component vector of float)
+0:96        'pv3' (temp 3-component vector of float)
+0:96        fma (global 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:97      move second child to first child (temp double)
+0:97        'd' (temp double)
+0:97        fma (global double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 4-element array of int)
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'pv3' (temp 3-component vector of float)
+0:?     'pinbi' (patch out block{out int a})
+
+400.tese
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:5: 'triangles' : cannot change previously set input primitive 
+ERROR: 0:6: 'isolines' : cannot change previously set input primitive 
+ERROR: 0:8: 'ccw' : cannot change previously set vertex order 
+ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing 
+ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing 
+ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader 
+ERROR: 0:22: 'barrier' : no matching overloaded function found 
+ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 
+ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 
+ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 
+ERROR: 0:64: 'quads' : cannot apply to 'out' 
+ERROR: 0:64: 'cw' : can only apply to 'in' 
+ERROR: 0:65: 'triangles' : cannot apply to 'out' 
+ERROR: 0:66: 'isolines' : cannot apply to 'out' 
+ERROR: 0:67: 'cw' : can only apply to 'in' 
+ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' 
+ERROR: 0:69: 'equal_spacing' : can only apply to 'in' 
+ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' 
+ERROR: 0:71: 'point_mode' : can only apply to 'in' 
+ERROR: 0:73: 'in' : type must be an array: ina
+ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:78: 'in' : type must be an array: bla
+ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:96: 'location' : overlapping use of location 24
+ERROR: 0:99: 'location' : overlapping use of location 24
+ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 
+ERROR: 30 compilation errors.  No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Constant:
+0:22        0.000000
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'a' (temp int)
+0:24          Constant:
+0:24            1512 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp 4-component vector of float)
+0:32          'p' (temp 4-component vector of float)
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32              Constant:
+0:32                1 (const int)
+0:32            Constant:
+0:32              0 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp float)
+0:33          'ps' (temp float)
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              1 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          'cd' (temp float)
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34                Constant:
+0:34                  1 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Constant:
+0:34              2 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp int)
+0:36          'pvi' (temp int)
+0:36          'gl_PatchVerticesIn' (in int PatchVertices)
+0:37      Sequence
+0:37        move second child to first child (temp int)
+0:37          'pid' (temp int)
+0:37          'gl_PrimitiveID' (in int PrimitiveID)
+0:38      Sequence
+0:38        move second child to first child (temp 3-component vector of float)
+0:38          'tc' (temp 3-component vector of float)
+0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39      Sequence
+0:39        move second child to first child (temp float)
+0:39          'tlo' (temp float)
+0:39          direct index (patch temp float TessLevelOuter)
+0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39            Constant:
+0:39              3 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'tli' (temp float)
+0:40          direct index (patch temp float TessLevelInner)
+0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40            Constant:
+0:40              1 (const int)
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:42          Constant:
+0:42            0 (const uint)
+0:42        'p' (temp 4-component vector of float)
+0:43      move second child to first child (temp float)
+0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:43          Constant:
+0:43            1 (const uint)
+0:43        'ps' (temp float)
+0:44      move second child to first child (temp float)
+0:44        direct index (temp float ClipDistance)
+0:44          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:44            Constant:
+0:44              2 (const uint)
+0:44          Constant:
+0:44            2 (const int)
+0:44        'cd' (temp float)
+0:?   Linker Objects
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'badp1' (smooth patch in 4-component vector of float)
+0:?     'badp2' (flat patch in 4-component vector of float)
+0:?     'badp3' (noperspective patch in 4-component vector of float)
+0:?     'badp4' (patch sample in 3-component vector of float)
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'bla' (in block{in int f})
+0:?     'blb' (in 32-element array of block{in int f})
+0:?     'blc' (in 32-element array of block{in int f})
+0:?     'bld' (in 32-element array of block{in int f})
+0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:?     'pinbi' (patch in block{in int a})
+
+410.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'length' :  array must first be sized by a redeclaration or layout qualifier
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 400
+vertices = 0
+ERROR: node is still EOpNull!
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:?   Linker Objects
+0:?     'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 1-element array of int)
+0:?     'patchOut' (patch out 4-component vector of float)
+
+420.tesc
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
+ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
+ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
+ERROR: 0:26: 'gl_PointSize' : no such field in structure 
+ERROR: 0:26: 'assign' :  cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
+ERROR: 0:29: 'out' : type must be an array: outf
+ERROR: 6 compilation errors.  No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'p' (temp 4-component vector of float)
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17              Constant:
+0:17                1 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'ps' (temp float)
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18              Constant:
+0:18                1 (const int)
+0:18            Constant:
+0:18              1 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'cd' (temp float)
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19                Constant:
+0:19                  1 (const int)
+0:19              Constant:
+0:19                2 (const int)
+0:19            Constant:
+0:19              2 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp int)
+0:21          'pvi' (temp int)
+0:21          'gl_PatchVerticesIn' (in int PatchVertices)
+0:22      Sequence
+0:22        move second child to first child (temp int)
+0:22          'pid' (temp int)
+0:22          'gl_PrimitiveID' (in int PrimitiveID)
+0:23      Sequence
+0:23        move second child to first child (temp int)
+0:23          'iid' (temp int)
+0:23          'gl_InvocationID' (in int InvocationID)
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25            'gl_InvocationID' (in int InvocationID)
+0:25          Constant:
+0:25            0 (const int)
+0:25        'p' (temp 4-component vector of float)
+0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26        'gl_InvocationID' (in int InvocationID)
+0:34  Function Definition: foo( (global void)
+0:34    Function Parameters: 
+0:36    Sequence
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        logical-or (temp bool)
+0:36          Compare Not Equal (temp bool)
+0:36            Constant:
+0:36              -0.625000
+0:36              -0.500000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.125000
+0:36              0.000000
+0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36              Constant:
+0:36                0 (const int)
+0:37          Compare Not Equal (temp bool)
+0:37            Constant:
+0:37              0.375000
+0:37              0.500000
+0:37              0.625000
+0:37              0.750000
+0:37              0.625000
+0:37              0.750000
+0:37              0.875000
+0:37              -0.625000
+0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37              Constant:
+0:37                0 (const int)
+0:36        true case is null
+0:?   Linker Objects
+0:?     'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:?     'a' (out 3-element array of int)
+0:?     'outb' (out 5-element array of int)
+0:?     'outc' (out 4-element array of int)
+0:?     'outf' (out float)
+0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+
+420.tese
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: '=' :  cannot convert from 'global 3-element array of float' to 'global 2-element array of float'
+ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): global 2-component vector of float
+ERROR: 0:9: 'initializer list' : wrong number of matrix columns: global 3X3 matrix of float
+ERROR: 0:10: 'initializer list' : wrong number of matrix columns: global 2X2 matrix of float
+ERROR: 0:25: 'initializer list' : wrong number of structure members 
+ERROR: 0:27: '=' :  cannot convert from 'const bool' to 'global int'
+ERROR: 0:28: 'constructor' :  cannot convert parameter 2 from 'const float' to 'global 4-component vector of float'
+ERROR: 0:29: 'constructor' :  cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'
+ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments 
+ERROR: 0:29: '=' :  cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
+ERROR: 0:30: 'initializer list' : wrong number of matrix columns: global 4X2 matrix of float
+ERROR: 0:40: 'constructor' :  cannot convert parameter 1 from 'temp float' to 'global structure{global float s, global float t}'
+ERROR: 0:58: 'initializer list' : wrong number of structure members 
+ERROR: 13 compilation errors.  No code generated.
+
+
+Shader version: 420
+input primitive = none
+vertex spacing = none
+triangle order = none
+ERROR: node is still EOpNull!
+0:4  Sequence
+0:4    move second child to first child (temp 2X2 matrix of float)
+0:4      'b' (global 2X2 matrix of float)
+0:4      Constant:
+0:4        1.000000
+0:4        0.000000
+0:4        0.000000
+0:4        1.000000
+0:15  Sequence
+0:15    move second child to first child (temp structure{global float a, global int b})
+0:15      'e' (global structure{global float a, global int b})
+0:15      Constant:
+0:15        1.200000
+0:15        2 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp structure{global float a, global int b})
+0:20      'e2' (global structure{global float a, global int b})
+0:20      Constant:
+0:20        1.000000
+0:20        3 (const int)
+0:42  Sequence
+0:42    move second child to first child (temp 5-element array of float)
+0:42      'b5' (global 5-element array of float)
+0:42      Constant:
+0:42        3.400000
+0:42        4.200000
+0:42        5.000000
+0:42        5.200000
+0:42        1.100000
+0:67  Sequence
+0:67    move second child to first child (temp 3-component vector of float)
+0:67      'av3' (global 3-component vector of float)
+0:67      Construct vec3 (global 3-component vector of float)
+0:67        'vc1' (global float)
+0:67        'vc2' (global float)
+0:67        'vc3' (global float)
+0:68  Sequence
+0:68    move second child to first child (temp 3-component vector of float)
+0:68      'bv3' (global 3-component vector of float)
+0:68      Construct vec3 (global 3-component vector of float)
+0:68        'vc1' (global float)
+0:68        'vc2' (global float)
+0:68        'vc3' (global float)
+0:70  Function Definition: main( (global void)
+0:70    Function Parameters: 
+0:72    Sequence
+0:72      MemoryBarrier (global void)
+0:74      Test condition and select (temp void)
+0:74        Condition
+0:74        Compare Equal (temp bool)
+0:74          Constant:
+0:74            1 (const uint)
+0:74            2 (const uint)
+0:74            3.000000
+0:74            4.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            4.000000
+0:74            0.000000
+0:74            5.000000
+0:74            6.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            6.000000
+0:74            0.000000
+0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74        true case is null
+0:76      Test condition and select (temp void)
+0:76        Condition
+0:76        Constant:
+0:76          true (const bool)
+0:76        true case is null
+0:?   Linker Objects
+0:?     'a' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'b' (global 2X2 matrix of float)
+0:?     'c' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'a2' (global 2-element array of float)
+0:?     'b2' (global 2-component vector of float)
+0:?     'c2' (global 3X3 matrix of float)
+0:?     'd' (global 2X2 matrix of float)
+0:?     'e' (global structure{global float a, global int b})
+0:?     'e2' (global structure{global float a, global int b})
+0:?     'e3' (global structure{global float a, global int b})
+0:?     'a3' (global int)
+0:?     'b3' (global 2-element array of 4-component vector of float)
+0:?     'b4' (global 2-element array of 4-component vector of float)
+0:?     'c3' (global 4X2 matrix of float)
+0:?     'd2' (global implicitly-sized array of structure{global float s, global float t})
+0:?     'b5' (global 5-element array of float)
+0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'vc1' (global float)
+0:?     'vc2' (global float)
+0:?     'vc3' (global float)
+0:?     'av3' (global 3-component vector of float)
+0:?     'bv3' (global 3-component vector of float)
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation control stage: Contradictory layout vertices values
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation control stage: Types must match:
+    gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}"
+ERROR: Linking tessellation control stage: Types must match:
+    outa: "global 4-element array of int" versus "global 1-element array of int"
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    foo(
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation control stage: Types must match:
+    gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out 3-element array of block{out 4-component vector of float Position gl_Position}"
+
+Linked tessellation evaluation stage:
+
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives
+ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing
+ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_tessellation_shader
+vertices = 4
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Barrier (global void)
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'a' (temp int)
+0:14          Constant:
+0:14            5392 (const int)
+0:20      Sequence
+0:20        move second child to first child (temp 4-component vector of float)
+0:20          'p' (temp 4-component vector of float)
+0:20          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:20            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:20              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'ps' (temp float)
+0:21          gl_PointSize: direct index for structure (in float PointSize)
+0:21            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21              Constant:
+0:21                1 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'cd' (temp float)
+0:22          direct index (temp float ClipDistance)
+0:22            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:22              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:22                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:22                Constant:
+0:22                  1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'pvi' (temp int)
+0:24          'gl_PatchVerticesIn' (in int PatchVertices)
+0:25      Sequence
+0:25        move second child to first child (temp int)
+0:25          'pid' (temp int)
+0:25          'gl_PrimitiveID' (in int PrimitiveID)
+0:26      Sequence
+0:26        move second child to first child (temp int)
+0:26          'iid' (temp int)
+0:26          'gl_InvocationID' (in int InvocationID)
+0:28      move second child to first child (temp 4-component vector of float)
+0:28        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:28          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:28            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:28            'gl_InvocationID' (in int InvocationID)
+0:28          Constant:
+0:28            0 (const int)
+0:28        'p' (temp 4-component vector of float)
+0:29      move second child to first child (temp float)
+0:29        gl_PointSize: direct index for structure (out float PointSize)
+0:29          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:29            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:29            'gl_InvocationID' (in int InvocationID)
+0:29          Constant:
+0:29            1 (const int)
+0:29        'ps' (temp float)
+0:30      move second child to first child (temp float)
+0:30        direct index (temp float ClipDistance)
+0:30          gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)
+0:30            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:30              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:30              'gl_InvocationID' (in int InvocationID)
+0:30            Constant:
+0:30              2 (const int)
+0:30          Constant:
+0:30            1 (const int)
+0:30        'cd' (temp float)
+0:32      move second child to first child (temp float)
+0:32        direct index (patch temp float TessLevelOuter)
+0:32          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:32          Constant:
+0:32            3 (const int)
+0:32        Constant:
+0:32          3.200000
+0:33      move second child to first child (temp float)
+0:33        direct index (patch temp float TessLevelInner)
+0:33          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:33          Constant:
+0:33            1 (const int)
+0:33        Constant:
+0:33          1.300000
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      Barrier (global void)
+0:17      Sequence
+0:17        move second child to first child (temp int)
+0:17          'a' (temp int)
+0:17          Constant:
+0:17            5392 (const int)
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'p' (temp 4-component vector of float)
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              Constant:
+0:23                1 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'ps' (temp float)
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24              Constant:
+0:24                1 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:25      Sequence
+0:25        move second child to first child (temp float)
+0:25          'cd' (temp float)
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:25                Constant:
+0:25                  1 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'pvi' (temp int)
+0:27          'gl_PatchVerticesIn' (in int PatchVertices)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'pid' (temp int)
+0:28          'gl_PrimitiveID' (in int PrimitiveID)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'iid' (temp int)
+0:29          'gl_InvocationID' (in int InvocationID)
+0:31      move second child to first child (temp 4-component vector of float)
+0:31        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:31            'gl_InvocationID' (in int InvocationID)
+0:31          Constant:
+0:31            0 (const int)
+0:31        'p' (temp 4-component vector of float)
+0:32      move second child to first child (temp float)
+0:32        gl_PointSize: direct index for structure (out float PointSize)
+0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:32            'gl_InvocationID' (in int InvocationID)
+0:32          Constant:
+0:32            1 (const int)
+0:32        'ps' (temp float)
+0:33      move second child to first child (temp float)
+0:33        direct index (temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)
+0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_InvocationID' (in int InvocationID)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            1 (const int)
+0:33        'cd' (temp float)
+0:35      move second child to first child (temp float)
+0:35        direct index (patch temp float TessLevelOuter)
+0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35          Constant:
+0:35            3 (const int)
+0:35        Constant:
+0:35          3.200000
+0:36      move second child to first child (temp float)
+0:36        direct index (patch temp float TessLevelInner)
+0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36          Constant:
+0:36            1 (const int)
+0:36        Constant:
+0:36          1.300000
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Greater Than (temp bool)
+0:38          'a' (temp int)
+0:38          Constant:
+0:38            10 (const int)
+0:38        true case
+0:39        Barrier (global void)
+0:38        false case
+0:41        Barrier (global void)
+0:43      Barrier (global void)
+0:47      Loop with condition not tested first
+0:47        Loop Condition
+0:47        Compare Greater Than (temp bool)
+0:47          'a' (temp int)
+0:47          Constant:
+0:47            10 (const int)
+0:47        Loop Body
+0:46        Sequence
+0:46          Barrier (global void)
+0:49      switch
+0:49      condition
+0:49        'a' (temp int)
+0:49      body
+0:49        Sequence
+0:50          default: 
+0:?           Sequence
+0:51            Barrier (global void)
+0:52            Branch: Break
+0:54      Test condition and select (temp int)
+0:54        Condition
+0:54        Compare Less Than (temp bool)
+0:54          'a' (temp int)
+0:54          Constant:
+0:54            12 (const int)
+0:54        true case
+0:54        'a' (temp int)
+0:54        false case
+0:54        Comma (temp int)
+0:54          Barrier (global void)
+0:54          'a' (temp int)
+0:56      Sequence
+0:56        Barrier (global void)
+0:59      Branch: Return
+0:61      Barrier (global void)
+0:67  Function Definition: foo( (global void)
+0:67    Function Parameters: 
+0:69    Sequence
+0:69      gl_PointSize: direct index for structure (out float PointSize)
+0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:69          Constant:
+0:69            4 (const int)
+0:69        Constant:
+0:69          1 (const int)
+0:71      Barrier (global void)
+0:91  Function Definition: foop( (global void)
+0:91    Function Parameters: 
+0:?     Sequence
+0:95      multiply second child into first child (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:96      move second child to first child (temp 3-component vector of float)
+0:96        'pv3' (temp 3-component vector of float)
+0:96        fma (global 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:97      move second child to first child (temp double)
+0:97        'd' (temp double)
+0:97        fma (global double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'p' (temp 4-component vector of float)
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:17              Constant:
+0:17                1 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'ps' (temp float)
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:18              Constant:
+0:18                1 (const int)
+0:18            Constant:
+0:18              1 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'cd' (temp float)
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:19                Constant:
+0:19                  1 (const int)
+0:19              Constant:
+0:19                2 (const int)
+0:19            Constant:
+0:19              2 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp int)
+0:21          'pvi' (temp int)
+0:21          'gl_PatchVerticesIn' (in int PatchVertices)
+0:22      Sequence
+0:22        move second child to first child (temp int)
+0:22          'pid' (temp int)
+0:22          'gl_PrimitiveID' (in int PrimitiveID)
+0:23      Sequence
+0:23        move second child to first child (temp int)
+0:23          'iid' (temp int)
+0:23          'gl_InvocationID' (in int InvocationID)
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25            'gl_InvocationID' (in int InvocationID)
+0:25          Constant:
+0:25            0 (const int)
+0:25        'p' (temp 4-component vector of float)
+0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26        'gl_InvocationID' (in int InvocationID)
+0:34  Function Definition: foo( (global void)
+0:34    Function Parameters: 
+0:36    Sequence
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        logical-or (temp bool)
+0:36          Compare Not Equal (temp bool)
+0:36            Constant:
+0:36              -0.625000
+0:36              -0.500000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.125000
+0:36              0.000000
+0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36              Constant:
+0:36                0 (const int)
+0:37          Compare Not Equal (temp bool)
+0:37            Constant:
+0:37              0.375000
+0:37              0.500000
+0:37              0.625000
+0:37              0.750000
+0:37              0.625000
+0:37              0.750000
+0:37              0.875000
+0:37              -0.625000
+0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37              Constant:
+0:37                0 (const int)
+0:36        true case is null
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 4-element array of int)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'pv3' (temp 3-component vector of float)
+0:?     'pinbi' (patch out block{out int a})
+0:?     'a' (out 3-element array of int)
+0:?     'outb' (out 5-element array of int)
+0:?     'outc' (out 4-element array of int)
+0:?     'outf' (out float)
+0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Constant:
+0:12        0.000000
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'a' (temp int)
+0:14          Constant:
+0:14            1512 (const int)
+0:22      Sequence
+0:22        move second child to first child (temp 4-component vector of float)
+0:22          'p' (temp 4-component vector of float)
+0:22          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:22            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:22              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:22              Constant:
+0:22                1 (const int)
+0:22            Constant:
+0:22              0 (const int)
+0:23      Sequence
+0:23        move second child to first child (temp float)
+0:23          'ps' (temp float)
+0:23          gl_PointSize: direct index for structure (in float PointSize)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              Constant:
+0:23                1 (const int)
+0:23            Constant:
+0:23              1 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'cd' (temp float)
+0:24          direct index (temp float ClipDistance)
+0:24            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:24              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24                Constant:
+0:24                  1 (const int)
+0:24              Constant:
+0:24                2 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:26      Sequence
+0:26        move second child to first child (temp int)
+0:26          'pvi' (temp int)
+0:26          'gl_PatchVerticesIn' (in int PatchVertices)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'pid' (temp int)
+0:27          'gl_PrimitiveID' (in int PrimitiveID)
+0:28      Sequence
+0:28        move second child to first child (temp 3-component vector of float)
+0:28          'tc' (temp 3-component vector of float)
+0:28          'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:29      Sequence
+0:29        move second child to first child (temp float)
+0:29          'tlo' (temp float)
+0:29          direct index (patch temp float TessLevelOuter)
+0:29            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:29            Constant:
+0:29              3 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'tli' (temp float)
+0:30          direct index (patch temp float TessLevelInner)
+0:30            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:30            Constant:
+0:30              1 (const int)
+0:32      move second child to first child (temp 4-component vector of float)
+0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:32          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:32          Constant:
+0:32            0 (const uint)
+0:32        'p' (temp 4-component vector of float)
+0:33      move second child to first child (temp float)
+0:33        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:33          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:33          Constant:
+0:33            1 (const uint)
+0:33        'ps' (temp float)
+0:34      move second child to first child (temp float)
+0:34        direct index (temp float ClipDistance)
+0:34          gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)
+0:34            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:34            Constant:
+0:34              2 (const uint)
+0:34          Constant:
+0:34            2 (const int)
+0:34        'cd' (temp float)
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Constant:
+0:22        0.000000
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'a' (temp int)
+0:24          Constant:
+0:24            1512 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp 4-component vector of float)
+0:32          'p' (temp 4-component vector of float)
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:32              Constant:
+0:32                1 (const int)
+0:32            Constant:
+0:32              0 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp float)
+0:33          'ps' (temp float)
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              1 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          'cd' (temp float)
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34                Constant:
+0:34                  1 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Constant:
+0:34              2 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp int)
+0:36          'pvi' (temp int)
+0:36          'gl_PatchVerticesIn' (in int PatchVertices)
+0:37      Sequence
+0:37        move second child to first child (temp int)
+0:37          'pid' (temp int)
+0:37          'gl_PrimitiveID' (in int PrimitiveID)
+0:38      Sequence
+0:38        move second child to first child (temp 3-component vector of float)
+0:38          'tc' (temp 3-component vector of float)
+0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39      Sequence
+0:39        move second child to first child (temp float)
+0:39          'tlo' (temp float)
+0:39          direct index (patch temp float TessLevelOuter)
+0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39            Constant:
+0:39              3 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'tli' (temp float)
+0:40          direct index (patch temp float TessLevelInner)
+0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40            Constant:
+0:40              1 (const int)
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:42          Constant:
+0:42            0 (const uint)
+0:42        'p' (temp 4-component vector of float)
+0:43      move second child to first child (temp float)
+0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:43          Constant:
+0:43            1 (const uint)
+0:43        'ps' (temp float)
+0:44      move second child to first child (temp float)
+0:44        direct index (temp float ClipDistance)
+0:44          gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)
+0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:44            Constant:
+0:44              2 (const uint)
+0:44          Constant:
+0:44            2 (const int)
+0:44        'cd' (temp float)
+0:4  Sequence
+0:4    move second child to first child (temp 2X2 matrix of float)
+0:4      'b' (global 2X2 matrix of float)
+0:4      Constant:
+0:4        1.000000
+0:4        0.000000
+0:4        0.000000
+0:4        1.000000
+0:15  Sequence
+0:15    move second child to first child (temp structure{global float a, global int b})
+0:15      'e' (global structure{global float a, global int b})
+0:15      Constant:
+0:15        1.200000
+0:15        2 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp structure{global float a, global int b})
+0:20      'e2' (global structure{global float a, global int b})
+0:20      Constant:
+0:20        1.000000
+0:20        3 (const int)
+0:42  Sequence
+0:42    move second child to first child (temp 5-element array of float)
+0:42      'b5' (global 5-element array of float)
+0:42      Constant:
+0:42        3.400000
+0:42        4.200000
+0:42        5.000000
+0:42        5.200000
+0:42        1.100000
+0:67  Sequence
+0:67    move second child to first child (temp 3-component vector of float)
+0:67      'av3' (global 3-component vector of float)
+0:67      Construct vec3 (global 3-component vector of float)
+0:67        'vc1' (global float)
+0:67        'vc2' (global float)
+0:67        'vc3' (global float)
+0:68  Sequence
+0:68    move second child to first child (temp 3-component vector of float)
+0:68      'bv3' (global 3-component vector of float)
+0:68      Construct vec3 (global 3-component vector of float)
+0:68        'vc1' (global float)
+0:68        'vc2' (global float)
+0:68        'vc3' (global float)
+0:70  Function Definition: main( (global void)
+0:70    Function Parameters: 
+0:72    Sequence
+0:72      MemoryBarrier (global void)
+0:74      Test condition and select (temp void)
+0:74        Condition
+0:74        Compare Equal (temp bool)
+0:74          Constant:
+0:74            1 (const uint)
+0:74            2 (const uint)
+0:74            3.000000
+0:74            4.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            4.000000
+0:74            0.000000
+0:74            5.000000
+0:74            6.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            6.000000
+0:74            0.000000
+0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74        true case is null
+0:76      Test condition and select (temp void)
+0:76        Condition
+0:76        Constant:
+0:76          true (const bool)
+0:76        true case is null
+0:?   Linker Objects
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'badp1' (smooth patch in 4-component vector of float)
+0:?     'badp2' (flat patch in 4-component vector of float)
+0:?     'badp3' (noperspective patch in 4-component vector of float)
+0:?     'badp4' (patch sample in 3-component vector of float)
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'bla' (in block{in int f})
+0:?     'blb' (in 32-element array of block{in int f})
+0:?     'blc' (in 32-element array of block{in int f})
+0:?     'bld' (in 32-element array of block{in int f})
+0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:?     'pinbi' (patch in block{in int a})
+0:?     'a' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'b' (global 2X2 matrix of float)
+0:?     'c' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'a2' (global 2-element array of float)
+0:?     'b2' (global 2-component vector of float)
+0:?     'c2' (global 3X3 matrix of float)
+0:?     'd' (global 2X2 matrix of float)
+0:?     'e' (global structure{global float a, global int b})
+0:?     'e2' (global structure{global float a, global int b})
+0:?     'e3' (global structure{global float a, global int b})
+0:?     'a3' (global int)
+0:?     'b3' (global 2-element array of 4-component vector of float)
+0:?     'b4' (global 2-element array of 4-component vector of float)
+0:?     'c3' (global 4X2 matrix of float)
+0:?     'd2' (global 1-element array of structure{global float s, global float t})
+0:?     'b5' (global 5-element array of float)
+0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'vc1' (global float)
+0:?     'vc2' (global float)
+0:?     'vc3' (global float)
+0:?     'av3' (global 3-component vector of float)
+0:?     'bv3' (global 3-component vector of float)
+
diff --git a/Test/baseResults/150.vert.out b/Test/baseResults/150.vert.out
index 1650102..a82e789 100644
--- a/Test/baseResults/150.vert.out
+++ b/Test/baseResults/150.vert.out
@@ -1,95 +1,95 @@
-150.vert

-ERROR: 0:22: 'a' : cannot redeclare a user-block member array 

-ERROR: 0:3001: '#error' : line of this error should be 3001  

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 150

-ERROR: node is still EOpNull!

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      move second child to first child (temp 4-component vector of float)

-0:11        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)

-0:11          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:11          Constant:

-0:11            0 (const uint)

-0:11        'iv4' (in 4-component vector of float)

-0:12      move second child to first child (temp float)

-0:12        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:12          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:12          Constant:

-0:12            1 (const uint)

-0:12        'ps' (uniform float)

-0:13      move second child to first child (temp float)

-0:13        direct index (temp float ClipDistance)

-0:13          gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance)

-0:13            'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:13            Constant:

-0:13              2 (const uint)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float)

-0:13          'iv4' (in 4-component vector of float)

-0:13          Constant:

-0:13            0 (const int)

-0:14      move second child to first child (temp 4-component vector of float)

-0:14        gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex)

-0:14          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:14          Constant:

-0:14            3 (const uint)

-0:14        'iv4' (in 4-component vector of float)

-0:?   Linker Objects

-0:?     'iv4' (in 4-component vector of float)

-0:?     'ps' (uniform float)

-0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of int a})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)

-

-Shader version: 150

-ERROR: node is still EOpNull!

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      move second child to first child (temp 4-component vector of float)

-0:11        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)

-0:11          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:11          Constant:

-0:11            0 (const uint)

-0:11        'iv4' (in 4-component vector of float)

-0:12      move second child to first child (temp float)

-0:12        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:12          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:12          Constant:

-0:12            1 (const uint)

-0:12        'ps' (uniform float)

-0:13      move second child to first child (temp float)

-0:13        direct index (temp float ClipDistance)

-0:13          gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance)

-0:13            'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:13            Constant:

-0:13              2 (const uint)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float)

-0:13          'iv4' (in 4-component vector of float)

-0:13          Constant:

-0:13            0 (const int)

-0:14      move second child to first child (temp 4-component vector of float)

-0:14        gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex)

-0:14          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:14          Constant:

-0:14            3 (const uint)

-0:14        'iv4' (in 4-component vector of float)

-0:?   Linker Objects

-0:?     'iv4' (in 4-component vector of float)

-0:?     'ps' (uniform float)

-0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of int a})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+150.vert
+ERROR: 0:22: 'a' : cannot redeclare a user-block member array 
+ERROR: 0:3001: '#error' : line of this error should be 3001  
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 150
+ERROR: node is still EOpNull!
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      move second child to first child (temp 4-component vector of float)
+0:11        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:11          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:11          Constant:
+0:11            0 (const uint)
+0:11        'iv4' (in 4-component vector of float)
+0:12      move second child to first child (temp float)
+0:12        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:12          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:12          Constant:
+0:12            1 (const uint)
+0:12        'ps' (uniform float)
+0:13      move second child to first child (temp float)
+0:13        direct index (temp float ClipDistance)
+0:13          gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance)
+0:13            'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:13            Constant:
+0:13              2 (const uint)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float)
+0:13          'iv4' (in 4-component vector of float)
+0:13          Constant:
+0:13            0 (const int)
+0:14      move second child to first child (temp 4-component vector of float)
+0:14        gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex)
+0:14          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:14          Constant:
+0:14            3 (const uint)
+0:14        'iv4' (in 4-component vector of float)
+0:?   Linker Objects
+0:?     'iv4' (in 4-component vector of float)
+0:?     'ps' (uniform float)
+0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of int a})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)
+
+Shader version: 150
+ERROR: node is still EOpNull!
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      move second child to first child (temp 4-component vector of float)
+0:11        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:11          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:11          Constant:
+0:11            0 (const uint)
+0:11        'iv4' (in 4-component vector of float)
+0:12      move second child to first child (temp float)
+0:12        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:12          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:12          Constant:
+0:12            1 (const uint)
+0:12        'ps' (uniform float)
+0:13      move second child to first child (temp float)
+0:13        direct index (temp float ClipDistance)
+0:13          gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance)
+0:13            'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:13            Constant:
+0:13              2 (const uint)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float)
+0:13          'iv4' (in 4-component vector of float)
+0:13          Constant:
+0:13            0 (const int)
+0:14      move second child to first child (temp 4-component vector of float)
+0:14        gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex)
+0:14          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:14          Constant:
+0:14            3 (const uint)
+0:14        'iv4' (in 4-component vector of float)
+0:?   Linker Objects
+0:?     'iv4' (in 4-component vector of float)
+0:?     'ps' (uniform float)
+0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of int a})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out
index a21667e..6cc2103 100644
--- a/Test/baseResults/300.frag.out
+++ b/Test/baseResults/300.frag.out
@@ -1,755 +1,755 @@
-300.frag

-ERROR: 0:2: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:30: 'noperspective' : Reserved word. 

-ERROR: 0:30: 'noperspective' : not supported with this profile: es

-ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads

-ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout

-ERROR: 0:60: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:62: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:63: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:64: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:66: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:68: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:69: 'variable indexing sampler array' : not supported for this version or the enabled extensions 

-ERROR: 0:73: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:83: 'double' : Reserved word. 

-ERROR: 0:83: 'double' : not supported with this profile: es

-ERROR: 0:84: 'dvec2' : Reserved word. 

-ERROR: 0:84: 'double vector' : not supported with this profile: es

-ERROR: 0:85: 'dvec3' : Reserved word. 

-ERROR: 0:85: 'double vector' : not supported with this profile: es

-ERROR: 0:86: 'dvec4' : Reserved word. 

-ERROR: 0:86: 'double vector' : not supported with this profile: es

-ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled extensions 

-ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions 

-ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions 

-ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions 

-ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions 

-ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es

-ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es

-ERROR: 0:119: '==' : can't use with samplers or structs containing samplers 

-ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers 

-ERROR: 0:121: '==' : can't use with samplers or structs containing samplers 

-ERROR: 0:121: '==' :  wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global lowp sampler2D' and a right operand of type 'global lowp sampler2D' (or there is no acceptable conversion)

-ERROR: 0:122: '=' : can't use with samplers or structs containing samplers 

-ERROR: 0:123: '==' : can't use with samplers or structs containing samplers 

-ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:148: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 

-ERROR: 0:150: 'early_fragment_tests' : not supported for this version or the enabled extensions 

-ERROR: 0:156: 'invariant' : can only apply to an output 

-ERROR: 0:157: 'invariant' : can only apply to an output 

-ERROR: 0:158: 'invariant' : can only apply to an output 

-ERROR: 0:160: 'imageBuffer' : Reserved word. 

-ERROR: 0:160: '' :  syntax error

-ERROR: 44 compilation errors.  No code generated.

-

-

-Shader version: 300

-using early_fragment_tests

-ERROR: node is still EOpNull!

-0:53  Function Definition: main( (global void)

-0:53    Function Parameters: 

-0:?     Sequence

-0:57      move second child to first child (temp lowp 4-component vector of float)

-0:57        'v' (temp lowp 4-component vector of float)

-0:57        texture (global lowp 4-component vector of float)

-0:57          's2D' (uniform lowp sampler2D)

-0:57          'c2D' (smooth in lowp 2-component vector of float)

-0:58      move second child to first child (temp lowp 4-component vector of float)

-0:58        'v' (temp lowp 4-component vector of float)

-0:58        textureProj (global lowp 4-component vector of float)

-0:58          's3D' (uniform lowp sampler3D)

-0:58          'c4D' (smooth temp lowp 4-component vector of float)

-0:59      move second child to first child (temp lowp 4-component vector of float)

-0:59        'v' (temp lowp 4-component vector of float)

-0:59        textureLod (global lowp 4-component vector of float)

-0:59          's2DArray' (uniform lowp sampler2DArray)

-0:59          'c3D' (smooth in lowp 3-component vector of float)

-0:59          Constant:

-0:59            1.200000

-0:60      move second child to first child (temp lowp float)

-0:60        'f' (temp lowp float)

-0:60        textureOffset (global lowp float)

-0:60          's2DShadow' (uniform lowp sampler2DShadow)

-0:60          'c3D' (smooth in lowp 3-component vector of float)

-0:60          'ic2D' (flat in mediump 2-component vector of int)

-0:60          'c1D' (smooth in lowp float)

-0:61      move second child to first child (temp lowp 4-component vector of float)

-0:61        'v' (temp lowp 4-component vector of float)

-0:61        textureFetch (global lowp 4-component vector of float)

-0:61          's3D' (uniform lowp sampler3D)

-0:61          'ic3D' (flat in mediump 3-component vector of int)

-0:61          'ic1D' (flat in mediump int)

-0:62      move second child to first child (temp lowp 4-component vector of float)

-0:62        'v' (temp lowp 4-component vector of float)

-0:62        textureFetchOffset (global lowp 4-component vector of float)

-0:62          direct index (temp lowp sampler2D)

-0:62            'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:62            Constant:

-0:62              2 (const int)

-0:62          'ic2D' (flat in mediump 2-component vector of int)

-0:62          Constant:

-0:62            4 (const int)

-0:62          'ic2D' (flat in mediump 2-component vector of int)

-0:63      move second child to first child (temp lowp float)

-0:63        'f' (temp lowp float)

-0:63        textureLodOffset (global lowp float)

-0:63          's2DShadow' (uniform lowp sampler2DShadow)

-0:63          'c3D' (smooth in lowp 3-component vector of float)

-0:63          'c1D' (smooth in lowp float)

-0:63          'ic2D' (flat in mediump 2-component vector of int)

-0:64      move second child to first child (temp lowp 4-component vector of float)

-0:64        'v' (temp lowp 4-component vector of float)

-0:64        textureProjLodOffset (global lowp 4-component vector of float)

-0:64          's2D' (uniform lowp sampler2D)

-0:64          'c3D' (smooth in lowp 3-component vector of float)

-0:64          'c1D' (smooth in lowp float)

-0:64          'ic2D' (flat in mediump 2-component vector of int)

-0:65      move second child to first child (temp lowp 4-component vector of float)

-0:65        'v' (temp lowp 4-component vector of float)

-0:65        textureGrad (global lowp 4-component vector of float)

-0:65          'sCube' (uniform lowp samplerCube)

-0:65          'c3D' (smooth in lowp 3-component vector of float)

-0:65          'c3D' (smooth in lowp 3-component vector of float)

-0:65          'c3D' (smooth in lowp 3-component vector of float)

-0:66      move second child to first child (temp lowp float)

-0:66        'f' (temp lowp float)

-0:66        textureGradOffset (global lowp float)

-0:66          's2DArrayShadow' (uniform lowp sampler2DArrayShadow)

-0:66          'c4D' (smooth temp lowp 4-component vector of float)

-0:66          'c2D' (smooth in lowp 2-component vector of float)

-0:66          'c2D' (smooth in lowp 2-component vector of float)

-0:66          'ic2D' (flat in mediump 2-component vector of int)

-0:67      move second child to first child (temp lowp 4-component vector of float)

-0:67        'v' (temp lowp 4-component vector of float)

-0:67        textureProjGrad (global lowp 4-component vector of float)

-0:67          's3D' (uniform lowp sampler3D)

-0:67          'c4D' (smooth temp lowp 4-component vector of float)

-0:67          'c3D' (smooth in lowp 3-component vector of float)

-0:67          'c3D' (smooth in lowp 3-component vector of float)

-0:68      move second child to first child (temp lowp 4-component vector of float)

-0:68        'v' (temp lowp 4-component vector of float)

-0:68        textureProjGradOffset (global lowp 4-component vector of float)

-0:68          's2D' (uniform lowp sampler2D)

-0:68          'c3D' (smooth in lowp 3-component vector of float)

-0:68          'c2D' (smooth in lowp 2-component vector of float)

-0:68          'c2D' (smooth in lowp 2-component vector of float)

-0:68          'ic2D' (flat in mediump 2-component vector of int)

-0:69      move second child to first child (temp lowp 4-component vector of float)

-0:69        'v' (temp lowp 4-component vector of float)

-0:69        texture (global lowp 4-component vector of float)

-0:69          indirect index (temp lowp sampler2D)

-0:69            'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:69            'ic1D' (flat in mediump int)

-0:69          'c2D' (smooth in lowp 2-component vector of float)

-0:72      move second child to first child (temp mediump 4-component vector of int)

-0:72        'iv' (temp mediump 4-component vector of int)

-0:72        texture (global mediump 4-component vector of int)

-0:72          'is2D' (uniform lowp isampler2D)

-0:72          'c2D' (smooth in lowp 2-component vector of float)

-0:73      move second child to first child (temp mediump 4-component vector of int)

-0:73        'iv' (temp mediump 4-component vector of int)

-0:73        textureProjOffset (global mediump 4-component vector of int)

-0:73          'is2D' (uniform lowp isampler2D)

-0:73          'c4D' (smooth temp lowp 4-component vector of float)

-0:73          'ic2D' (flat in mediump 2-component vector of int)

-0:74      move second child to first child (temp mediump 4-component vector of int)

-0:74        'iv' (temp mediump 4-component vector of int)

-0:74        textureProjLod (global mediump 4-component vector of int)

-0:74          'is2D' (uniform lowp isampler2D)

-0:74          'c3D' (smooth in lowp 3-component vector of float)

-0:74          'c1D' (smooth in lowp float)

-0:75      move second child to first child (temp mediump 4-component vector of int)

-0:75        'iv' (temp mediump 4-component vector of int)

-0:75        textureProjGrad (global mediump 4-component vector of int)

-0:75          'is2D' (uniform lowp isampler2D)

-0:75          'c3D' (smooth in lowp 3-component vector of float)

-0:75          'c2D' (smooth in lowp 2-component vector of float)

-0:75          'c2D' (smooth in lowp 2-component vector of float)

-0:76      move second child to first child (temp mediump 4-component vector of int)

-0:76        'iv' (temp mediump 4-component vector of int)

-0:76        texture (global mediump 4-component vector of int)

-0:76          'is3D' (uniform lowp isampler3D)

-0:76          'c3D' (smooth in lowp 3-component vector of float)

-0:76          Constant:

-0:76            4.200000

-0:77      move second child to first child (temp mediump 4-component vector of int)

-0:77        'iv' (temp mediump 4-component vector of int)

-0:77        textureLod (global mediump 4-component vector of int)

-0:77          'isCube' (uniform lowp isamplerCube)

-0:77          'c3D' (smooth in lowp 3-component vector of float)

-0:77          'c1D' (smooth in lowp float)

-0:78      move second child to first child (temp mediump 4-component vector of int)

-0:78        'iv' (temp mediump 4-component vector of int)

-0:78        textureFetch (global mediump 4-component vector of int)

-0:78          'is2DArray' (uniform lowp isampler2DArray)

-0:78          'ic3D' (flat in mediump 3-component vector of int)

-0:78          'ic1D' (flat in mediump int)

-0:80      move second child to first child (temp highp 2-component vector of int)

-0:80        vector swizzle (temp mediump 2-component vector of int)

-0:80          'iv' (temp mediump 4-component vector of int)

-0:80          Sequence

-0:80            Constant:

-0:80              0 (const int)

-0:80            Constant:

-0:80              1 (const int)

-0:80        textureSize (global highp 2-component vector of int)

-0:80          'sCubeShadow' (uniform lowp samplerCubeShadow)

-0:80          Constant:

-0:80            2 (const int)

-0:88      add second child into first child (temp highp float)

-0:88        'f' (temp lowp float)

-0:88        direct index (temp highp float)

-0:88          'gl_FragCoord' (gl_FragCoord highp 4-component vector of float FragCoord)

-0:88          Constant:

-0:88            1 (const int)

-0:89      move second child to first child (temp highp float)

-0:89        'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:89        'f' (temp lowp float)

-0:91      move second child to first child (temp lowp 3-component vector of float)

-0:91        'sc' (out lowp 3-component vector of float)

-0:91        c: direct index for structure (global lowp 3-component vector of float)

-0:91          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})

-0:91          Constant:

-0:91            0 (const int)

-0:92      move second child to first child (temp lowp float)

-0:92        'sf' (out lowp float)

-0:92        f: direct index for structure (global lowp float)

-0:92          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})

-0:92          Constant:

-0:92            1 (const int)

-0:94      add (temp lowp 2-component vector of float)

-0:94        hyp. sine (global lowp float)

-0:94          'c1D' (smooth in lowp float)

-0:95        vector-scale (temp lowp 2-component vector of float)

-0:95          hyp. cosine (global lowp float)

-0:95            'c1D' (smooth in lowp float)

-0:95          hyp. tangent (global lowp 2-component vector of float)

-0:95            'c2D' (smooth in lowp 2-component vector of float)

-0:96      add (temp lowp 4-component vector of float)

-0:96        arc hyp. sine (global lowp 4-component vector of float)

-0:96          'c4D' (smooth temp lowp 4-component vector of float)

-0:96        arc hyp. cosine (global lowp 4-component vector of float)

-0:96          'c4D' (smooth temp lowp 4-component vector of float)

-0:97      arc hyp. tangent (global lowp 3-component vector of float)

-0:97        'c3D' (smooth in lowp 3-component vector of float)

-0:108  Function Definition: foo( (global void)

-0:108    Function Parameters: 

-0:110    Sequence

-0:110      move second child to first child (temp lowp 4-component vector of float)

-0:110        direct index (temp lowp 4-component vector of float)

-0:110          'colors' (out 4-element array of lowp 4-component vector of float)

-0:110          Constant:

-0:110            2 (const int)

-0:110        'c4D' (smooth temp lowp 4-component vector of float)

-0:111      move second child to first child (temp lowp 4-component vector of float)

-0:111        indirect index (temp lowp 4-component vector of float)

-0:111          'colors' (out 4-element array of lowp 4-component vector of float)

-0:111          'ic1D' (flat in mediump int)

-0:111        'c4D' (smooth temp lowp 4-component vector of float)

-0:117  Function Definition: foo13(struct-s-i1-s211; (global void)

-0:117    Function Parameters: 

-0:117      'inSt2' (in structure{global mediump int i, global lowp sampler2D s})

-0:119    Sequence

-0:119      Test condition and select (temp void)

-0:119        Condition

-0:119        Compare Equal (temp bool)

-0:119          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:119          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:119        true case is null

-0:120      Test condition and select (temp void)

-0:120        Condition

-0:120        Compare Not Equal (temp bool)

-0:120          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:120          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:120        true case is null

-0:121      Constant:

-0:121        false (const bool)

-0:122      move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})

-0:122        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})

-0:122        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:123      Compare Equal (temp bool)

-0:123        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})

-0:123        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:126  Function Definition: foo23( (global void)

-0:126    Function Parameters: 

-0:128    Sequence

-0:128      textureOffset (global lowp float)

-0:128        's2DShadow' (uniform lowp sampler2DShadow)

-0:128        'c3D' (smooth in lowp 3-component vector of float)

-0:128        Constant:

-0:128          -8 (const int)

-0:128          7 (const int)

-0:128        'c1D' (smooth in lowp float)

-0:129      textureOffset (global lowp float)

-0:129        's2DShadow' (uniform lowp sampler2DShadow)

-0:129        'c3D' (smooth in lowp 3-component vector of float)

-0:129        Constant:

-0:129          -9 (const int)

-0:129          8 (const int)

-0:129        'c1D' (smooth in lowp float)

-0:132  Function Definition: foo324( (global void)

-0:132    Function Parameters: 

-0:134    Sequence

-0:134      Sequence

-0:134        move second child to first child (temp lowp float)

-0:134          'p' (temp lowp float)

-0:134          Constant:

-0:134            210.712306

-0:135      add second child into first child (temp lowp float)

-0:135        'p' (temp lowp float)

-0:135        Constant:

-0:135          0.389418

-0:136      add second child into first child (temp lowp float)

-0:136        'p' (temp lowp float)

-0:136        Constant:

-0:136          5.000000

-0:137      add second child into first child (temp lowp float)

-0:137        'p' (temp lowp float)

-0:137        Constant:

-0:137          13.000000

-0:138      Sequence

-0:138        move second child to first child (temp lowp 3-component vector of float)

-0:138          'c3' (temp lowp 3-component vector of float)

-0:138          Constant:

-0:138            -15.000000

-0:138            -2.000000

-0:138            39.000000

-0:139      add second child into first child (temp lowp 3-component vector of float)

-0:139        'c3' (temp lowp 3-component vector of float)

-0:139        Constant:

-0:139          -1.000000

-0:139          -2.000000

-0:139          -3.000000

-0:140      add second child into first child (temp lowp 3-component vector of float)

-0:140        'c3' (temp lowp 3-component vector of float)

-0:140        Constant:

-0:140          1.000000

-0:140          2.000000

-0:140          3.000000

-0:141      Sequence

-0:141        move second child to first child (temp lowp 2-component vector of float)

-0:141          'c2' (temp lowp 2-component vector of float)

-0:141          Constant:

-0:141            1.000000

-0:141            -3.000000

-0:142      add second child into first child (temp lowp 2-component vector of float)

-0:142        'c2' (temp lowp 2-component vector of float)

-0:142        Constant:

-0:142          1.000000

-0:142          -3.000000

-0:143      add second child into first child (temp lowp 2-component vector of float)

-0:143        'c2' (temp lowp 2-component vector of float)

-0:143        Constant:

-0:143          3.000000

-0:143          -8.544004

-0:144      add second child into first child (temp lowp 2-component vector of float)

-0:144        'c2' (temp lowp 2-component vector of float)

-0:144        Constant:

-0:144          0.000000

-0:144          0.000000

-0:145      Sequence

-0:145        move second child to first child (temp lowp 3X2 matrix of float)

-0:145          'm32' (temp lowp 3X2 matrix of float)

-0:145          Constant:

-0:145            10.000000

-0:145            15.000000

-0:145            14.000000

-0:145            21.000000

-0:145            22.000000

-0:145            33.000000

-0:?   Linker Objects

-0:?     's2D' (uniform lowp sampler2D)

-0:?     's3D' (uniform lowp sampler3D)

-0:?     'sCube' (uniform lowp samplerCube)

-0:?     'sCubeShadow' (uniform lowp samplerCubeShadow)

-0:?     's2DShadow' (uniform lowp sampler2DShadow)

-0:?     's2DArray' (uniform lowp sampler2DArray)

-0:?     's2DArrayShadow' (uniform lowp sampler2DArrayShadow)

-0:?     'is2D' (uniform lowp isampler2D)

-0:?     'is3D' (uniform lowp isampler3D)

-0:?     'isCube' (uniform lowp isamplerCube)

-0:?     'is2DArray' (uniform lowp isampler2DArray)

-0:?     'us2D' (uniform lowp usampler2D)

-0:?     'us3D' (uniform lowp usampler3D)

-0:?     'usCube' (uniform lowp usamplerCube)

-0:?     'us2DArray' (uniform lowp usampler2DArray)

-0:?     'c1D' (smooth in lowp float)

-0:?     'c2D' (smooth in lowp 2-component vector of float)

-0:?     'c3D' (smooth in lowp 3-component vector of float)

-0:?     'c4D' (smooth temp lowp 4-component vector of float)

-0:?     'ic1D' (flat in mediump int)

-0:?     'ic2D' (flat in mediump 2-component vector of int)

-0:?     'ic3D' (flat in mediump 3-component vector of int)

-0:?     'ic4D' (flat in mediump 4-component vector of int)

-0:?     'badv' (noperspective in lowp 4-component vector of float)

-0:?     'bads' (smooth in lowp sampler2D)

-0:?     'badout' (smooth in structure{global mediump int i, global lowp sampler2D s})

-0:?     's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})

-0:?     'sc' (out lowp 3-component vector of float)

-0:?     'sf' (out lowp float)

-0:?     'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:?     'multiInst' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int b, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int c})

-0:?     'colors' (out 4-element array of lowp 4-component vector of float)

-0:?     'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:?     'st2' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:?     'fooinv' (invariant smooth in lowp 4-component vector of float)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers

-

-Shader version: 300

-using early_fragment_tests

-ERROR: node is still EOpNull!

-0:53  Function Definition: main( (global void)

-0:53    Function Parameters: 

-0:?     Sequence

-0:57      move second child to first child (temp lowp 4-component vector of float)

-0:57        'v' (temp lowp 4-component vector of float)

-0:57        texture (global lowp 4-component vector of float)

-0:57          's2D' (uniform lowp sampler2D)

-0:57          'c2D' (smooth in lowp 2-component vector of float)

-0:58      move second child to first child (temp lowp 4-component vector of float)

-0:58        'v' (temp lowp 4-component vector of float)

-0:58        textureProj (global lowp 4-component vector of float)

-0:58          's3D' (uniform lowp sampler3D)

-0:58          'c4D' (smooth temp lowp 4-component vector of float)

-0:59      move second child to first child (temp lowp 4-component vector of float)

-0:59        'v' (temp lowp 4-component vector of float)

-0:59        textureLod (global lowp 4-component vector of float)

-0:59          's2DArray' (uniform lowp sampler2DArray)

-0:59          'c3D' (smooth in lowp 3-component vector of float)

-0:59          Constant:

-0:59            1.200000

-0:60      move second child to first child (temp lowp float)

-0:60        'f' (temp lowp float)

-0:60        textureOffset (global lowp float)

-0:60          's2DShadow' (uniform lowp sampler2DShadow)

-0:60          'c3D' (smooth in lowp 3-component vector of float)

-0:60          'ic2D' (flat in mediump 2-component vector of int)

-0:60          'c1D' (smooth in lowp float)

-0:61      move second child to first child (temp lowp 4-component vector of float)

-0:61        'v' (temp lowp 4-component vector of float)

-0:61        textureFetch (global lowp 4-component vector of float)

-0:61          's3D' (uniform lowp sampler3D)

-0:61          'ic3D' (flat in mediump 3-component vector of int)

-0:61          'ic1D' (flat in mediump int)

-0:62      move second child to first child (temp lowp 4-component vector of float)

-0:62        'v' (temp lowp 4-component vector of float)

-0:62        textureFetchOffset (global lowp 4-component vector of float)

-0:62          direct index (temp lowp sampler2D)

-0:62            'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:62            Constant:

-0:62              2 (const int)

-0:62          'ic2D' (flat in mediump 2-component vector of int)

-0:62          Constant:

-0:62            4 (const int)

-0:62          'ic2D' (flat in mediump 2-component vector of int)

-0:63      move second child to first child (temp lowp float)

-0:63        'f' (temp lowp float)

-0:63        textureLodOffset (global lowp float)

-0:63          's2DShadow' (uniform lowp sampler2DShadow)

-0:63          'c3D' (smooth in lowp 3-component vector of float)

-0:63          'c1D' (smooth in lowp float)

-0:63          'ic2D' (flat in mediump 2-component vector of int)

-0:64      move second child to first child (temp lowp 4-component vector of float)

-0:64        'v' (temp lowp 4-component vector of float)

-0:64        textureProjLodOffset (global lowp 4-component vector of float)

-0:64          's2D' (uniform lowp sampler2D)

-0:64          'c3D' (smooth in lowp 3-component vector of float)

-0:64          'c1D' (smooth in lowp float)

-0:64          'ic2D' (flat in mediump 2-component vector of int)

-0:65      move second child to first child (temp lowp 4-component vector of float)

-0:65        'v' (temp lowp 4-component vector of float)

-0:65        textureGrad (global lowp 4-component vector of float)

-0:65          'sCube' (uniform lowp samplerCube)

-0:65          'c3D' (smooth in lowp 3-component vector of float)

-0:65          'c3D' (smooth in lowp 3-component vector of float)

-0:65          'c3D' (smooth in lowp 3-component vector of float)

-0:66      move second child to first child (temp lowp float)

-0:66        'f' (temp lowp float)

-0:66        textureGradOffset (global lowp float)

-0:66          's2DArrayShadow' (uniform lowp sampler2DArrayShadow)

-0:66          'c4D' (smooth temp lowp 4-component vector of float)

-0:66          'c2D' (smooth in lowp 2-component vector of float)

-0:66          'c2D' (smooth in lowp 2-component vector of float)

-0:66          'ic2D' (flat in mediump 2-component vector of int)

-0:67      move second child to first child (temp lowp 4-component vector of float)

-0:67        'v' (temp lowp 4-component vector of float)

-0:67        textureProjGrad (global lowp 4-component vector of float)

-0:67          's3D' (uniform lowp sampler3D)

-0:67          'c4D' (smooth temp lowp 4-component vector of float)

-0:67          'c3D' (smooth in lowp 3-component vector of float)

-0:67          'c3D' (smooth in lowp 3-component vector of float)

-0:68      move second child to first child (temp lowp 4-component vector of float)

-0:68        'v' (temp lowp 4-component vector of float)

-0:68        textureProjGradOffset (global lowp 4-component vector of float)

-0:68          's2D' (uniform lowp sampler2D)

-0:68          'c3D' (smooth in lowp 3-component vector of float)

-0:68          'c2D' (smooth in lowp 2-component vector of float)

-0:68          'c2D' (smooth in lowp 2-component vector of float)

-0:68          'ic2D' (flat in mediump 2-component vector of int)

-0:69      move second child to first child (temp lowp 4-component vector of float)

-0:69        'v' (temp lowp 4-component vector of float)

-0:69        texture (global lowp 4-component vector of float)

-0:69          indirect index (temp lowp sampler2D)

-0:69            'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:69            'ic1D' (flat in mediump int)

-0:69          'c2D' (smooth in lowp 2-component vector of float)

-0:72      move second child to first child (temp mediump 4-component vector of int)

-0:72        'iv' (temp mediump 4-component vector of int)

-0:72        texture (global mediump 4-component vector of int)

-0:72          'is2D' (uniform lowp isampler2D)

-0:72          'c2D' (smooth in lowp 2-component vector of float)

-0:73      move second child to first child (temp mediump 4-component vector of int)

-0:73        'iv' (temp mediump 4-component vector of int)

-0:73        textureProjOffset (global mediump 4-component vector of int)

-0:73          'is2D' (uniform lowp isampler2D)

-0:73          'c4D' (smooth temp lowp 4-component vector of float)

-0:73          'ic2D' (flat in mediump 2-component vector of int)

-0:74      move second child to first child (temp mediump 4-component vector of int)

-0:74        'iv' (temp mediump 4-component vector of int)

-0:74        textureProjLod (global mediump 4-component vector of int)

-0:74          'is2D' (uniform lowp isampler2D)

-0:74          'c3D' (smooth in lowp 3-component vector of float)

-0:74          'c1D' (smooth in lowp float)

-0:75      move second child to first child (temp mediump 4-component vector of int)

-0:75        'iv' (temp mediump 4-component vector of int)

-0:75        textureProjGrad (global mediump 4-component vector of int)

-0:75          'is2D' (uniform lowp isampler2D)

-0:75          'c3D' (smooth in lowp 3-component vector of float)

-0:75          'c2D' (smooth in lowp 2-component vector of float)

-0:75          'c2D' (smooth in lowp 2-component vector of float)

-0:76      move second child to first child (temp mediump 4-component vector of int)

-0:76        'iv' (temp mediump 4-component vector of int)

-0:76        texture (global mediump 4-component vector of int)

-0:76          'is3D' (uniform lowp isampler3D)

-0:76          'c3D' (smooth in lowp 3-component vector of float)

-0:76          Constant:

-0:76            4.200000

-0:77      move second child to first child (temp mediump 4-component vector of int)

-0:77        'iv' (temp mediump 4-component vector of int)

-0:77        textureLod (global mediump 4-component vector of int)

-0:77          'isCube' (uniform lowp isamplerCube)

-0:77          'c3D' (smooth in lowp 3-component vector of float)

-0:77          'c1D' (smooth in lowp float)

-0:78      move second child to first child (temp mediump 4-component vector of int)

-0:78        'iv' (temp mediump 4-component vector of int)

-0:78        textureFetch (global mediump 4-component vector of int)

-0:78          'is2DArray' (uniform lowp isampler2DArray)

-0:78          'ic3D' (flat in mediump 3-component vector of int)

-0:78          'ic1D' (flat in mediump int)

-0:80      move second child to first child (temp highp 2-component vector of int)

-0:80        vector swizzle (temp mediump 2-component vector of int)

-0:80          'iv' (temp mediump 4-component vector of int)

-0:80          Sequence

-0:80            Constant:

-0:80              0 (const int)

-0:80            Constant:

-0:80              1 (const int)

-0:80        textureSize (global highp 2-component vector of int)

-0:80          'sCubeShadow' (uniform lowp samplerCubeShadow)

-0:80          Constant:

-0:80            2 (const int)

-0:88      add second child into first child (temp highp float)

-0:88        'f' (temp lowp float)

-0:88        direct index (temp highp float)

-0:88          'gl_FragCoord' (gl_FragCoord highp 4-component vector of float FragCoord)

-0:88          Constant:

-0:88            1 (const int)

-0:89      move second child to first child (temp highp float)

-0:89        'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:89        'f' (temp lowp float)

-0:91      move second child to first child (temp lowp 3-component vector of float)

-0:91        'sc' (out lowp 3-component vector of float)

-0:91        c: direct index for structure (global lowp 3-component vector of float)

-0:91          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})

-0:91          Constant:

-0:91            0 (const int)

-0:92      move second child to first child (temp lowp float)

-0:92        'sf' (out lowp float)

-0:92        f: direct index for structure (global lowp float)

-0:92          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})

-0:92          Constant:

-0:92            1 (const int)

-0:94      add (temp lowp 2-component vector of float)

-0:94        hyp. sine (global lowp float)

-0:94          'c1D' (smooth in lowp float)

-0:95        vector-scale (temp lowp 2-component vector of float)

-0:95          hyp. cosine (global lowp float)

-0:95            'c1D' (smooth in lowp float)

-0:95          hyp. tangent (global lowp 2-component vector of float)

-0:95            'c2D' (smooth in lowp 2-component vector of float)

-0:96      add (temp lowp 4-component vector of float)

-0:96        arc hyp. sine (global lowp 4-component vector of float)

-0:96          'c4D' (smooth temp lowp 4-component vector of float)

-0:96        arc hyp. cosine (global lowp 4-component vector of float)

-0:96          'c4D' (smooth temp lowp 4-component vector of float)

-0:97      arc hyp. tangent (global lowp 3-component vector of float)

-0:97        'c3D' (smooth in lowp 3-component vector of float)

-0:108  Function Definition: foo( (global void)

-0:108    Function Parameters: 

-0:110    Sequence

-0:110      move second child to first child (temp lowp 4-component vector of float)

-0:110        direct index (temp lowp 4-component vector of float)

-0:110          'colors' (out 4-element array of lowp 4-component vector of float)

-0:110          Constant:

-0:110            2 (const int)

-0:110        'c4D' (smooth temp lowp 4-component vector of float)

-0:111      move second child to first child (temp lowp 4-component vector of float)

-0:111        indirect index (temp lowp 4-component vector of float)

-0:111          'colors' (out 4-element array of lowp 4-component vector of float)

-0:111          'ic1D' (flat in mediump int)

-0:111        'c4D' (smooth temp lowp 4-component vector of float)

-0:117  Function Definition: foo13(struct-s-i1-s211; (global void)

-0:117    Function Parameters: 

-0:117      'inSt2' (in structure{global mediump int i, global lowp sampler2D s})

-0:119    Sequence

-0:119      Test condition and select (temp void)

-0:119        Condition

-0:119        Compare Equal (temp bool)

-0:119          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:119          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:119        true case is null

-0:120      Test condition and select (temp void)

-0:120        Condition

-0:120        Compare Not Equal (temp bool)

-0:120          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:120          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:120        true case is null

-0:121      Constant:

-0:121        false (const bool)

-0:122      move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})

-0:122        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})

-0:122        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:123      Compare Equal (temp bool)

-0:123        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})

-0:123        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:126  Function Definition: foo23( (global void)

-0:126    Function Parameters: 

-0:128    Sequence

-0:128      textureOffset (global lowp float)

-0:128        's2DShadow' (uniform lowp sampler2DShadow)

-0:128        'c3D' (smooth in lowp 3-component vector of float)

-0:128        Constant:

-0:128          -8 (const int)

-0:128          7 (const int)

-0:128        'c1D' (smooth in lowp float)

-0:129      textureOffset (global lowp float)

-0:129        's2DShadow' (uniform lowp sampler2DShadow)

-0:129        'c3D' (smooth in lowp 3-component vector of float)

-0:129        Constant:

-0:129          -9 (const int)

-0:129          8 (const int)

-0:129        'c1D' (smooth in lowp float)

-0:132  Function Definition: foo324( (global void)

-0:132    Function Parameters: 

-0:134    Sequence

-0:134      Sequence

-0:134        move second child to first child (temp lowp float)

-0:134          'p' (temp lowp float)

-0:134          Constant:

-0:134            210.712306

-0:135      add second child into first child (temp lowp float)

-0:135        'p' (temp lowp float)

-0:135        Constant:

-0:135          0.389418

-0:136      add second child into first child (temp lowp float)

-0:136        'p' (temp lowp float)

-0:136        Constant:

-0:136          5.000000

-0:137      add second child into first child (temp lowp float)

-0:137        'p' (temp lowp float)

-0:137        Constant:

-0:137          13.000000

-0:138      Sequence

-0:138        move second child to first child (temp lowp 3-component vector of float)

-0:138          'c3' (temp lowp 3-component vector of float)

-0:138          Constant:

-0:138            -15.000000

-0:138            -2.000000

-0:138            39.000000

-0:139      add second child into first child (temp lowp 3-component vector of float)

-0:139        'c3' (temp lowp 3-component vector of float)

-0:139        Constant:

-0:139          -1.000000

-0:139          -2.000000

-0:139          -3.000000

-0:140      add second child into first child (temp lowp 3-component vector of float)

-0:140        'c3' (temp lowp 3-component vector of float)

-0:140        Constant:

-0:140          1.000000

-0:140          2.000000

-0:140          3.000000

-0:141      Sequence

-0:141        move second child to first child (temp lowp 2-component vector of float)

-0:141          'c2' (temp lowp 2-component vector of float)

-0:141          Constant:

-0:141            1.000000

-0:141            -3.000000

-0:142      add second child into first child (temp lowp 2-component vector of float)

-0:142        'c2' (temp lowp 2-component vector of float)

-0:142        Constant:

-0:142          1.000000

-0:142          -3.000000

-0:143      add second child into first child (temp lowp 2-component vector of float)

-0:143        'c2' (temp lowp 2-component vector of float)

-0:143        Constant:

-0:143          3.000000

-0:143          -8.544004

-0:144      add second child into first child (temp lowp 2-component vector of float)

-0:144        'c2' (temp lowp 2-component vector of float)

-0:144        Constant:

-0:144          0.000000

-0:144          0.000000

-0:145      Sequence

-0:145        move second child to first child (temp lowp 3X2 matrix of float)

-0:145          'm32' (temp lowp 3X2 matrix of float)

-0:145          Constant:

-0:145            10.000000

-0:145            15.000000

-0:145            14.000000

-0:145            21.000000

-0:145            22.000000

-0:145            33.000000

-0:?   Linker Objects

-0:?     's2D' (uniform lowp sampler2D)

-0:?     's3D' (uniform lowp sampler3D)

-0:?     'sCube' (uniform lowp samplerCube)

-0:?     'sCubeShadow' (uniform lowp samplerCubeShadow)

-0:?     's2DShadow' (uniform lowp sampler2DShadow)

-0:?     's2DArray' (uniform lowp sampler2DArray)

-0:?     's2DArrayShadow' (uniform lowp sampler2DArrayShadow)

-0:?     'is2D' (uniform lowp isampler2D)

-0:?     'is3D' (uniform lowp isampler3D)

-0:?     'isCube' (uniform lowp isamplerCube)

-0:?     'is2DArray' (uniform lowp isampler2DArray)

-0:?     'us2D' (uniform lowp usampler2D)

-0:?     'us3D' (uniform lowp usampler3D)

-0:?     'usCube' (uniform lowp usamplerCube)

-0:?     'us2DArray' (uniform lowp usampler2DArray)

-0:?     'c1D' (smooth in lowp float)

-0:?     'c2D' (smooth in lowp 2-component vector of float)

-0:?     'c3D' (smooth in lowp 3-component vector of float)

-0:?     'c4D' (smooth temp lowp 4-component vector of float)

-0:?     'ic1D' (flat in mediump int)

-0:?     'ic2D' (flat in mediump 2-component vector of int)

-0:?     'ic3D' (flat in mediump 3-component vector of int)

-0:?     'ic4D' (flat in mediump 4-component vector of int)

-0:?     'badv' (noperspective in lowp 4-component vector of float)

-0:?     'bads' (smooth in lowp sampler2D)

-0:?     'badout' (smooth in structure{global mediump int i, global lowp sampler2D s})

-0:?     's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})

-0:?     'sc' (out lowp 3-component vector of float)

-0:?     'sf' (out lowp float)

-0:?     'arrayedSampler' (uniform 5-element array of lowp sampler2D)

-0:?     'multiInst' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int b, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int c})

-0:?     'colors' (out 4-element array of lowp 4-component vector of float)

-0:?     'st1' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:?     'st2' (uniform structure{global mediump int i, global lowp sampler2D s})

-0:?     'fooinv' (invariant smooth in lowp 4-component vector of float)

-

+300.frag
+ERROR: 0:2: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:30: 'noperspective' : Reserved word. 
+ERROR: 0:30: 'noperspective' : not supported with this profile: es
+ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads
+ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout
+ERROR: 0:60: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:62: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:63: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:64: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:66: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:68: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:69: 'variable indexing sampler array' : not supported for this version or the enabled extensions 
+ERROR: 0:73: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:83: 'double' : Reserved word. 
+ERROR: 0:83: 'double' : not supported with this profile: es
+ERROR: 0:84: 'dvec2' : Reserved word. 
+ERROR: 0:84: 'double vector' : not supported with this profile: es
+ERROR: 0:85: 'dvec3' : Reserved word. 
+ERROR: 0:85: 'double vector' : not supported with this profile: es
+ERROR: 0:86: 'dvec4' : Reserved word. 
+ERROR: 0:86: 'double vector' : not supported with this profile: es
+ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled extensions 
+ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions 
+ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions 
+ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions 
+ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions 
+ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es
+ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es
+ERROR: 0:119: '==' : can't use with samplers or structs containing samplers 
+ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers 
+ERROR: 0:121: '==' : can't use with samplers or structs containing samplers 
+ERROR: 0:121: '==' :  wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global lowp sampler2D' and a right operand of type 'global lowp sampler2D' (or there is no acceptable conversion)
+ERROR: 0:122: '=' : can't use with samplers or structs containing samplers 
+ERROR: 0:123: '==' : can't use with samplers or structs containing samplers 
+ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:148: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 
+ERROR: 0:150: 'early_fragment_tests' : not supported for this version or the enabled extensions 
+ERROR: 0:156: 'invariant' : can only apply to an output 
+ERROR: 0:157: 'invariant' : can only apply to an output 
+ERROR: 0:158: 'invariant' : can only apply to an output 
+ERROR: 0:160: 'imageBuffer' : Reserved word. 
+ERROR: 0:160: '' :  syntax error
+ERROR: 44 compilation errors.  No code generated.
+
+
+Shader version: 300
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:53  Function Definition: main( (global void)
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      move second child to first child (temp lowp 4-component vector of float)
+0:57        'v' (temp lowp 4-component vector of float)
+0:57        texture (global lowp 4-component vector of float)
+0:57          's2D' (uniform lowp sampler2D)
+0:57          'c2D' (smooth in lowp 2-component vector of float)
+0:58      move second child to first child (temp lowp 4-component vector of float)
+0:58        'v' (temp lowp 4-component vector of float)
+0:58        textureProj (global lowp 4-component vector of float)
+0:58          's3D' (uniform lowp sampler3D)
+0:58          'c4D' (smooth temp lowp 4-component vector of float)
+0:59      move second child to first child (temp lowp 4-component vector of float)
+0:59        'v' (temp lowp 4-component vector of float)
+0:59        textureLod (global lowp 4-component vector of float)
+0:59          's2DArray' (uniform lowp sampler2DArray)
+0:59          'c3D' (smooth in lowp 3-component vector of float)
+0:59          Constant:
+0:59            1.200000
+0:60      move second child to first child (temp lowp float)
+0:60        'f' (temp lowp float)
+0:60        textureOffset (global lowp float)
+0:60          's2DShadow' (uniform lowp sampler2DShadow)
+0:60          'c3D' (smooth in lowp 3-component vector of float)
+0:60          'ic2D' (flat in mediump 2-component vector of int)
+0:60          'c1D' (smooth in lowp float)
+0:61      move second child to first child (temp lowp 4-component vector of float)
+0:61        'v' (temp lowp 4-component vector of float)
+0:61        textureFetch (global lowp 4-component vector of float)
+0:61          's3D' (uniform lowp sampler3D)
+0:61          'ic3D' (flat in mediump 3-component vector of int)
+0:61          'ic1D' (flat in mediump int)
+0:62      move second child to first child (temp lowp 4-component vector of float)
+0:62        'v' (temp lowp 4-component vector of float)
+0:62        textureFetchOffset (global lowp 4-component vector of float)
+0:62          direct index (temp lowp sampler2D)
+0:62            'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:62            Constant:
+0:62              2 (const int)
+0:62          'ic2D' (flat in mediump 2-component vector of int)
+0:62          Constant:
+0:62            4 (const int)
+0:62          'ic2D' (flat in mediump 2-component vector of int)
+0:63      move second child to first child (temp lowp float)
+0:63        'f' (temp lowp float)
+0:63        textureLodOffset (global lowp float)
+0:63          's2DShadow' (uniform lowp sampler2DShadow)
+0:63          'c3D' (smooth in lowp 3-component vector of float)
+0:63          'c1D' (smooth in lowp float)
+0:63          'ic2D' (flat in mediump 2-component vector of int)
+0:64      move second child to first child (temp lowp 4-component vector of float)
+0:64        'v' (temp lowp 4-component vector of float)
+0:64        textureProjLodOffset (global lowp 4-component vector of float)
+0:64          's2D' (uniform lowp sampler2D)
+0:64          'c3D' (smooth in lowp 3-component vector of float)
+0:64          'c1D' (smooth in lowp float)
+0:64          'ic2D' (flat in mediump 2-component vector of int)
+0:65      move second child to first child (temp lowp 4-component vector of float)
+0:65        'v' (temp lowp 4-component vector of float)
+0:65        textureGrad (global lowp 4-component vector of float)
+0:65          'sCube' (uniform lowp samplerCube)
+0:65          'c3D' (smooth in lowp 3-component vector of float)
+0:65          'c3D' (smooth in lowp 3-component vector of float)
+0:65          'c3D' (smooth in lowp 3-component vector of float)
+0:66      move second child to first child (temp lowp float)
+0:66        'f' (temp lowp float)
+0:66        textureGradOffset (global lowp float)
+0:66          's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:66          'c4D' (smooth temp lowp 4-component vector of float)
+0:66          'c2D' (smooth in lowp 2-component vector of float)
+0:66          'c2D' (smooth in lowp 2-component vector of float)
+0:66          'ic2D' (flat in mediump 2-component vector of int)
+0:67      move second child to first child (temp lowp 4-component vector of float)
+0:67        'v' (temp lowp 4-component vector of float)
+0:67        textureProjGrad (global lowp 4-component vector of float)
+0:67          's3D' (uniform lowp sampler3D)
+0:67          'c4D' (smooth temp lowp 4-component vector of float)
+0:67          'c3D' (smooth in lowp 3-component vector of float)
+0:67          'c3D' (smooth in lowp 3-component vector of float)
+0:68      move second child to first child (temp lowp 4-component vector of float)
+0:68        'v' (temp lowp 4-component vector of float)
+0:68        textureProjGradOffset (global lowp 4-component vector of float)
+0:68          's2D' (uniform lowp sampler2D)
+0:68          'c3D' (smooth in lowp 3-component vector of float)
+0:68          'c2D' (smooth in lowp 2-component vector of float)
+0:68          'c2D' (smooth in lowp 2-component vector of float)
+0:68          'ic2D' (flat in mediump 2-component vector of int)
+0:69      move second child to first child (temp lowp 4-component vector of float)
+0:69        'v' (temp lowp 4-component vector of float)
+0:69        texture (global lowp 4-component vector of float)
+0:69          indirect index (temp lowp sampler2D)
+0:69            'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:69            'ic1D' (flat in mediump int)
+0:69          'c2D' (smooth in lowp 2-component vector of float)
+0:72      move second child to first child (temp mediump 4-component vector of int)
+0:72        'iv' (temp mediump 4-component vector of int)
+0:72        texture (global mediump 4-component vector of int)
+0:72          'is2D' (uniform lowp isampler2D)
+0:72          'c2D' (smooth in lowp 2-component vector of float)
+0:73      move second child to first child (temp mediump 4-component vector of int)
+0:73        'iv' (temp mediump 4-component vector of int)
+0:73        textureProjOffset (global mediump 4-component vector of int)
+0:73          'is2D' (uniform lowp isampler2D)
+0:73          'c4D' (smooth temp lowp 4-component vector of float)
+0:73          'ic2D' (flat in mediump 2-component vector of int)
+0:74      move second child to first child (temp mediump 4-component vector of int)
+0:74        'iv' (temp mediump 4-component vector of int)
+0:74        textureProjLod (global mediump 4-component vector of int)
+0:74          'is2D' (uniform lowp isampler2D)
+0:74          'c3D' (smooth in lowp 3-component vector of float)
+0:74          'c1D' (smooth in lowp float)
+0:75      move second child to first child (temp mediump 4-component vector of int)
+0:75        'iv' (temp mediump 4-component vector of int)
+0:75        textureProjGrad (global mediump 4-component vector of int)
+0:75          'is2D' (uniform lowp isampler2D)
+0:75          'c3D' (smooth in lowp 3-component vector of float)
+0:75          'c2D' (smooth in lowp 2-component vector of float)
+0:75          'c2D' (smooth in lowp 2-component vector of float)
+0:76      move second child to first child (temp mediump 4-component vector of int)
+0:76        'iv' (temp mediump 4-component vector of int)
+0:76        texture (global mediump 4-component vector of int)
+0:76          'is3D' (uniform lowp isampler3D)
+0:76          'c3D' (smooth in lowp 3-component vector of float)
+0:76          Constant:
+0:76            4.200000
+0:77      move second child to first child (temp mediump 4-component vector of int)
+0:77        'iv' (temp mediump 4-component vector of int)
+0:77        textureLod (global mediump 4-component vector of int)
+0:77          'isCube' (uniform lowp isamplerCube)
+0:77          'c3D' (smooth in lowp 3-component vector of float)
+0:77          'c1D' (smooth in lowp float)
+0:78      move second child to first child (temp mediump 4-component vector of int)
+0:78        'iv' (temp mediump 4-component vector of int)
+0:78        textureFetch (global mediump 4-component vector of int)
+0:78          'is2DArray' (uniform lowp isampler2DArray)
+0:78          'ic3D' (flat in mediump 3-component vector of int)
+0:78          'ic1D' (flat in mediump int)
+0:80      move second child to first child (temp highp 2-component vector of int)
+0:80        vector swizzle (temp mediump 2-component vector of int)
+0:80          'iv' (temp mediump 4-component vector of int)
+0:80          Sequence
+0:80            Constant:
+0:80              0 (const int)
+0:80            Constant:
+0:80              1 (const int)
+0:80        textureSize (global highp 2-component vector of int)
+0:80          'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:80          Constant:
+0:80            2 (const int)
+0:88      add second child into first child (temp highp float)
+0:88        'f' (temp lowp float)
+0:88        direct index (temp highp float)
+0:88          'gl_FragCoord' (gl_FragCoord highp 4-component vector of float FragCoord)
+0:88          Constant:
+0:88            1 (const int)
+0:89      move second child to first child (temp highp float)
+0:89        'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:89        'f' (temp lowp float)
+0:91      move second child to first child (temp lowp 3-component vector of float)
+0:91        'sc' (out lowp 3-component vector of float)
+0:91        c: direct index for structure (global lowp 3-component vector of float)
+0:91          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:91          Constant:
+0:91            0 (const int)
+0:92      move second child to first child (temp lowp float)
+0:92        'sf' (out lowp float)
+0:92        f: direct index for structure (global lowp float)
+0:92          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:92          Constant:
+0:92            1 (const int)
+0:94      add (temp lowp 2-component vector of float)
+0:94        hyp. sine (global lowp float)
+0:94          'c1D' (smooth in lowp float)
+0:95        vector-scale (temp lowp 2-component vector of float)
+0:95          hyp. cosine (global lowp float)
+0:95            'c1D' (smooth in lowp float)
+0:95          hyp. tangent (global lowp 2-component vector of float)
+0:95            'c2D' (smooth in lowp 2-component vector of float)
+0:96      add (temp lowp 4-component vector of float)
+0:96        arc hyp. sine (global lowp 4-component vector of float)
+0:96          'c4D' (smooth temp lowp 4-component vector of float)
+0:96        arc hyp. cosine (global lowp 4-component vector of float)
+0:96          'c4D' (smooth temp lowp 4-component vector of float)
+0:97      arc hyp. tangent (global lowp 3-component vector of float)
+0:97        'c3D' (smooth in lowp 3-component vector of float)
+0:108  Function Definition: foo( (global void)
+0:108    Function Parameters: 
+0:110    Sequence
+0:110      move second child to first child (temp lowp 4-component vector of float)
+0:110        direct index (temp lowp 4-component vector of float)
+0:110          'colors' (out 4-element array of lowp 4-component vector of float)
+0:110          Constant:
+0:110            2 (const int)
+0:110        'c4D' (smooth temp lowp 4-component vector of float)
+0:111      move second child to first child (temp lowp 4-component vector of float)
+0:111        indirect index (temp lowp 4-component vector of float)
+0:111          'colors' (out 4-element array of lowp 4-component vector of float)
+0:111          'ic1D' (flat in mediump int)
+0:111        'c4D' (smooth temp lowp 4-component vector of float)
+0:117  Function Definition: foo13(struct-s-i1-s211; (global void)
+0:117    Function Parameters: 
+0:117      'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:119    Sequence
+0:119      Test condition and select (temp void)
+0:119        Condition
+0:119        Compare Equal (temp bool)
+0:119          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119        true case is null
+0:120      Test condition and select (temp void)
+0:120        Condition
+0:120        Compare Not Equal (temp bool)
+0:120          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120        true case is null
+0:121      Constant:
+0:121        false (const bool)
+0:122      move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})
+0:122        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:122        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:123      Compare Equal (temp bool)
+0:123        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:123        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:126  Function Definition: foo23( (global void)
+0:126    Function Parameters: 
+0:128    Sequence
+0:128      textureOffset (global lowp float)
+0:128        's2DShadow' (uniform lowp sampler2DShadow)
+0:128        'c3D' (smooth in lowp 3-component vector of float)
+0:128        Constant:
+0:128          -8 (const int)
+0:128          7 (const int)
+0:128        'c1D' (smooth in lowp float)
+0:129      textureOffset (global lowp float)
+0:129        's2DShadow' (uniform lowp sampler2DShadow)
+0:129        'c3D' (smooth in lowp 3-component vector of float)
+0:129        Constant:
+0:129          -9 (const int)
+0:129          8 (const int)
+0:129        'c1D' (smooth in lowp float)
+0:132  Function Definition: foo324( (global void)
+0:132    Function Parameters: 
+0:134    Sequence
+0:134      Sequence
+0:134        move second child to first child (temp lowp float)
+0:134          'p' (temp lowp float)
+0:134          Constant:
+0:134            210.712306
+0:135      add second child into first child (temp lowp float)
+0:135        'p' (temp lowp float)
+0:135        Constant:
+0:135          0.389418
+0:136      add second child into first child (temp lowp float)
+0:136        'p' (temp lowp float)
+0:136        Constant:
+0:136          5.000000
+0:137      add second child into first child (temp lowp float)
+0:137        'p' (temp lowp float)
+0:137        Constant:
+0:137          13.000000
+0:138      Sequence
+0:138        move second child to first child (temp lowp 3-component vector of float)
+0:138          'c3' (temp lowp 3-component vector of float)
+0:138          Constant:
+0:138            -15.000000
+0:138            -2.000000
+0:138            39.000000
+0:139      add second child into first child (temp lowp 3-component vector of float)
+0:139        'c3' (temp lowp 3-component vector of float)
+0:139        Constant:
+0:139          -1.000000
+0:139          -2.000000
+0:139          -3.000000
+0:140      add second child into first child (temp lowp 3-component vector of float)
+0:140        'c3' (temp lowp 3-component vector of float)
+0:140        Constant:
+0:140          1.000000
+0:140          2.000000
+0:140          3.000000
+0:141      Sequence
+0:141        move second child to first child (temp lowp 2-component vector of float)
+0:141          'c2' (temp lowp 2-component vector of float)
+0:141          Constant:
+0:141            1.000000
+0:141            -3.000000
+0:142      add second child into first child (temp lowp 2-component vector of float)
+0:142        'c2' (temp lowp 2-component vector of float)
+0:142        Constant:
+0:142          1.000000
+0:142          -3.000000
+0:143      add second child into first child (temp lowp 2-component vector of float)
+0:143        'c2' (temp lowp 2-component vector of float)
+0:143        Constant:
+0:143          3.000000
+0:143          -8.544004
+0:144      add second child into first child (temp lowp 2-component vector of float)
+0:144        'c2' (temp lowp 2-component vector of float)
+0:144        Constant:
+0:144          0.000000
+0:144          0.000000
+0:145      Sequence
+0:145        move second child to first child (temp lowp 3X2 matrix of float)
+0:145          'm32' (temp lowp 3X2 matrix of float)
+0:145          Constant:
+0:145            10.000000
+0:145            15.000000
+0:145            14.000000
+0:145            21.000000
+0:145            22.000000
+0:145            33.000000
+0:?   Linker Objects
+0:?     's2D' (uniform lowp sampler2D)
+0:?     's3D' (uniform lowp sampler3D)
+0:?     'sCube' (uniform lowp samplerCube)
+0:?     'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:?     's2DShadow' (uniform lowp sampler2DShadow)
+0:?     's2DArray' (uniform lowp sampler2DArray)
+0:?     's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:?     'is2D' (uniform lowp isampler2D)
+0:?     'is3D' (uniform lowp isampler3D)
+0:?     'isCube' (uniform lowp isamplerCube)
+0:?     'is2DArray' (uniform lowp isampler2DArray)
+0:?     'us2D' (uniform lowp usampler2D)
+0:?     'us3D' (uniform lowp usampler3D)
+0:?     'usCube' (uniform lowp usamplerCube)
+0:?     'us2DArray' (uniform lowp usampler2DArray)
+0:?     'c1D' (smooth in lowp float)
+0:?     'c2D' (smooth in lowp 2-component vector of float)
+0:?     'c3D' (smooth in lowp 3-component vector of float)
+0:?     'c4D' (smooth temp lowp 4-component vector of float)
+0:?     'ic1D' (flat in mediump int)
+0:?     'ic2D' (flat in mediump 2-component vector of int)
+0:?     'ic3D' (flat in mediump 3-component vector of int)
+0:?     'ic4D' (flat in mediump 4-component vector of int)
+0:?     'badv' (noperspective in lowp 4-component vector of float)
+0:?     'bads' (smooth in lowp sampler2D)
+0:?     'badout' (smooth in structure{global mediump int i, global lowp sampler2D s})
+0:?     's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:?     'sc' (out lowp 3-component vector of float)
+0:?     'sf' (out lowp float)
+0:?     'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:?     'multiInst' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int b, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int c})
+0:?     'colors' (out 4-element array of lowp 4-component vector of float)
+0:?     'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:?     'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:?     'fooinv' (invariant smooth in lowp 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
+
+Shader version: 300
+using early_fragment_tests
+ERROR: node is still EOpNull!
+0:53  Function Definition: main( (global void)
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      move second child to first child (temp lowp 4-component vector of float)
+0:57        'v' (temp lowp 4-component vector of float)
+0:57        texture (global lowp 4-component vector of float)
+0:57          's2D' (uniform lowp sampler2D)
+0:57          'c2D' (smooth in lowp 2-component vector of float)
+0:58      move second child to first child (temp lowp 4-component vector of float)
+0:58        'v' (temp lowp 4-component vector of float)
+0:58        textureProj (global lowp 4-component vector of float)
+0:58          's3D' (uniform lowp sampler3D)
+0:58          'c4D' (smooth temp lowp 4-component vector of float)
+0:59      move second child to first child (temp lowp 4-component vector of float)
+0:59        'v' (temp lowp 4-component vector of float)
+0:59        textureLod (global lowp 4-component vector of float)
+0:59          's2DArray' (uniform lowp sampler2DArray)
+0:59          'c3D' (smooth in lowp 3-component vector of float)
+0:59          Constant:
+0:59            1.200000
+0:60      move second child to first child (temp lowp float)
+0:60        'f' (temp lowp float)
+0:60        textureOffset (global lowp float)
+0:60          's2DShadow' (uniform lowp sampler2DShadow)
+0:60          'c3D' (smooth in lowp 3-component vector of float)
+0:60          'ic2D' (flat in mediump 2-component vector of int)
+0:60          'c1D' (smooth in lowp float)
+0:61      move second child to first child (temp lowp 4-component vector of float)
+0:61        'v' (temp lowp 4-component vector of float)
+0:61        textureFetch (global lowp 4-component vector of float)
+0:61          's3D' (uniform lowp sampler3D)
+0:61          'ic3D' (flat in mediump 3-component vector of int)
+0:61          'ic1D' (flat in mediump int)
+0:62      move second child to first child (temp lowp 4-component vector of float)
+0:62        'v' (temp lowp 4-component vector of float)
+0:62        textureFetchOffset (global lowp 4-component vector of float)
+0:62          direct index (temp lowp sampler2D)
+0:62            'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:62            Constant:
+0:62              2 (const int)
+0:62          'ic2D' (flat in mediump 2-component vector of int)
+0:62          Constant:
+0:62            4 (const int)
+0:62          'ic2D' (flat in mediump 2-component vector of int)
+0:63      move second child to first child (temp lowp float)
+0:63        'f' (temp lowp float)
+0:63        textureLodOffset (global lowp float)
+0:63          's2DShadow' (uniform lowp sampler2DShadow)
+0:63          'c3D' (smooth in lowp 3-component vector of float)
+0:63          'c1D' (smooth in lowp float)
+0:63          'ic2D' (flat in mediump 2-component vector of int)
+0:64      move second child to first child (temp lowp 4-component vector of float)
+0:64        'v' (temp lowp 4-component vector of float)
+0:64        textureProjLodOffset (global lowp 4-component vector of float)
+0:64          's2D' (uniform lowp sampler2D)
+0:64          'c3D' (smooth in lowp 3-component vector of float)
+0:64          'c1D' (smooth in lowp float)
+0:64          'ic2D' (flat in mediump 2-component vector of int)
+0:65      move second child to first child (temp lowp 4-component vector of float)
+0:65        'v' (temp lowp 4-component vector of float)
+0:65        textureGrad (global lowp 4-component vector of float)
+0:65          'sCube' (uniform lowp samplerCube)
+0:65          'c3D' (smooth in lowp 3-component vector of float)
+0:65          'c3D' (smooth in lowp 3-component vector of float)
+0:65          'c3D' (smooth in lowp 3-component vector of float)
+0:66      move second child to first child (temp lowp float)
+0:66        'f' (temp lowp float)
+0:66        textureGradOffset (global lowp float)
+0:66          's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:66          'c4D' (smooth temp lowp 4-component vector of float)
+0:66          'c2D' (smooth in lowp 2-component vector of float)
+0:66          'c2D' (smooth in lowp 2-component vector of float)
+0:66          'ic2D' (flat in mediump 2-component vector of int)
+0:67      move second child to first child (temp lowp 4-component vector of float)
+0:67        'v' (temp lowp 4-component vector of float)
+0:67        textureProjGrad (global lowp 4-component vector of float)
+0:67          's3D' (uniform lowp sampler3D)
+0:67          'c4D' (smooth temp lowp 4-component vector of float)
+0:67          'c3D' (smooth in lowp 3-component vector of float)
+0:67          'c3D' (smooth in lowp 3-component vector of float)
+0:68      move second child to first child (temp lowp 4-component vector of float)
+0:68        'v' (temp lowp 4-component vector of float)
+0:68        textureProjGradOffset (global lowp 4-component vector of float)
+0:68          's2D' (uniform lowp sampler2D)
+0:68          'c3D' (smooth in lowp 3-component vector of float)
+0:68          'c2D' (smooth in lowp 2-component vector of float)
+0:68          'c2D' (smooth in lowp 2-component vector of float)
+0:68          'ic2D' (flat in mediump 2-component vector of int)
+0:69      move second child to first child (temp lowp 4-component vector of float)
+0:69        'v' (temp lowp 4-component vector of float)
+0:69        texture (global lowp 4-component vector of float)
+0:69          indirect index (temp lowp sampler2D)
+0:69            'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:69            'ic1D' (flat in mediump int)
+0:69          'c2D' (smooth in lowp 2-component vector of float)
+0:72      move second child to first child (temp mediump 4-component vector of int)
+0:72        'iv' (temp mediump 4-component vector of int)
+0:72        texture (global mediump 4-component vector of int)
+0:72          'is2D' (uniform lowp isampler2D)
+0:72          'c2D' (smooth in lowp 2-component vector of float)
+0:73      move second child to first child (temp mediump 4-component vector of int)
+0:73        'iv' (temp mediump 4-component vector of int)
+0:73        textureProjOffset (global mediump 4-component vector of int)
+0:73          'is2D' (uniform lowp isampler2D)
+0:73          'c4D' (smooth temp lowp 4-component vector of float)
+0:73          'ic2D' (flat in mediump 2-component vector of int)
+0:74      move second child to first child (temp mediump 4-component vector of int)
+0:74        'iv' (temp mediump 4-component vector of int)
+0:74        textureProjLod (global mediump 4-component vector of int)
+0:74          'is2D' (uniform lowp isampler2D)
+0:74          'c3D' (smooth in lowp 3-component vector of float)
+0:74          'c1D' (smooth in lowp float)
+0:75      move second child to first child (temp mediump 4-component vector of int)
+0:75        'iv' (temp mediump 4-component vector of int)
+0:75        textureProjGrad (global mediump 4-component vector of int)
+0:75          'is2D' (uniform lowp isampler2D)
+0:75          'c3D' (smooth in lowp 3-component vector of float)
+0:75          'c2D' (smooth in lowp 2-component vector of float)
+0:75          'c2D' (smooth in lowp 2-component vector of float)
+0:76      move second child to first child (temp mediump 4-component vector of int)
+0:76        'iv' (temp mediump 4-component vector of int)
+0:76        texture (global mediump 4-component vector of int)
+0:76          'is3D' (uniform lowp isampler3D)
+0:76          'c3D' (smooth in lowp 3-component vector of float)
+0:76          Constant:
+0:76            4.200000
+0:77      move second child to first child (temp mediump 4-component vector of int)
+0:77        'iv' (temp mediump 4-component vector of int)
+0:77        textureLod (global mediump 4-component vector of int)
+0:77          'isCube' (uniform lowp isamplerCube)
+0:77          'c3D' (smooth in lowp 3-component vector of float)
+0:77          'c1D' (smooth in lowp float)
+0:78      move second child to first child (temp mediump 4-component vector of int)
+0:78        'iv' (temp mediump 4-component vector of int)
+0:78        textureFetch (global mediump 4-component vector of int)
+0:78          'is2DArray' (uniform lowp isampler2DArray)
+0:78          'ic3D' (flat in mediump 3-component vector of int)
+0:78          'ic1D' (flat in mediump int)
+0:80      move second child to first child (temp highp 2-component vector of int)
+0:80        vector swizzle (temp mediump 2-component vector of int)
+0:80          'iv' (temp mediump 4-component vector of int)
+0:80          Sequence
+0:80            Constant:
+0:80              0 (const int)
+0:80            Constant:
+0:80              1 (const int)
+0:80        textureSize (global highp 2-component vector of int)
+0:80          'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:80          Constant:
+0:80            2 (const int)
+0:88      add second child into first child (temp highp float)
+0:88        'f' (temp lowp float)
+0:88        direct index (temp highp float)
+0:88          'gl_FragCoord' (gl_FragCoord highp 4-component vector of float FragCoord)
+0:88          Constant:
+0:88            1 (const int)
+0:89      move second child to first child (temp highp float)
+0:89        'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:89        'f' (temp lowp float)
+0:91      move second child to first child (temp lowp 3-component vector of float)
+0:91        'sc' (out lowp 3-component vector of float)
+0:91        c: direct index for structure (global lowp 3-component vector of float)
+0:91          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:91          Constant:
+0:91            0 (const int)
+0:92      move second child to first child (temp lowp float)
+0:92        'sf' (out lowp float)
+0:92        f: direct index for structure (global lowp float)
+0:92          's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:92          Constant:
+0:92            1 (const int)
+0:94      add (temp lowp 2-component vector of float)
+0:94        hyp. sine (global lowp float)
+0:94          'c1D' (smooth in lowp float)
+0:95        vector-scale (temp lowp 2-component vector of float)
+0:95          hyp. cosine (global lowp float)
+0:95            'c1D' (smooth in lowp float)
+0:95          hyp. tangent (global lowp 2-component vector of float)
+0:95            'c2D' (smooth in lowp 2-component vector of float)
+0:96      add (temp lowp 4-component vector of float)
+0:96        arc hyp. sine (global lowp 4-component vector of float)
+0:96          'c4D' (smooth temp lowp 4-component vector of float)
+0:96        arc hyp. cosine (global lowp 4-component vector of float)
+0:96          'c4D' (smooth temp lowp 4-component vector of float)
+0:97      arc hyp. tangent (global lowp 3-component vector of float)
+0:97        'c3D' (smooth in lowp 3-component vector of float)
+0:108  Function Definition: foo( (global void)
+0:108    Function Parameters: 
+0:110    Sequence
+0:110      move second child to first child (temp lowp 4-component vector of float)
+0:110        direct index (temp lowp 4-component vector of float)
+0:110          'colors' (out 4-element array of lowp 4-component vector of float)
+0:110          Constant:
+0:110            2 (const int)
+0:110        'c4D' (smooth temp lowp 4-component vector of float)
+0:111      move second child to first child (temp lowp 4-component vector of float)
+0:111        indirect index (temp lowp 4-component vector of float)
+0:111          'colors' (out 4-element array of lowp 4-component vector of float)
+0:111          'ic1D' (flat in mediump int)
+0:111        'c4D' (smooth temp lowp 4-component vector of float)
+0:117  Function Definition: foo13(struct-s-i1-s211; (global void)
+0:117    Function Parameters: 
+0:117      'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:119    Sequence
+0:119      Test condition and select (temp void)
+0:119        Condition
+0:119        Compare Equal (temp bool)
+0:119          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:119        true case is null
+0:120      Test condition and select (temp void)
+0:120        Condition
+0:120        Compare Not Equal (temp bool)
+0:120          'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120          'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:120        true case is null
+0:121      Constant:
+0:121        false (const bool)
+0:122      move second child to first child (temp structure{global mediump int i, global lowp sampler2D s})
+0:122        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:122        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:123      Compare Equal (temp bool)
+0:123        'inSt2' (in structure{global mediump int i, global lowp sampler2D s})
+0:123        'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:126  Function Definition: foo23( (global void)
+0:126    Function Parameters: 
+0:128    Sequence
+0:128      textureOffset (global lowp float)
+0:128        's2DShadow' (uniform lowp sampler2DShadow)
+0:128        'c3D' (smooth in lowp 3-component vector of float)
+0:128        Constant:
+0:128          -8 (const int)
+0:128          7 (const int)
+0:128        'c1D' (smooth in lowp float)
+0:129      textureOffset (global lowp float)
+0:129        's2DShadow' (uniform lowp sampler2DShadow)
+0:129        'c3D' (smooth in lowp 3-component vector of float)
+0:129        Constant:
+0:129          -9 (const int)
+0:129          8 (const int)
+0:129        'c1D' (smooth in lowp float)
+0:132  Function Definition: foo324( (global void)
+0:132    Function Parameters: 
+0:134    Sequence
+0:134      Sequence
+0:134        move second child to first child (temp lowp float)
+0:134          'p' (temp lowp float)
+0:134          Constant:
+0:134            210.712306
+0:135      add second child into first child (temp lowp float)
+0:135        'p' (temp lowp float)
+0:135        Constant:
+0:135          0.389418
+0:136      add second child into first child (temp lowp float)
+0:136        'p' (temp lowp float)
+0:136        Constant:
+0:136          5.000000
+0:137      add second child into first child (temp lowp float)
+0:137        'p' (temp lowp float)
+0:137        Constant:
+0:137          13.000000
+0:138      Sequence
+0:138        move second child to first child (temp lowp 3-component vector of float)
+0:138          'c3' (temp lowp 3-component vector of float)
+0:138          Constant:
+0:138            -15.000000
+0:138            -2.000000
+0:138            39.000000
+0:139      add second child into first child (temp lowp 3-component vector of float)
+0:139        'c3' (temp lowp 3-component vector of float)
+0:139        Constant:
+0:139          -1.000000
+0:139          -2.000000
+0:139          -3.000000
+0:140      add second child into first child (temp lowp 3-component vector of float)
+0:140        'c3' (temp lowp 3-component vector of float)
+0:140        Constant:
+0:140          1.000000
+0:140          2.000000
+0:140          3.000000
+0:141      Sequence
+0:141        move second child to first child (temp lowp 2-component vector of float)
+0:141          'c2' (temp lowp 2-component vector of float)
+0:141          Constant:
+0:141            1.000000
+0:141            -3.000000
+0:142      add second child into first child (temp lowp 2-component vector of float)
+0:142        'c2' (temp lowp 2-component vector of float)
+0:142        Constant:
+0:142          1.000000
+0:142          -3.000000
+0:143      add second child into first child (temp lowp 2-component vector of float)
+0:143        'c2' (temp lowp 2-component vector of float)
+0:143        Constant:
+0:143          3.000000
+0:143          -8.544004
+0:144      add second child into first child (temp lowp 2-component vector of float)
+0:144        'c2' (temp lowp 2-component vector of float)
+0:144        Constant:
+0:144          0.000000
+0:144          0.000000
+0:145      Sequence
+0:145        move second child to first child (temp lowp 3X2 matrix of float)
+0:145          'm32' (temp lowp 3X2 matrix of float)
+0:145          Constant:
+0:145            10.000000
+0:145            15.000000
+0:145            14.000000
+0:145            21.000000
+0:145            22.000000
+0:145            33.000000
+0:?   Linker Objects
+0:?     's2D' (uniform lowp sampler2D)
+0:?     's3D' (uniform lowp sampler3D)
+0:?     'sCube' (uniform lowp samplerCube)
+0:?     'sCubeShadow' (uniform lowp samplerCubeShadow)
+0:?     's2DShadow' (uniform lowp sampler2DShadow)
+0:?     's2DArray' (uniform lowp sampler2DArray)
+0:?     's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
+0:?     'is2D' (uniform lowp isampler2D)
+0:?     'is3D' (uniform lowp isampler3D)
+0:?     'isCube' (uniform lowp isamplerCube)
+0:?     'is2DArray' (uniform lowp isampler2DArray)
+0:?     'us2D' (uniform lowp usampler2D)
+0:?     'us3D' (uniform lowp usampler3D)
+0:?     'usCube' (uniform lowp usamplerCube)
+0:?     'us2DArray' (uniform lowp usampler2DArray)
+0:?     'c1D' (smooth in lowp float)
+0:?     'c2D' (smooth in lowp 2-component vector of float)
+0:?     'c3D' (smooth in lowp 3-component vector of float)
+0:?     'c4D' (smooth temp lowp 4-component vector of float)
+0:?     'ic1D' (flat in mediump int)
+0:?     'ic2D' (flat in mediump 2-component vector of int)
+0:?     'ic3D' (flat in mediump 3-component vector of int)
+0:?     'ic4D' (flat in mediump 4-component vector of int)
+0:?     'badv' (noperspective in lowp 4-component vector of float)
+0:?     'bads' (smooth in lowp sampler2D)
+0:?     'badout' (smooth in structure{global mediump int i, global lowp sampler2D s})
+0:?     's2' (smooth in structure{global lowp 3-component vector of float c, global lowp float f})
+0:?     'sc' (out lowp 3-component vector of float)
+0:?     'sf' (out lowp float)
+0:?     'arrayedSampler' (uniform 5-element array of lowp sampler2D)
+0:?     'multiInst' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform 2-element array of mediump int a, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int b, layout(column_major shared ) uniform 2-element array of 3-element array of mediump int c})
+0:?     'colors' (out 4-element array of lowp 4-component vector of float)
+0:?     'st1' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:?     'st2' (uniform structure{global mediump int i, global lowp sampler2D s})
+0:?     'fooinv' (invariant smooth in lowp 4-component vector of float)
+
diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out
index ef06a63..122b256 100644
--- a/Test/baseResults/300.vert.out
+++ b/Test/baseResults/300.vert.out
@@ -1,612 +1,612 @@
-300.vert

-ERROR: 0:8: 'varying' : Reserved word. 

-ERROR: 0:8: 'varying' : no longer supported in es profile; removed in version 300

-ERROR: 0:9: 'vertex input arrays' : not supported with this profile: es

-ERROR: 0:10: '' : precision qualifier must appear as last qualifier 

-ERROR: 0:11: '' : invariant qualifier must appear first 

-ERROR: 0:12: '' : Auxiliary qualifiers (centroid, patch, and sample) must appear before storage and precision qualifiers 

-ERROR: 0:12: '' : vertex input cannot be further qualified 

-ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers 

-ERROR: 0:14: '' : in/out must appear before const 

-ERROR: 0:15: '' : precision qualifier must appear as last qualifier 

-ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective) 

-ERROR: 0:17: 'sample' : Reserved word. 

-ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 

-ERROR: 0:18: 'uniform' : too many storage qualifiers 

-ERROR: 0:56: '#error' : GL_ES is set  

-ERROR: 0:62: '' : array size required 

-ERROR: 0:63: '' : array size required 

-ERROR: 0:64: '' : array size required 

-ERROR: 0:65: '' : array size required 

-ERROR: 0:67: '' : array size required 

-ERROR: 0:76: 'invariant' : cannot change qualification after use 

-ERROR: 0:78: 'invariant' : can only apply to an output 

-ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform

-ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform

-ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform

-ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform

-ERROR: 0:121: 'textureSize' : no matching overloaded function found 

-ERROR: 0:123: 'textureSize' : no matching overloaded function found 

-ERROR: 0:125: 'texture' : no matching overloaded function found 

-ERROR: 0:127: 'textureProjOffset' : no matching overloaded function found 

-ERROR: 0:132: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2

-ERROR: 0:135: 'in' : overloaded functions must have the same parameter storage qualifiers for argument 2

-ERROR: 0:146: '' : array size required 

-ERROR: 0:147: '' : array size required 

-ERROR: 0:148: '' : array size required 

-ERROR: 0:149: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:168: 'Binst' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 

-ERROR: 0:169: 'Bblock' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 

-ERROR: 0:170: 'Bfoo' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 

-ERROR: 0:172: 'std430' : not supported for this version or the enabled extensions 

-ERROR: 0:172: 'std430' : requires the 'buffer' storage qualifier 

-ERROR: 0:175: '' : array size required 

-ERROR: 0:185: 'assign' :  cannot convert from 'temp 4-element array of highp float' to 'temp 3-element array of highp float'

-ERROR: 0:186: 'assign' :  cannot convert from 'temp 3-element array of highp float' to 'temp 4-element array of highp float'

-ERROR: 44 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:27  Function Definition: main( (global void)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Sequence

-0:29        move second child to first child (temp highp int)

-0:29          'id' (temp highp int)

-0:29          add (temp highp int)

-0:29            'gl_VertexID' (gl_VertexId highp int VertexId)

-0:29            'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-0:31      Sequence

-0:31        move second child to first child (temp highp int)

-0:31          'c0' (temp highp int)

-0:31          Constant:

-0:31            64 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp highp int)

-0:32          'c1' (temp highp int)

-0:32          Constant:

-0:32            128 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp highp int)

-0:33          'c2' (temp highp int)

-0:33          Constant:

-0:33            16 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp highp int)

-0:34          'c3' (temp highp int)

-0:34          Constant:

-0:34            15 (const int)

-0:35      Sequence

-0:35        move second child to first child (temp highp int)

-0:35          'c4' (temp highp int)

-0:35          Constant:

-0:35            32 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp highp int)

-0:36          'c5' (temp highp int)

-0:36          Constant:

-0:36            80 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp highp int)

-0:37          'c6' (temp highp int)

-0:37          Constant:

-0:37            32 (const int)

-0:38      Sequence

-0:38        move second child to first child (temp highp int)

-0:38          'c7' (temp highp int)

-0:38          Constant:

-0:38            16 (const int)

-0:39      Sequence

-0:39        move second child to first child (temp highp int)

-0:39          'c8' (temp highp int)

-0:39          Constant:

-0:39            32 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp highp int)

-0:40          'c9' (temp highp int)

-0:40          Constant:

-0:40            -8 (const int)

-0:41      Sequence

-0:41        move second child to first child (temp highp int)

-0:41          'c10' (temp highp int)

-0:41          Constant:

-0:41            7 (const int)

-0:43      Sequence

-0:43        move second child to first child (temp highp 3X4 matrix of float)

-0:43          'tm' (temp highp 3X4 matrix of float)

-0:43          transpose (global highp 3X4 matrix of float)

-0:43            'm43' (uniform highp 4X3 matrix of float)

-0:44      Sequence

-0:44        move second child to first child (temp highp float)

-0:44          'dm' (temp highp float)

-0:44          determinant (global highp float)

-0:44            'm44' (uniform highp 4X4 matrix of float)

-0:45      Sequence

-0:45        move second child to first child (temp highp 3X3 matrix of float)

-0:45          'im' (temp highp 3X3 matrix of float)

-0:45          inverse (global highp 3X3 matrix of float)

-0:45            'm33' (uniform highp 3X3 matrix of float)

-0:47      Sequence

-0:47        move second child to first child (temp highp 3X2 matrix of float)

-0:47          'op' (temp highp 3X2 matrix of float)

-0:47          outer product (global highp 3X2 matrix of float)

-0:47            'v2' (smooth out highp 2-component vector of float)

-0:47            'v3' (in highp 3-component vector of float)

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:49        direct index (temp highp 4-component vector of float)

-0:49          'm44' (uniform highp 4X4 matrix of float)

-0:49          Constant:

-0:49            2 (const int)

-0:50      move second child to first child (temp highp float)

-0:50        'gl_PointSize' (gl_PointSize highp float PointSize)

-0:50        direct index (temp highp float)

-0:50          'v2' (smooth out highp 2-component vector of float)

-0:50          Constant:

-0:50            1 (const int)

-0:52      move second child to first child (temp highp 3-component vector of float)

-0:52        c: direct index for structure (global highp 3-component vector of float)

-0:52          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:52          Constant:

-0:52            0 (const int)

-0:52        'v3' (in highp 3-component vector of float)

-0:53      move second child to first child (temp highp float)

-0:53        f: direct index for structure (global highp float)

-0:53          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:53          Constant:

-0:53            1 (const int)

-0:53        'dm' (temp highp float)

-0:68  Sequence

-0:68    move second child to first child (temp 2-element array of highp float)

-0:68      'okayA' (global 2-element array of highp float)

-0:68      Constant:

-0:68        3.000000

-0:68        4.000000

-0:71  Function Definition: newVFun( (global void)

-0:71    Function Parameters: 

-0:73    Sequence

-0:73      move second child to first child (temp highp 3-component vector of float)

-0:73        'newV' (smooth out highp 3-component vector of float)

-0:73        'v3' (in highp 3-component vector of float)

-0:118  Function Definition: foo23( (global void)

-0:118    Function Parameters: 

-0:120    Sequence

-0:120      Sequence

-0:120        move second child to first child (temp highp 2-component vector of int)

-0:120          'x1' (temp highp 2-component vector of int)

-0:120          textureSize (global highp 2-component vector of int)

-0:120            's2D' (uniform lowp sampler2D)

-0:120            Constant:

-0:120              2 (const int)

-0:121      Constant:

-0:121        0.000000

-0:122      Sequence

-0:122        move second child to first child (temp highp 3-component vector of int)

-0:122          'x3' (temp highp 3-component vector of int)

-0:122          textureSize (global highp 3-component vector of int)

-0:122            's2DAS' (uniform lowp sampler2DArrayShadow)

-0:122            Constant:

-0:122              -1 (const int)

-0:123      Constant:

-0:123        0.000000

-0:124      Sequence

-0:124        move second child to first child (temp highp 4-component vector of float)

-0:124          'x4' (temp highp 4-component vector of float)

-0:124          texture (global highp 4-component vector of float)

-0:124            's2D' (uniform lowp sampler2D)

-0:124            'c2D' (in highp 2-component vector of float)

-0:125      Constant:

-0:125        0.000000

-0:126      Sequence

-0:126        move second child to first child (temp highp 4-component vector of float)

-0:126          'x5' (temp highp 4-component vector of float)

-0:126          textureProjOffset (global highp 4-component vector of float)

-0:126            's3D' (uniform lowp sampler3D)

-0:126            Constant:

-0:126              0.200000

-0:126              0.200000

-0:126              0.200000

-0:126              0.200000

-0:126            Constant:

-0:126              1 (const int)

-0:126              1 (const int)

-0:126              1 (const int)

-0:127      Constant:

-0:127        0.000000

-0:128      Sequence

-0:128        move second child to first child (temp highp float)

-0:128          'x6' (temp highp float)

-0:128          textureProjGradOffset (global highp float)

-0:128            's2DS' (uniform lowp sampler2DShadow)

-0:128            'invIn' (invariant in highp 4-component vector of float)

-0:128            Constant:

-0:128              4.200000

-0:128              4.200000

-0:128            Constant:

-0:128              5.300000

-0:128              5.300000

-0:128            Constant:

-0:128              1 (const int)

-0:128              1 (const int)

-0:137  Function Definition: foo2349( (global void)

-0:137    Function Parameters: 

-0:139    Sequence

-0:139      Sequence

-0:139        move second child to first child (temp 3-element array of highp float)

-0:139          'x' (temp 3-element array of highp float)

-0:139          Constant:

-0:139            1.000000

-0:139            2.000000

-0:139            3.000000

-0:140      Sequence

-0:140        move second child to first child (temp 3-element array of highp float)

-0:140          'y' (temp 3-element array of highp float)

-0:140          'x' (temp 3-element array of highp float)

-0:141      Sequence

-0:141        move second child to first child (temp 3-element array of highp float)

-0:141          'z' (temp 3-element array of highp float)

-0:141          'x' (temp 3-element array of highp float)

-0:143      move second child to first child (temp 3-element array of highp float)

-0:143        'w' (temp 3-element array of highp float)

-0:143        'y' (temp 3-element array of highp float)

-0:155  Function Definition: gggf(f1; (global highp int)

-0:155    Function Parameters: 

-0:155      'f' (in highp float)

-0:155    Sequence

-0:155      Branch: Return with expression

-0:155        Constant:

-0:155          2 (const int)

-0:158  Function Definition: agggf(f1; (global highp int)

-0:158    Function Parameters: 

-0:158      'f' (in highp float)

-0:158    Sequence

-0:158      Branch: Return with expression

-0:158        Constant:

-0:158          2 (const int)

-0:178  Function Definition: fooDeeparray( (global void)

-0:178    Function Parameters: 

-0:181    Sequence

-0:181      Sequence

-0:180        move second child to first child (temp 3-element array of highp float)

-0:180          'x' (temp 3-element array of highp float)

-0:180          Constant:

-0:180            1.000000

-0:180            2.000000

-0:180            3.000000

-0:181        move second child to first child (temp 4-element array of highp float)

-0:181          'y' (temp 4-element array of highp float)

-0:181          Constant:

-0:181            1.000000

-0:181            2.000000

-0:181            3.000000

-0:181            4.000000

-0:183      move second child to first child (temp 3-element array of highp float)

-0:183        'xp' (temp 3-element array of highp float)

-0:183        'x' (temp 3-element array of highp float)

-0:184      move second child to first child (temp 4-element array of highp float)

-0:184        'yp' (temp 4-element array of highp float)

-0:184        'y' (temp 4-element array of highp float)

-0:185      'xp' (temp 3-element array of highp float)

-0:186      'yp' (temp 4-element array of highp float)

-0:?   Linker Objects

-0:?     'm43' (uniform highp 4X3 matrix of float)

-0:?     'm33' (uniform highp 3X3 matrix of float)

-0:?     'm44' (uniform highp 4X4 matrix of float)

-0:?     'v3' (in highp 3-component vector of float)

-0:?     'v2' (smooth out highp 2-component vector of float)

-0:?     'bad' (in 10-element array of highp 4-component vector of float)

-0:?     'badorder' (in highp 4-component vector of float)

-0:?     'badorder2' (invariant smooth out highp 4-component vector of float)

-0:?     'badorder4' (centroid in highp 4-component vector of float)

-0:?     'badorder3' (flat out highp 4-component vector of float)

-0:?     'rep' (smooth flat out highp 4-component vector of float)

-0:?     'rep2' (centroid smooth sample out highp 4-component vector of float)

-0:?     'rep3' (in highp 4-component vector of float)

-0:?     's' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:?     'badsize' (global implicitly-sized array of highp float)

-0:?     'badsize2' (global implicitly-sized array of highp float)

-0:?     'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a})

-0:?     'okayA' (global 2-element array of highp float)

-0:?     'newV' (smooth out highp 3-component vector of float)

-0:?     'invIn' (in highp 4-component vector of float)

-0:?     's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:?     's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:?     'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})

-0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})

-0:?     's2D' (uniform lowp sampler2D)

-0:?     's3D' (uniform lowp sampler3D)

-0:?     's2DS' (uniform lowp sampler2DShadow)

-0:?     's2DAS' (uniform lowp sampler2DArrayShadow)

-0:?     'c2D' (in highp 2-component vector of float)

-0:?     'ssss' (smooth out structure{global highp float f})

-0:?     'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})

-0:?     'Bfoo' (global highp int)

-0:?     'B430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:27  Function Definition: main( (global void)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Sequence

-0:29        move second child to first child (temp highp int)

-0:29          'id' (temp highp int)

-0:29          add (temp highp int)

-0:29            'gl_VertexID' (gl_VertexId highp int VertexId)

-0:29            'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-0:31      Sequence

-0:31        move second child to first child (temp highp int)

-0:31          'c0' (temp highp int)

-0:31          Constant:

-0:31            64 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp highp int)

-0:32          'c1' (temp highp int)

-0:32          Constant:

-0:32            128 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp highp int)

-0:33          'c2' (temp highp int)

-0:33          Constant:

-0:33            16 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp highp int)

-0:34          'c3' (temp highp int)

-0:34          Constant:

-0:34            15 (const int)

-0:35      Sequence

-0:35        move second child to first child (temp highp int)

-0:35          'c4' (temp highp int)

-0:35          Constant:

-0:35            32 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp highp int)

-0:36          'c5' (temp highp int)

-0:36          Constant:

-0:36            80 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp highp int)

-0:37          'c6' (temp highp int)

-0:37          Constant:

-0:37            32 (const int)

-0:38      Sequence

-0:38        move second child to first child (temp highp int)

-0:38          'c7' (temp highp int)

-0:38          Constant:

-0:38            16 (const int)

-0:39      Sequence

-0:39        move second child to first child (temp highp int)

-0:39          'c8' (temp highp int)

-0:39          Constant:

-0:39            32 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp highp int)

-0:40          'c9' (temp highp int)

-0:40          Constant:

-0:40            -8 (const int)

-0:41      Sequence

-0:41        move second child to first child (temp highp int)

-0:41          'c10' (temp highp int)

-0:41          Constant:

-0:41            7 (const int)

-0:43      Sequence

-0:43        move second child to first child (temp highp 3X4 matrix of float)

-0:43          'tm' (temp highp 3X4 matrix of float)

-0:43          transpose (global highp 3X4 matrix of float)

-0:43            'm43' (uniform highp 4X3 matrix of float)

-0:44      Sequence

-0:44        move second child to first child (temp highp float)

-0:44          'dm' (temp highp float)

-0:44          determinant (global highp float)

-0:44            'm44' (uniform highp 4X4 matrix of float)

-0:45      Sequence

-0:45        move second child to first child (temp highp 3X3 matrix of float)

-0:45          'im' (temp highp 3X3 matrix of float)

-0:45          inverse (global highp 3X3 matrix of float)

-0:45            'm33' (uniform highp 3X3 matrix of float)

-0:47      Sequence

-0:47        move second child to first child (temp highp 3X2 matrix of float)

-0:47          'op' (temp highp 3X2 matrix of float)

-0:47          outer product (global highp 3X2 matrix of float)

-0:47            'v2' (smooth out highp 2-component vector of float)

-0:47            'v3' (in highp 3-component vector of float)

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:49        direct index (temp highp 4-component vector of float)

-0:49          'm44' (uniform highp 4X4 matrix of float)

-0:49          Constant:

-0:49            2 (const int)

-0:50      move second child to first child (temp highp float)

-0:50        'gl_PointSize' (gl_PointSize highp float PointSize)

-0:50        direct index (temp highp float)

-0:50          'v2' (smooth out highp 2-component vector of float)

-0:50          Constant:

-0:50            1 (const int)

-0:52      move second child to first child (temp highp 3-component vector of float)

-0:52        c: direct index for structure (global highp 3-component vector of float)

-0:52          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:52          Constant:

-0:52            0 (const int)

-0:52        'v3' (in highp 3-component vector of float)

-0:53      move second child to first child (temp highp float)

-0:53        f: direct index for structure (global highp float)

-0:53          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:53          Constant:

-0:53            1 (const int)

-0:53        'dm' (temp highp float)

-0:68  Sequence

-0:68    move second child to first child (temp 2-element array of highp float)

-0:68      'okayA' (global 2-element array of highp float)

-0:68      Constant:

-0:68        3.000000

-0:68        4.000000

-0:71  Function Definition: newVFun( (global void)

-0:71    Function Parameters: 

-0:73    Sequence

-0:73      move second child to first child (temp highp 3-component vector of float)

-0:73        'newV' (smooth out highp 3-component vector of float)

-0:73        'v3' (in highp 3-component vector of float)

-0:118  Function Definition: foo23( (global void)

-0:118    Function Parameters: 

-0:120    Sequence

-0:120      Sequence

-0:120        move second child to first child (temp highp 2-component vector of int)

-0:120          'x1' (temp highp 2-component vector of int)

-0:120          textureSize (global highp 2-component vector of int)

-0:120            's2D' (uniform lowp sampler2D)

-0:120            Constant:

-0:120              2 (const int)

-0:121      Constant:

-0:121        0.000000

-0:122      Sequence

-0:122        move second child to first child (temp highp 3-component vector of int)

-0:122          'x3' (temp highp 3-component vector of int)

-0:122          textureSize (global highp 3-component vector of int)

-0:122            's2DAS' (uniform lowp sampler2DArrayShadow)

-0:122            Constant:

-0:122              -1 (const int)

-0:123      Constant:

-0:123        0.000000

-0:124      Sequence

-0:124        move second child to first child (temp highp 4-component vector of float)

-0:124          'x4' (temp highp 4-component vector of float)

-0:124          texture (global highp 4-component vector of float)

-0:124            's2D' (uniform lowp sampler2D)

-0:124            'c2D' (in highp 2-component vector of float)

-0:125      Constant:

-0:125        0.000000

-0:126      Sequence

-0:126        move second child to first child (temp highp 4-component vector of float)

-0:126          'x5' (temp highp 4-component vector of float)

-0:126          textureProjOffset (global highp 4-component vector of float)

-0:126            's3D' (uniform lowp sampler3D)

-0:126            Constant:

-0:126              0.200000

-0:126              0.200000

-0:126              0.200000

-0:126              0.200000

-0:126            Constant:

-0:126              1 (const int)

-0:126              1 (const int)

-0:126              1 (const int)

-0:127      Constant:

-0:127        0.000000

-0:128      Sequence

-0:128        move second child to first child (temp highp float)

-0:128          'x6' (temp highp float)

-0:128          textureProjGradOffset (global highp float)

-0:128            's2DS' (uniform lowp sampler2DShadow)

-0:128            'invIn' (invariant in highp 4-component vector of float)

-0:128            Constant:

-0:128              4.200000

-0:128              4.200000

-0:128            Constant:

-0:128              5.300000

-0:128              5.300000

-0:128            Constant:

-0:128              1 (const int)

-0:128              1 (const int)

-0:137  Function Definition: foo2349( (global void)

-0:137    Function Parameters: 

-0:139    Sequence

-0:139      Sequence

-0:139        move second child to first child (temp 3-element array of highp float)

-0:139          'x' (temp 3-element array of highp float)

-0:139          Constant:

-0:139            1.000000

-0:139            2.000000

-0:139            3.000000

-0:140      Sequence

-0:140        move second child to first child (temp 3-element array of highp float)

-0:140          'y' (temp 3-element array of highp float)

-0:140          'x' (temp 3-element array of highp float)

-0:141      Sequence

-0:141        move second child to first child (temp 3-element array of highp float)

-0:141          'z' (temp 3-element array of highp float)

-0:141          'x' (temp 3-element array of highp float)

-0:143      move second child to first child (temp 3-element array of highp float)

-0:143        'w' (temp 3-element array of highp float)

-0:143        'y' (temp 3-element array of highp float)

-0:155  Function Definition: gggf(f1; (global highp int)

-0:155    Function Parameters: 

-0:155      'f' (in highp float)

-0:155    Sequence

-0:155      Branch: Return with expression

-0:155        Constant:

-0:155          2 (const int)

-0:158  Function Definition: agggf(f1; (global highp int)

-0:158    Function Parameters: 

-0:158      'f' (in highp float)

-0:158    Sequence

-0:158      Branch: Return with expression

-0:158        Constant:

-0:158          2 (const int)

-0:178  Function Definition: fooDeeparray( (global void)

-0:178    Function Parameters: 

-0:181    Sequence

-0:181      Sequence

-0:180        move second child to first child (temp 3-element array of highp float)

-0:180          'x' (temp 3-element array of highp float)

-0:180          Constant:

-0:180            1.000000

-0:180            2.000000

-0:180            3.000000

-0:181        move second child to first child (temp 4-element array of highp float)

-0:181          'y' (temp 4-element array of highp float)

-0:181          Constant:

-0:181            1.000000

-0:181            2.000000

-0:181            3.000000

-0:181            4.000000

-0:183      move second child to first child (temp 3-element array of highp float)

-0:183        'xp' (temp 3-element array of highp float)

-0:183        'x' (temp 3-element array of highp float)

-0:184      move second child to first child (temp 4-element array of highp float)

-0:184        'yp' (temp 4-element array of highp float)

-0:184        'y' (temp 4-element array of highp float)

-0:185      'xp' (temp 3-element array of highp float)

-0:186      'yp' (temp 4-element array of highp float)

-0:?   Linker Objects

-0:?     'm43' (uniform highp 4X3 matrix of float)

-0:?     'm33' (uniform highp 3X3 matrix of float)

-0:?     'm44' (uniform highp 4X4 matrix of float)

-0:?     'v3' (in highp 3-component vector of float)

-0:?     'v2' (smooth out highp 2-component vector of float)

-0:?     'bad' (in 10-element array of highp 4-component vector of float)

-0:?     'badorder' (in highp 4-component vector of float)

-0:?     'badorder2' (invariant smooth out highp 4-component vector of float)

-0:?     'badorder4' (centroid in highp 4-component vector of float)

-0:?     'badorder3' (flat out highp 4-component vector of float)

-0:?     'rep' (smooth flat out highp 4-component vector of float)

-0:?     'rep2' (centroid smooth sample out highp 4-component vector of float)

-0:?     'rep3' (in highp 4-component vector of float)

-0:?     's' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:?     'badsize' (global 1-element array of highp float)

-0:?     'badsize2' (global 1-element array of highp float)

-0:?     'ubInst' (layout(column_major shared ) uniform 1-element array of block{layout(column_major shared ) uniform 1-element array of highp int a})

-0:?     'okayA' (global 2-element array of highp float)

-0:?     'newV' (smooth out highp 3-component vector of float)

-0:?     'invIn' (in highp 4-component vector of float)

-0:?     's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:?     's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})

-0:?     'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})

-0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})

-0:?     's2D' (uniform lowp sampler2D)

-0:?     's3D' (uniform lowp sampler3D)

-0:?     's2DS' (uniform lowp sampler2DShadow)

-0:?     's2DAS' (uniform lowp sampler2DArrayShadow)

-0:?     'c2D' (in highp 2-component vector of float)

-0:?     'ssss' (smooth out structure{global highp float f})

-0:?     'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})

-0:?     'Bfoo' (global highp int)

-0:?     'B430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+300.vert
+ERROR: 0:8: 'varying' : Reserved word. 
+ERROR: 0:8: 'varying' : no longer supported in es profile; removed in version 300
+ERROR: 0:9: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:10: '' : precision qualifier must appear as last qualifier 
+ERROR: 0:11: '' : invariant qualifier must appear first 
+ERROR: 0:12: '' : Auxiliary qualifiers (centroid, patch, and sample) must appear before storage and precision qualifiers 
+ERROR: 0:12: '' : vertex input cannot be further qualified 
+ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers 
+ERROR: 0:14: '' : in/out must appear before const 
+ERROR: 0:15: '' : precision qualifier must appear as last qualifier 
+ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective) 
+ERROR: 0:17: 'sample' : Reserved word. 
+ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 
+ERROR: 0:18: 'uniform' : too many storage qualifiers 
+ERROR: 0:56: '#error' : GL_ES is set  
+ERROR: 0:62: '' : array size required 
+ERROR: 0:63: '' : array size required 
+ERROR: 0:64: '' : array size required 
+ERROR: 0:65: '' : array size required 
+ERROR: 0:67: '' : array size required 
+ERROR: 0:76: 'invariant' : cannot change qualification after use 
+ERROR: 0:78: 'invariant' : can only apply to an output 
+ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform
+ERROR: 0:121: 'textureSize' : no matching overloaded function found 
+ERROR: 0:123: 'textureSize' : no matching overloaded function found 
+ERROR: 0:125: 'texture' : no matching overloaded function found 
+ERROR: 0:127: 'textureProjOffset' : no matching overloaded function found 
+ERROR: 0:132: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2
+ERROR: 0:135: 'in' : overloaded functions must have the same parameter storage qualifiers for argument 2
+ERROR: 0:146: '' : array size required 
+ERROR: 0:147: '' : array size required 
+ERROR: 0:148: '' : array size required 
+ERROR: 0:149: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:168: 'Binst' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 
+ERROR: 0:169: 'Bblock' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 
+ERROR: 0:170: 'Bfoo' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable 
+ERROR: 0:172: 'std430' : not supported for this version or the enabled extensions 
+ERROR: 0:172: 'std430' : requires the 'buffer' storage qualifier 
+ERROR: 0:175: '' : array size required 
+ERROR: 0:185: 'assign' :  cannot convert from 'temp 4-element array of highp float' to 'temp 3-element array of highp float'
+ERROR: 0:186: 'assign' :  cannot convert from 'temp 3-element array of highp float' to 'temp 4-element array of highp float'
+ERROR: 44 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( (global void)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Sequence
+0:29        move second child to first child (temp highp int)
+0:29          'id' (temp highp int)
+0:29          add (temp highp int)
+0:29            'gl_VertexID' (gl_VertexId highp int VertexId)
+0:29            'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:31      Sequence
+0:31        move second child to first child (temp highp int)
+0:31          'c0' (temp highp int)
+0:31          Constant:
+0:31            64 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp highp int)
+0:32          'c1' (temp highp int)
+0:32          Constant:
+0:32            128 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp highp int)
+0:33          'c2' (temp highp int)
+0:33          Constant:
+0:33            16 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp highp int)
+0:34          'c3' (temp highp int)
+0:34          Constant:
+0:34            15 (const int)
+0:35      Sequence
+0:35        move second child to first child (temp highp int)
+0:35          'c4' (temp highp int)
+0:35          Constant:
+0:35            32 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp highp int)
+0:36          'c5' (temp highp int)
+0:36          Constant:
+0:36            80 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp highp int)
+0:37          'c6' (temp highp int)
+0:37          Constant:
+0:37            32 (const int)
+0:38      Sequence
+0:38        move second child to first child (temp highp int)
+0:38          'c7' (temp highp int)
+0:38          Constant:
+0:38            16 (const int)
+0:39      Sequence
+0:39        move second child to first child (temp highp int)
+0:39          'c8' (temp highp int)
+0:39          Constant:
+0:39            32 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp highp int)
+0:40          'c9' (temp highp int)
+0:40          Constant:
+0:40            -8 (const int)
+0:41      Sequence
+0:41        move second child to first child (temp highp int)
+0:41          'c10' (temp highp int)
+0:41          Constant:
+0:41            7 (const int)
+0:43      Sequence
+0:43        move second child to first child (temp highp 3X4 matrix of float)
+0:43          'tm' (temp highp 3X4 matrix of float)
+0:43          transpose (global highp 3X4 matrix of float)
+0:43            'm43' (uniform highp 4X3 matrix of float)
+0:44      Sequence
+0:44        move second child to first child (temp highp float)
+0:44          'dm' (temp highp float)
+0:44          determinant (global highp float)
+0:44            'm44' (uniform highp 4X4 matrix of float)
+0:45      Sequence
+0:45        move second child to first child (temp highp 3X3 matrix of float)
+0:45          'im' (temp highp 3X3 matrix of float)
+0:45          inverse (global highp 3X3 matrix of float)
+0:45            'm33' (uniform highp 3X3 matrix of float)
+0:47      Sequence
+0:47        move second child to first child (temp highp 3X2 matrix of float)
+0:47          'op' (temp highp 3X2 matrix of float)
+0:47          outer product (global highp 3X2 matrix of float)
+0:47            'v2' (smooth out highp 2-component vector of float)
+0:47            'v3' (in highp 3-component vector of float)
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:49        direct index (temp highp 4-component vector of float)
+0:49          'm44' (uniform highp 4X4 matrix of float)
+0:49          Constant:
+0:49            2 (const int)
+0:50      move second child to first child (temp highp float)
+0:50        'gl_PointSize' (gl_PointSize highp float PointSize)
+0:50        direct index (temp highp float)
+0:50          'v2' (smooth out highp 2-component vector of float)
+0:50          Constant:
+0:50            1 (const int)
+0:52      move second child to first child (temp highp 3-component vector of float)
+0:52        c: direct index for structure (global highp 3-component vector of float)
+0:52          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:52          Constant:
+0:52            0 (const int)
+0:52        'v3' (in highp 3-component vector of float)
+0:53      move second child to first child (temp highp float)
+0:53        f: direct index for structure (global highp float)
+0:53          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:53          Constant:
+0:53            1 (const int)
+0:53        'dm' (temp highp float)
+0:68  Sequence
+0:68    move second child to first child (temp 2-element array of highp float)
+0:68      'okayA' (global 2-element array of highp float)
+0:68      Constant:
+0:68        3.000000
+0:68        4.000000
+0:71  Function Definition: newVFun( (global void)
+0:71    Function Parameters: 
+0:73    Sequence
+0:73      move second child to first child (temp highp 3-component vector of float)
+0:73        'newV' (smooth out highp 3-component vector of float)
+0:73        'v3' (in highp 3-component vector of float)
+0:118  Function Definition: foo23( (global void)
+0:118    Function Parameters: 
+0:120    Sequence
+0:120      Sequence
+0:120        move second child to first child (temp highp 2-component vector of int)
+0:120          'x1' (temp highp 2-component vector of int)
+0:120          textureSize (global highp 2-component vector of int)
+0:120            's2D' (uniform lowp sampler2D)
+0:120            Constant:
+0:120              2 (const int)
+0:121      Constant:
+0:121        0.000000
+0:122      Sequence
+0:122        move second child to first child (temp highp 3-component vector of int)
+0:122          'x3' (temp highp 3-component vector of int)
+0:122          textureSize (global highp 3-component vector of int)
+0:122            's2DAS' (uniform lowp sampler2DArrayShadow)
+0:122            Constant:
+0:122              -1 (const int)
+0:123      Constant:
+0:123        0.000000
+0:124      Sequence
+0:124        move second child to first child (temp highp 4-component vector of float)
+0:124          'x4' (temp highp 4-component vector of float)
+0:124          texture (global highp 4-component vector of float)
+0:124            's2D' (uniform lowp sampler2D)
+0:124            'c2D' (in highp 2-component vector of float)
+0:125      Constant:
+0:125        0.000000
+0:126      Sequence
+0:126        move second child to first child (temp highp 4-component vector of float)
+0:126          'x5' (temp highp 4-component vector of float)
+0:126          textureProjOffset (global highp 4-component vector of float)
+0:126            's3D' (uniform lowp sampler3D)
+0:126            Constant:
+0:126              0.200000
+0:126              0.200000
+0:126              0.200000
+0:126              0.200000
+0:126            Constant:
+0:126              1 (const int)
+0:126              1 (const int)
+0:126              1 (const int)
+0:127      Constant:
+0:127        0.000000
+0:128      Sequence
+0:128        move second child to first child (temp highp float)
+0:128          'x6' (temp highp float)
+0:128          textureProjGradOffset (global highp float)
+0:128            's2DS' (uniform lowp sampler2DShadow)
+0:128            'invIn' (invariant in highp 4-component vector of float)
+0:128            Constant:
+0:128              4.200000
+0:128              4.200000
+0:128            Constant:
+0:128              5.300000
+0:128              5.300000
+0:128            Constant:
+0:128              1 (const int)
+0:128              1 (const int)
+0:137  Function Definition: foo2349( (global void)
+0:137    Function Parameters: 
+0:139    Sequence
+0:139      Sequence
+0:139        move second child to first child (temp 3-element array of highp float)
+0:139          'x' (temp 3-element array of highp float)
+0:139          Constant:
+0:139            1.000000
+0:139            2.000000
+0:139            3.000000
+0:140      Sequence
+0:140        move second child to first child (temp 3-element array of highp float)
+0:140          'y' (temp 3-element array of highp float)
+0:140          'x' (temp 3-element array of highp float)
+0:141      Sequence
+0:141        move second child to first child (temp 3-element array of highp float)
+0:141          'z' (temp 3-element array of highp float)
+0:141          'x' (temp 3-element array of highp float)
+0:143      move second child to first child (temp 3-element array of highp float)
+0:143        'w' (temp 3-element array of highp float)
+0:143        'y' (temp 3-element array of highp float)
+0:155  Function Definition: gggf(f1; (global highp int)
+0:155    Function Parameters: 
+0:155      'f' (in highp float)
+0:155    Sequence
+0:155      Branch: Return with expression
+0:155        Constant:
+0:155          2 (const int)
+0:158  Function Definition: agggf(f1; (global highp int)
+0:158    Function Parameters: 
+0:158      'f' (in highp float)
+0:158    Sequence
+0:158      Branch: Return with expression
+0:158        Constant:
+0:158          2 (const int)
+0:178  Function Definition: fooDeeparray( (global void)
+0:178    Function Parameters: 
+0:181    Sequence
+0:181      Sequence
+0:180        move second child to first child (temp 3-element array of highp float)
+0:180          'x' (temp 3-element array of highp float)
+0:180          Constant:
+0:180            1.000000
+0:180            2.000000
+0:180            3.000000
+0:181        move second child to first child (temp 4-element array of highp float)
+0:181          'y' (temp 4-element array of highp float)
+0:181          Constant:
+0:181            1.000000
+0:181            2.000000
+0:181            3.000000
+0:181            4.000000
+0:183      move second child to first child (temp 3-element array of highp float)
+0:183        'xp' (temp 3-element array of highp float)
+0:183        'x' (temp 3-element array of highp float)
+0:184      move second child to first child (temp 4-element array of highp float)
+0:184        'yp' (temp 4-element array of highp float)
+0:184        'y' (temp 4-element array of highp float)
+0:185      'xp' (temp 3-element array of highp float)
+0:186      'yp' (temp 4-element array of highp float)
+0:?   Linker Objects
+0:?     'm43' (uniform highp 4X3 matrix of float)
+0:?     'm33' (uniform highp 3X3 matrix of float)
+0:?     'm44' (uniform highp 4X4 matrix of float)
+0:?     'v3' (in highp 3-component vector of float)
+0:?     'v2' (smooth out highp 2-component vector of float)
+0:?     'bad' (in 10-element array of highp 4-component vector of float)
+0:?     'badorder' (in highp 4-component vector of float)
+0:?     'badorder2' (invariant smooth out highp 4-component vector of float)
+0:?     'badorder4' (centroid in highp 4-component vector of float)
+0:?     'badorder3' (flat out highp 4-component vector of float)
+0:?     'rep' (smooth flat out highp 4-component vector of float)
+0:?     'rep2' (centroid smooth sample out highp 4-component vector of float)
+0:?     'rep3' (in highp 4-component vector of float)
+0:?     's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:?     'badsize' (global implicitly-sized array of highp float)
+0:?     'badsize2' (global implicitly-sized array of highp float)
+0:?     'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
+0:?     'okayA' (global 2-element array of highp float)
+0:?     'newV' (smooth out highp 3-component vector of float)
+0:?     'invIn' (in highp 4-component vector of float)
+0:?     's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:?     's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:?     'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})
+0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})
+0:?     's2D' (uniform lowp sampler2D)
+0:?     's3D' (uniform lowp sampler3D)
+0:?     's2DS' (uniform lowp sampler2DShadow)
+0:?     's2DAS' (uniform lowp sampler2DArrayShadow)
+0:?     'c2D' (in highp 2-component vector of float)
+0:?     'ssss' (smooth out structure{global highp float f})
+0:?     'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})
+0:?     'Bfoo' (global highp int)
+0:?     'B430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( (global void)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Sequence
+0:29        move second child to first child (temp highp int)
+0:29          'id' (temp highp int)
+0:29          add (temp highp int)
+0:29            'gl_VertexID' (gl_VertexId highp int VertexId)
+0:29            'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:31      Sequence
+0:31        move second child to first child (temp highp int)
+0:31          'c0' (temp highp int)
+0:31          Constant:
+0:31            64 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp highp int)
+0:32          'c1' (temp highp int)
+0:32          Constant:
+0:32            128 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp highp int)
+0:33          'c2' (temp highp int)
+0:33          Constant:
+0:33            16 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp highp int)
+0:34          'c3' (temp highp int)
+0:34          Constant:
+0:34            15 (const int)
+0:35      Sequence
+0:35        move second child to first child (temp highp int)
+0:35          'c4' (temp highp int)
+0:35          Constant:
+0:35            32 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp highp int)
+0:36          'c5' (temp highp int)
+0:36          Constant:
+0:36            80 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp highp int)
+0:37          'c6' (temp highp int)
+0:37          Constant:
+0:37            32 (const int)
+0:38      Sequence
+0:38        move second child to first child (temp highp int)
+0:38          'c7' (temp highp int)
+0:38          Constant:
+0:38            16 (const int)
+0:39      Sequence
+0:39        move second child to first child (temp highp int)
+0:39          'c8' (temp highp int)
+0:39          Constant:
+0:39            32 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp highp int)
+0:40          'c9' (temp highp int)
+0:40          Constant:
+0:40            -8 (const int)
+0:41      Sequence
+0:41        move second child to first child (temp highp int)
+0:41          'c10' (temp highp int)
+0:41          Constant:
+0:41            7 (const int)
+0:43      Sequence
+0:43        move second child to first child (temp highp 3X4 matrix of float)
+0:43          'tm' (temp highp 3X4 matrix of float)
+0:43          transpose (global highp 3X4 matrix of float)
+0:43            'm43' (uniform highp 4X3 matrix of float)
+0:44      Sequence
+0:44        move second child to first child (temp highp float)
+0:44          'dm' (temp highp float)
+0:44          determinant (global highp float)
+0:44            'm44' (uniform highp 4X4 matrix of float)
+0:45      Sequence
+0:45        move second child to first child (temp highp 3X3 matrix of float)
+0:45          'im' (temp highp 3X3 matrix of float)
+0:45          inverse (global highp 3X3 matrix of float)
+0:45            'm33' (uniform highp 3X3 matrix of float)
+0:47      Sequence
+0:47        move second child to first child (temp highp 3X2 matrix of float)
+0:47          'op' (temp highp 3X2 matrix of float)
+0:47          outer product (global highp 3X2 matrix of float)
+0:47            'v2' (smooth out highp 2-component vector of float)
+0:47            'v3' (in highp 3-component vector of float)
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:49        direct index (temp highp 4-component vector of float)
+0:49          'm44' (uniform highp 4X4 matrix of float)
+0:49          Constant:
+0:49            2 (const int)
+0:50      move second child to first child (temp highp float)
+0:50        'gl_PointSize' (gl_PointSize highp float PointSize)
+0:50        direct index (temp highp float)
+0:50          'v2' (smooth out highp 2-component vector of float)
+0:50          Constant:
+0:50            1 (const int)
+0:52      move second child to first child (temp highp 3-component vector of float)
+0:52        c: direct index for structure (global highp 3-component vector of float)
+0:52          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:52          Constant:
+0:52            0 (const int)
+0:52        'v3' (in highp 3-component vector of float)
+0:53      move second child to first child (temp highp float)
+0:53        f: direct index for structure (global highp float)
+0:53          's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:53          Constant:
+0:53            1 (const int)
+0:53        'dm' (temp highp float)
+0:68  Sequence
+0:68    move second child to first child (temp 2-element array of highp float)
+0:68      'okayA' (global 2-element array of highp float)
+0:68      Constant:
+0:68        3.000000
+0:68        4.000000
+0:71  Function Definition: newVFun( (global void)
+0:71    Function Parameters: 
+0:73    Sequence
+0:73      move second child to first child (temp highp 3-component vector of float)
+0:73        'newV' (smooth out highp 3-component vector of float)
+0:73        'v3' (in highp 3-component vector of float)
+0:118  Function Definition: foo23( (global void)
+0:118    Function Parameters: 
+0:120    Sequence
+0:120      Sequence
+0:120        move second child to first child (temp highp 2-component vector of int)
+0:120          'x1' (temp highp 2-component vector of int)
+0:120          textureSize (global highp 2-component vector of int)
+0:120            's2D' (uniform lowp sampler2D)
+0:120            Constant:
+0:120              2 (const int)
+0:121      Constant:
+0:121        0.000000
+0:122      Sequence
+0:122        move second child to first child (temp highp 3-component vector of int)
+0:122          'x3' (temp highp 3-component vector of int)
+0:122          textureSize (global highp 3-component vector of int)
+0:122            's2DAS' (uniform lowp sampler2DArrayShadow)
+0:122            Constant:
+0:122              -1 (const int)
+0:123      Constant:
+0:123        0.000000
+0:124      Sequence
+0:124        move second child to first child (temp highp 4-component vector of float)
+0:124          'x4' (temp highp 4-component vector of float)
+0:124          texture (global highp 4-component vector of float)
+0:124            's2D' (uniform lowp sampler2D)
+0:124            'c2D' (in highp 2-component vector of float)
+0:125      Constant:
+0:125        0.000000
+0:126      Sequence
+0:126        move second child to first child (temp highp 4-component vector of float)
+0:126          'x5' (temp highp 4-component vector of float)
+0:126          textureProjOffset (global highp 4-component vector of float)
+0:126            's3D' (uniform lowp sampler3D)
+0:126            Constant:
+0:126              0.200000
+0:126              0.200000
+0:126              0.200000
+0:126              0.200000
+0:126            Constant:
+0:126              1 (const int)
+0:126              1 (const int)
+0:126              1 (const int)
+0:127      Constant:
+0:127        0.000000
+0:128      Sequence
+0:128        move second child to first child (temp highp float)
+0:128          'x6' (temp highp float)
+0:128          textureProjGradOffset (global highp float)
+0:128            's2DS' (uniform lowp sampler2DShadow)
+0:128            'invIn' (invariant in highp 4-component vector of float)
+0:128            Constant:
+0:128              4.200000
+0:128              4.200000
+0:128            Constant:
+0:128              5.300000
+0:128              5.300000
+0:128            Constant:
+0:128              1 (const int)
+0:128              1 (const int)
+0:137  Function Definition: foo2349( (global void)
+0:137    Function Parameters: 
+0:139    Sequence
+0:139      Sequence
+0:139        move second child to first child (temp 3-element array of highp float)
+0:139          'x' (temp 3-element array of highp float)
+0:139          Constant:
+0:139            1.000000
+0:139            2.000000
+0:139            3.000000
+0:140      Sequence
+0:140        move second child to first child (temp 3-element array of highp float)
+0:140          'y' (temp 3-element array of highp float)
+0:140          'x' (temp 3-element array of highp float)
+0:141      Sequence
+0:141        move second child to first child (temp 3-element array of highp float)
+0:141          'z' (temp 3-element array of highp float)
+0:141          'x' (temp 3-element array of highp float)
+0:143      move second child to first child (temp 3-element array of highp float)
+0:143        'w' (temp 3-element array of highp float)
+0:143        'y' (temp 3-element array of highp float)
+0:155  Function Definition: gggf(f1; (global highp int)
+0:155    Function Parameters: 
+0:155      'f' (in highp float)
+0:155    Sequence
+0:155      Branch: Return with expression
+0:155        Constant:
+0:155          2 (const int)
+0:158  Function Definition: agggf(f1; (global highp int)
+0:158    Function Parameters: 
+0:158      'f' (in highp float)
+0:158    Sequence
+0:158      Branch: Return with expression
+0:158        Constant:
+0:158          2 (const int)
+0:178  Function Definition: fooDeeparray( (global void)
+0:178    Function Parameters: 
+0:181    Sequence
+0:181      Sequence
+0:180        move second child to first child (temp 3-element array of highp float)
+0:180          'x' (temp 3-element array of highp float)
+0:180          Constant:
+0:180            1.000000
+0:180            2.000000
+0:180            3.000000
+0:181        move second child to first child (temp 4-element array of highp float)
+0:181          'y' (temp 4-element array of highp float)
+0:181          Constant:
+0:181            1.000000
+0:181            2.000000
+0:181            3.000000
+0:181            4.000000
+0:183      move second child to first child (temp 3-element array of highp float)
+0:183        'xp' (temp 3-element array of highp float)
+0:183        'x' (temp 3-element array of highp float)
+0:184      move second child to first child (temp 4-element array of highp float)
+0:184        'yp' (temp 4-element array of highp float)
+0:184        'y' (temp 4-element array of highp float)
+0:185      'xp' (temp 3-element array of highp float)
+0:186      'yp' (temp 4-element array of highp float)
+0:?   Linker Objects
+0:?     'm43' (uniform highp 4X3 matrix of float)
+0:?     'm33' (uniform highp 3X3 matrix of float)
+0:?     'm44' (uniform highp 4X4 matrix of float)
+0:?     'v3' (in highp 3-component vector of float)
+0:?     'v2' (smooth out highp 2-component vector of float)
+0:?     'bad' (in 10-element array of highp 4-component vector of float)
+0:?     'badorder' (in highp 4-component vector of float)
+0:?     'badorder2' (invariant smooth out highp 4-component vector of float)
+0:?     'badorder4' (centroid in highp 4-component vector of float)
+0:?     'badorder3' (flat out highp 4-component vector of float)
+0:?     'rep' (smooth flat out highp 4-component vector of float)
+0:?     'rep2' (centroid smooth sample out highp 4-component vector of float)
+0:?     'rep3' (in highp 4-component vector of float)
+0:?     's' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:?     'badsize' (global 1-element array of highp float)
+0:?     'badsize2' (global 1-element array of highp float)
+0:?     'ubInst' (layout(column_major shared ) uniform 1-element array of block{layout(column_major shared ) uniform 1-element array of highp int a})
+0:?     'okayA' (global 2-element array of highp float)
+0:?     'newV' (smooth out highp 3-component vector of float)
+0:?     'invIn' (in highp 4-component vector of float)
+0:?     's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:?     's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:?     'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})
+0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})
+0:?     's2D' (uniform lowp sampler2D)
+0:?     's3D' (uniform lowp sampler3D)
+0:?     's2DS' (uniform lowp sampler2DShadow)
+0:?     's2DAS' (uniform lowp sampler2DArrayShadow)
+0:?     'c2D' (in highp 2-component vector of float)
+0:?     'ssss' (smooth out structure{global highp float f})
+0:?     'Binst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp int a})
+0:?     'Bfoo' (global highp int)
+0:?     'B430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out
index a61515c..2bb4cf5 100644
--- a/Test/baseResults/300BuiltIns.frag.out
+++ b/Test/baseResults/300BuiltIns.frag.out
@@ -1,418 +1,418 @@
-300BuiltIns.frag

-ERROR: 0:6: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:70: 'noise2' : no matching overloaded function found 

-ERROR: 0:72: 't__' : identifiers containing consecutive underscores ("__") are reserved, and an error if version <= 300 

-ERROR: 0:75: '#define' : names containing consecutive underscores are reserved, and an error if version <= 300: __D

-ERROR: 4 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:26  Function Definition: main( (global void)

-0:26    Function Parameters: 

-0:29    Sequence

-0:29      Sequence

-0:29        move second child to first child (temp mediump 3-component vector of float)

-0:29          'v' (temp mediump 3-component vector of float)

-0:29          mix (global mediump 3-component vector of float)

-0:29            'x' (global mediump 3-component vector of float)

-0:29            'y' (global mediump 3-component vector of float)

-0:29            'bv' (global 3-component vector of bool)

-0:30      Sequence

-0:30        move second child to first child (temp mediump 4-component vector of int)

-0:30          'iv10' (temp mediump 4-component vector of int)

-0:30          Absolute value (global mediump 4-component vector of int)

-0:30            'iv4a' (global mediump 4-component vector of int)

-0:31      Sequence

-0:31        move second child to first child (temp mediump 4-component vector of int)

-0:31          'iv11' (temp mediump 4-component vector of int)

-0:31          Sign (global mediump 4-component vector of int)

-0:31            'iv4a' (global mediump 4-component vector of int)

-0:32      Sequence

-0:32        move second child to first child (temp mediump 4-component vector of int)

-0:32          'iv12' (temp mediump 4-component vector of int)

-0:32          min (global mediump 4-component vector of int)

-0:32            'iv4a' (global mediump 4-component vector of int)

-0:32            'iv4b' (global mediump 4-component vector of int)

-0:33      Sequence

-0:33        move second child to first child (temp mediump 4-component vector of int)

-0:33          'iv13' (temp mediump 4-component vector of int)

-0:33          min (global mediump 4-component vector of int)

-0:33            'iv4a' (global mediump 4-component vector of int)

-0:33            'imin' (global mediump int)

-0:34      Sequence

-0:34        move second child to first child (temp mediump 2-component vector of uint)

-0:34          'u' (temp mediump 2-component vector of uint)

-0:34          min (global mediump 2-component vector of uint)

-0:34            'uv2x' (global mediump 2-component vector of uint)

-0:34            'uv2y' (global mediump 2-component vector of uint)

-0:35      Sequence

-0:35        move second child to first child (temp mediump 4-component vector of uint)

-0:35          'uv' (temp mediump 4-component vector of uint)

-0:35          min (global mediump 4-component vector of uint)

-0:35            'uv4y' (global mediump 4-component vector of uint)

-0:35            'uy' (global mediump uint)

-0:36      Sequence

-0:36        move second child to first child (temp mediump 3-component vector of int)

-0:36          'iv14' (temp mediump 3-component vector of int)

-0:36          max (global mediump 3-component vector of int)

-0:36            'iv3a' (global mediump 3-component vector of int)

-0:36            'iv3b' (global mediump 3-component vector of int)

-0:37      Sequence

-0:37        move second child to first child (temp mediump 4-component vector of int)

-0:37          'iv15' (temp mediump 4-component vector of int)

-0:37          max (global mediump 4-component vector of int)

-0:37            'iv4a' (global mediump 4-component vector of int)

-0:37            'imax' (global mediump int)

-0:38      Sequence

-0:38        move second child to first child (temp mediump 2-component vector of uint)

-0:38          'u10' (temp mediump 2-component vector of uint)

-0:38          max (global mediump 2-component vector of uint)

-0:38            'uv2x' (global mediump 2-component vector of uint)

-0:38            'uv2y' (global mediump 2-component vector of uint)

-0:39      Sequence

-0:39        move second child to first child (temp mediump 2-component vector of uint)

-0:39          'u11' (temp mediump 2-component vector of uint)

-0:39          max (global mediump 2-component vector of uint)

-0:39            'uv2x' (global mediump 2-component vector of uint)

-0:39            'uy' (global mediump uint)

-0:40      Sequence

-0:40        move second child to first child (temp mediump 4-component vector of int)

-0:40          'iv16' (temp mediump 4-component vector of int)

-0:40          clamp (global mediump 4-component vector of int)

-0:40            'iv4a' (global mediump 4-component vector of int)

-0:40            'iv4a' (global mediump 4-component vector of int)

-0:40            'iv4b' (global mediump 4-component vector of int)

-0:41      Sequence

-0:41        move second child to first child (temp mediump 4-component vector of int)

-0:41          'iv17' (temp mediump 4-component vector of int)

-0:41          clamp (global mediump 4-component vector of int)

-0:41            'iv4a' (global mediump 4-component vector of int)

-0:41            'imin' (global mediump int)

-0:41            'imax' (global mediump int)

-0:42      Sequence

-0:42        move second child to first child (temp mediump 2-component vector of uint)

-0:42          'u12' (temp mediump 2-component vector of uint)

-0:42          clamp (global mediump 2-component vector of uint)

-0:42            'uv2x' (global mediump 2-component vector of uint)

-0:42            'uv2y' (global mediump 2-component vector of uint)

-0:42            'uv2c' (global mediump 2-component vector of uint)

-0:43      Sequence

-0:43        move second child to first child (temp mediump 4-component vector of uint)

-0:43          'uv10' (temp mediump 4-component vector of uint)

-0:43          clamp (global mediump 4-component vector of uint)

-0:43            'uv4y' (global mediump 4-component vector of uint)

-0:43            'umin' (global mediump uint)

-0:43            'umax' (global mediump uint)

-0:47      Sequence

-0:47        move second child to first child (temp mediump 3-component vector of float)

-0:47          'v11' (temp mediump 3-component vector of float)

-0:47          modf (global mediump 3-component vector of float)

-0:47            'x' (global mediump 3-component vector of float)

-0:47            'modfOut' (temp mediump 3-component vector of float)

-0:49      Sequence

-0:49        move second child to first child (temp mediump float)

-0:49          't' (temp mediump float)

-0:49          trunc (global mediump float)

-0:49            'f' (global mediump float)

-0:50      Sequence

-0:50        move second child to first child (temp mediump 2-component vector of float)

-0:50          'v12' (temp mediump 2-component vector of float)

-0:50          round (global mediump 2-component vector of float)

-0:50            'v2a' (global mediump 2-component vector of float)

-0:51      Sequence

-0:51        move second child to first child (temp mediump 2-component vector of float)

-0:51          'v13' (temp mediump 2-component vector of float)

-0:51          roundEven (global mediump 2-component vector of float)

-0:51            'v2a' (global mediump 2-component vector of float)

-0:52      Sequence

-0:52        move second child to first child (temp 2-component vector of bool)

-0:52          'b10' (temp 2-component vector of bool)

-0:52          isnan (global 2-component vector of bool)

-0:52            'v2a' (global mediump 2-component vector of float)

-0:53      Sequence

-0:53        move second child to first child (temp 4-component vector of bool)

-0:53          'b11' (temp 4-component vector of bool)

-0:53          isinf (global 4-component vector of bool)

-0:53            'v4' (global mediump 4-component vector of float)

-0:56      Sequence

-0:56        move second child to first child (temp mediump int)

-0:56          'i' (temp mediump int)

-0:56          floatBitsToInt (global mediump int)

-0:56            'f' (global mediump float)

-0:57      Sequence

-0:57        move second child to first child (temp mediump 4-component vector of uint)

-0:57          'uv11' (temp mediump 4-component vector of uint)

-0:57          floatBitsToUint (global mediump 4-component vector of uint)

-0:57            'v4' (global mediump 4-component vector of float)

-0:58      Sequence

-0:58        move second child to first child (temp mediump 4-component vector of float)

-0:58          'v14' (temp mediump 4-component vector of float)

-0:58          intBitsToFloat (global mediump 4-component vector of float)

-0:58            'iv4a' (global mediump 4-component vector of int)

-0:59      Sequence

-0:59        move second child to first child (temp mediump 2-component vector of float)

-0:59          'v15' (temp mediump 2-component vector of float)

-0:59          uintBitsToFloat (global mediump 2-component vector of float)

-0:59            'uv2c' (global mediump 2-component vector of uint)

-0:62      Sequence

-0:62        move second child to first child (temp highp uint)

-0:62          'u19' (temp mediump uint)

-0:62          packSnorm2x16 (global highp uint)

-0:62            'v2a' (global mediump 2-component vector of float)

-0:63      Sequence

-0:63        move second child to first child (temp highp 2-component vector of float)

-0:63          'v20' (temp mediump 2-component vector of float)

-0:63          unpackSnorm2x16 (global highp 2-component vector of float)

-0:63            'uy' (global mediump uint)

-0:64      Sequence

-0:64        move second child to first child (temp highp uint)

-0:64          'u15' (temp mediump uint)

-0:64          packUnorm2x16 (global highp uint)

-0:64            'v2a' (global mediump 2-component vector of float)

-0:65      Sequence

-0:65        move second child to first child (temp highp 2-component vector of float)

-0:65          'v16' (temp mediump 2-component vector of float)

-0:65          unpackUnorm2x16 (global highp 2-component vector of float)

-0:65            'uy' (global mediump uint)

-0:66      Sequence

-0:66        move second child to first child (temp highp uint)

-0:66          'u17' (temp mediump uint)

-0:66          packHalf2x16 (global highp uint)

-0:66            'v2b' (global mediump 2-component vector of float)

-0:67      Sequence

-0:67        move second child to first child (temp mediump 2-component vector of float)

-0:67          'v18' (temp mediump 2-component vector of float)

-0:67          unpackHalf2x16 (global mediump 2-component vector of float)

-0:67            'uy' (global mediump uint)

-0:70      Constant:

-0:70        0.000000

-0:?   Linker Objects

-0:?     'imax' (global mediump int)

-0:?     'imin' (global mediump int)

-0:?     'umax' (global mediump uint)

-0:?     'umin' (global mediump uint)

-0:?     'x' (global mediump 3-component vector of float)

-0:?     'y' (global mediump 3-component vector of float)

-0:?     'bv' (global 3-component vector of bool)

-0:?     'uy' (global mediump uint)

-0:?     'uv2c' (global mediump 2-component vector of uint)

-0:?     'uv2y' (global mediump 2-component vector of uint)

-0:?     'uv2x' (global mediump 2-component vector of uint)

-0:?     'uv4y' (global mediump 4-component vector of uint)

-0:?     'iv3a' (global mediump 3-component vector of int)

-0:?     'iv3b' (global mediump 3-component vector of int)

-0:?     'iv4a' (global mediump 4-component vector of int)

-0:?     'iv4b' (global mediump 4-component vector of int)

-0:?     'f' (global mediump float)

-0:?     'v2a' (global mediump 2-component vector of float)

-0:?     'v2b' (global mediump 2-component vector of float)

-0:?     'v4' (global mediump 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:26  Function Definition: main( (global void)

-0:26    Function Parameters: 

-0:29    Sequence

-0:29      Sequence

-0:29        move second child to first child (temp mediump 3-component vector of float)

-0:29          'v' (temp mediump 3-component vector of float)

-0:29          mix (global mediump 3-component vector of float)

-0:29            'x' (global mediump 3-component vector of float)

-0:29            'y' (global mediump 3-component vector of float)

-0:29            'bv' (global 3-component vector of bool)

-0:30      Sequence

-0:30        move second child to first child (temp mediump 4-component vector of int)

-0:30          'iv10' (temp mediump 4-component vector of int)

-0:30          Absolute value (global mediump 4-component vector of int)

-0:30            'iv4a' (global mediump 4-component vector of int)

-0:31      Sequence

-0:31        move second child to first child (temp mediump 4-component vector of int)

-0:31          'iv11' (temp mediump 4-component vector of int)

-0:31          Sign (global mediump 4-component vector of int)

-0:31            'iv4a' (global mediump 4-component vector of int)

-0:32      Sequence

-0:32        move second child to first child (temp mediump 4-component vector of int)

-0:32          'iv12' (temp mediump 4-component vector of int)

-0:32          min (global mediump 4-component vector of int)

-0:32            'iv4a' (global mediump 4-component vector of int)

-0:32            'iv4b' (global mediump 4-component vector of int)

-0:33      Sequence

-0:33        move second child to first child (temp mediump 4-component vector of int)

-0:33          'iv13' (temp mediump 4-component vector of int)

-0:33          min (global mediump 4-component vector of int)

-0:33            'iv4a' (global mediump 4-component vector of int)

-0:33            'imin' (global mediump int)

-0:34      Sequence

-0:34        move second child to first child (temp mediump 2-component vector of uint)

-0:34          'u' (temp mediump 2-component vector of uint)

-0:34          min (global mediump 2-component vector of uint)

-0:34            'uv2x' (global mediump 2-component vector of uint)

-0:34            'uv2y' (global mediump 2-component vector of uint)

-0:35      Sequence

-0:35        move second child to first child (temp mediump 4-component vector of uint)

-0:35          'uv' (temp mediump 4-component vector of uint)

-0:35          min (global mediump 4-component vector of uint)

-0:35            'uv4y' (global mediump 4-component vector of uint)

-0:35            'uy' (global mediump uint)

-0:36      Sequence

-0:36        move second child to first child (temp mediump 3-component vector of int)

-0:36          'iv14' (temp mediump 3-component vector of int)

-0:36          max (global mediump 3-component vector of int)

-0:36            'iv3a' (global mediump 3-component vector of int)

-0:36            'iv3b' (global mediump 3-component vector of int)

-0:37      Sequence

-0:37        move second child to first child (temp mediump 4-component vector of int)

-0:37          'iv15' (temp mediump 4-component vector of int)

-0:37          max (global mediump 4-component vector of int)

-0:37            'iv4a' (global mediump 4-component vector of int)

-0:37            'imax' (global mediump int)

-0:38      Sequence

-0:38        move second child to first child (temp mediump 2-component vector of uint)

-0:38          'u10' (temp mediump 2-component vector of uint)

-0:38          max (global mediump 2-component vector of uint)

-0:38            'uv2x' (global mediump 2-component vector of uint)

-0:38            'uv2y' (global mediump 2-component vector of uint)

-0:39      Sequence

-0:39        move second child to first child (temp mediump 2-component vector of uint)

-0:39          'u11' (temp mediump 2-component vector of uint)

-0:39          max (global mediump 2-component vector of uint)

-0:39            'uv2x' (global mediump 2-component vector of uint)

-0:39            'uy' (global mediump uint)

-0:40      Sequence

-0:40        move second child to first child (temp mediump 4-component vector of int)

-0:40          'iv16' (temp mediump 4-component vector of int)

-0:40          clamp (global mediump 4-component vector of int)

-0:40            'iv4a' (global mediump 4-component vector of int)

-0:40            'iv4a' (global mediump 4-component vector of int)

-0:40            'iv4b' (global mediump 4-component vector of int)

-0:41      Sequence

-0:41        move second child to first child (temp mediump 4-component vector of int)

-0:41          'iv17' (temp mediump 4-component vector of int)

-0:41          clamp (global mediump 4-component vector of int)

-0:41            'iv4a' (global mediump 4-component vector of int)

-0:41            'imin' (global mediump int)

-0:41            'imax' (global mediump int)

-0:42      Sequence

-0:42        move second child to first child (temp mediump 2-component vector of uint)

-0:42          'u12' (temp mediump 2-component vector of uint)

-0:42          clamp (global mediump 2-component vector of uint)

-0:42            'uv2x' (global mediump 2-component vector of uint)

-0:42            'uv2y' (global mediump 2-component vector of uint)

-0:42            'uv2c' (global mediump 2-component vector of uint)

-0:43      Sequence

-0:43        move second child to first child (temp mediump 4-component vector of uint)

-0:43          'uv10' (temp mediump 4-component vector of uint)

-0:43          clamp (global mediump 4-component vector of uint)

-0:43            'uv4y' (global mediump 4-component vector of uint)

-0:43            'umin' (global mediump uint)

-0:43            'umax' (global mediump uint)

-0:47      Sequence

-0:47        move second child to first child (temp mediump 3-component vector of float)

-0:47          'v11' (temp mediump 3-component vector of float)

-0:47          modf (global mediump 3-component vector of float)

-0:47            'x' (global mediump 3-component vector of float)

-0:47            'modfOut' (temp mediump 3-component vector of float)

-0:49      Sequence

-0:49        move second child to first child (temp mediump float)

-0:49          't' (temp mediump float)

-0:49          trunc (global mediump float)

-0:49            'f' (global mediump float)

-0:50      Sequence

-0:50        move second child to first child (temp mediump 2-component vector of float)

-0:50          'v12' (temp mediump 2-component vector of float)

-0:50          round (global mediump 2-component vector of float)

-0:50            'v2a' (global mediump 2-component vector of float)

-0:51      Sequence

-0:51        move second child to first child (temp mediump 2-component vector of float)

-0:51          'v13' (temp mediump 2-component vector of float)

-0:51          roundEven (global mediump 2-component vector of float)

-0:51            'v2a' (global mediump 2-component vector of float)

-0:52      Sequence

-0:52        move second child to first child (temp 2-component vector of bool)

-0:52          'b10' (temp 2-component vector of bool)

-0:52          isnan (global 2-component vector of bool)

-0:52            'v2a' (global mediump 2-component vector of float)

-0:53      Sequence

-0:53        move second child to first child (temp 4-component vector of bool)

-0:53          'b11' (temp 4-component vector of bool)

-0:53          isinf (global 4-component vector of bool)

-0:53            'v4' (global mediump 4-component vector of float)

-0:56      Sequence

-0:56        move second child to first child (temp mediump int)

-0:56          'i' (temp mediump int)

-0:56          floatBitsToInt (global mediump int)

-0:56            'f' (global mediump float)

-0:57      Sequence

-0:57        move second child to first child (temp mediump 4-component vector of uint)

-0:57          'uv11' (temp mediump 4-component vector of uint)

-0:57          floatBitsToUint (global mediump 4-component vector of uint)

-0:57            'v4' (global mediump 4-component vector of float)

-0:58      Sequence

-0:58        move second child to first child (temp mediump 4-component vector of float)

-0:58          'v14' (temp mediump 4-component vector of float)

-0:58          intBitsToFloat (global mediump 4-component vector of float)

-0:58            'iv4a' (global mediump 4-component vector of int)

-0:59      Sequence

-0:59        move second child to first child (temp mediump 2-component vector of float)

-0:59          'v15' (temp mediump 2-component vector of float)

-0:59          uintBitsToFloat (global mediump 2-component vector of float)

-0:59            'uv2c' (global mediump 2-component vector of uint)

-0:62      Sequence

-0:62        move second child to first child (temp highp uint)

-0:62          'u19' (temp mediump uint)

-0:62          packSnorm2x16 (global highp uint)

-0:62            'v2a' (global mediump 2-component vector of float)

-0:63      Sequence

-0:63        move second child to first child (temp highp 2-component vector of float)

-0:63          'v20' (temp mediump 2-component vector of float)

-0:63          unpackSnorm2x16 (global highp 2-component vector of float)

-0:63            'uy' (global mediump uint)

-0:64      Sequence

-0:64        move second child to first child (temp highp uint)

-0:64          'u15' (temp mediump uint)

-0:64          packUnorm2x16 (global highp uint)

-0:64            'v2a' (global mediump 2-component vector of float)

-0:65      Sequence

-0:65        move second child to first child (temp highp 2-component vector of float)

-0:65          'v16' (temp mediump 2-component vector of float)

-0:65          unpackUnorm2x16 (global highp 2-component vector of float)

-0:65            'uy' (global mediump uint)

-0:66      Sequence

-0:66        move second child to first child (temp highp uint)

-0:66          'u17' (temp mediump uint)

-0:66          packHalf2x16 (global highp uint)

-0:66            'v2b' (global mediump 2-component vector of float)

-0:67      Sequence

-0:67        move second child to first child (temp mediump 2-component vector of float)

-0:67          'v18' (temp mediump 2-component vector of float)

-0:67          unpackHalf2x16 (global mediump 2-component vector of float)

-0:67            'uy' (global mediump uint)

-0:70      Constant:

-0:70        0.000000

-0:?   Linker Objects

-0:?     'imax' (global mediump int)

-0:?     'imin' (global mediump int)

-0:?     'umax' (global mediump uint)

-0:?     'umin' (global mediump uint)

-0:?     'x' (global mediump 3-component vector of float)

-0:?     'y' (global mediump 3-component vector of float)

-0:?     'bv' (global 3-component vector of bool)

-0:?     'uy' (global mediump uint)

-0:?     'uv2c' (global mediump 2-component vector of uint)

-0:?     'uv2y' (global mediump 2-component vector of uint)

-0:?     'uv2x' (global mediump 2-component vector of uint)

-0:?     'uv4y' (global mediump 4-component vector of uint)

-0:?     'iv3a' (global mediump 3-component vector of int)

-0:?     'iv3b' (global mediump 3-component vector of int)

-0:?     'iv4a' (global mediump 4-component vector of int)

-0:?     'iv4b' (global mediump 4-component vector of int)

-0:?     'f' (global mediump float)

-0:?     'v2a' (global mediump 2-component vector of float)

-0:?     'v2b' (global mediump 2-component vector of float)

-0:?     'v4' (global mediump 4-component vector of float)

-

+300BuiltIns.frag
+ERROR: 0:6: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:70: 'noise2' : no matching overloaded function found 
+ERROR: 0:72: 't__' : identifiers containing consecutive underscores ("__") are reserved, and an error if version <= 300 
+ERROR: 0:75: '#define' : names containing consecutive underscores are reserved, and an error if version <= 300: __D
+ERROR: 4 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:26  Function Definition: main( (global void)
+0:26    Function Parameters: 
+0:29    Sequence
+0:29      Sequence
+0:29        move second child to first child (temp mediump 3-component vector of float)
+0:29          'v' (temp mediump 3-component vector of float)
+0:29          mix (global mediump 3-component vector of float)
+0:29            'x' (global mediump 3-component vector of float)
+0:29            'y' (global mediump 3-component vector of float)
+0:29            'bv' (global 3-component vector of bool)
+0:30      Sequence
+0:30        move second child to first child (temp mediump 4-component vector of int)
+0:30          'iv10' (temp mediump 4-component vector of int)
+0:30          Absolute value (global mediump 4-component vector of int)
+0:30            'iv4a' (global mediump 4-component vector of int)
+0:31      Sequence
+0:31        move second child to first child (temp mediump 4-component vector of int)
+0:31          'iv11' (temp mediump 4-component vector of int)
+0:31          Sign (global mediump 4-component vector of int)
+0:31            'iv4a' (global mediump 4-component vector of int)
+0:32      Sequence
+0:32        move second child to first child (temp mediump 4-component vector of int)
+0:32          'iv12' (temp mediump 4-component vector of int)
+0:32          min (global mediump 4-component vector of int)
+0:32            'iv4a' (global mediump 4-component vector of int)
+0:32            'iv4b' (global mediump 4-component vector of int)
+0:33      Sequence
+0:33        move second child to first child (temp mediump 4-component vector of int)
+0:33          'iv13' (temp mediump 4-component vector of int)
+0:33          min (global mediump 4-component vector of int)
+0:33            'iv4a' (global mediump 4-component vector of int)
+0:33            'imin' (global mediump int)
+0:34      Sequence
+0:34        move second child to first child (temp mediump 2-component vector of uint)
+0:34          'u' (temp mediump 2-component vector of uint)
+0:34          min (global mediump 2-component vector of uint)
+0:34            'uv2x' (global mediump 2-component vector of uint)
+0:34            'uv2y' (global mediump 2-component vector of uint)
+0:35      Sequence
+0:35        move second child to first child (temp mediump 4-component vector of uint)
+0:35          'uv' (temp mediump 4-component vector of uint)
+0:35          min (global mediump 4-component vector of uint)
+0:35            'uv4y' (global mediump 4-component vector of uint)
+0:35            'uy' (global mediump uint)
+0:36      Sequence
+0:36        move second child to first child (temp mediump 3-component vector of int)
+0:36          'iv14' (temp mediump 3-component vector of int)
+0:36          max (global mediump 3-component vector of int)
+0:36            'iv3a' (global mediump 3-component vector of int)
+0:36            'iv3b' (global mediump 3-component vector of int)
+0:37      Sequence
+0:37        move second child to first child (temp mediump 4-component vector of int)
+0:37          'iv15' (temp mediump 4-component vector of int)
+0:37          max (global mediump 4-component vector of int)
+0:37            'iv4a' (global mediump 4-component vector of int)
+0:37            'imax' (global mediump int)
+0:38      Sequence
+0:38        move second child to first child (temp mediump 2-component vector of uint)
+0:38          'u10' (temp mediump 2-component vector of uint)
+0:38          max (global mediump 2-component vector of uint)
+0:38            'uv2x' (global mediump 2-component vector of uint)
+0:38            'uv2y' (global mediump 2-component vector of uint)
+0:39      Sequence
+0:39        move second child to first child (temp mediump 2-component vector of uint)
+0:39          'u11' (temp mediump 2-component vector of uint)
+0:39          max (global mediump 2-component vector of uint)
+0:39            'uv2x' (global mediump 2-component vector of uint)
+0:39            'uy' (global mediump uint)
+0:40      Sequence
+0:40        move second child to first child (temp mediump 4-component vector of int)
+0:40          'iv16' (temp mediump 4-component vector of int)
+0:40          clamp (global mediump 4-component vector of int)
+0:40            'iv4a' (global mediump 4-component vector of int)
+0:40            'iv4a' (global mediump 4-component vector of int)
+0:40            'iv4b' (global mediump 4-component vector of int)
+0:41      Sequence
+0:41        move second child to first child (temp mediump 4-component vector of int)
+0:41          'iv17' (temp mediump 4-component vector of int)
+0:41          clamp (global mediump 4-component vector of int)
+0:41            'iv4a' (global mediump 4-component vector of int)
+0:41            'imin' (global mediump int)
+0:41            'imax' (global mediump int)
+0:42      Sequence
+0:42        move second child to first child (temp mediump 2-component vector of uint)
+0:42          'u12' (temp mediump 2-component vector of uint)
+0:42          clamp (global mediump 2-component vector of uint)
+0:42            'uv2x' (global mediump 2-component vector of uint)
+0:42            'uv2y' (global mediump 2-component vector of uint)
+0:42            'uv2c' (global mediump 2-component vector of uint)
+0:43      Sequence
+0:43        move second child to first child (temp mediump 4-component vector of uint)
+0:43          'uv10' (temp mediump 4-component vector of uint)
+0:43          clamp (global mediump 4-component vector of uint)
+0:43            'uv4y' (global mediump 4-component vector of uint)
+0:43            'umin' (global mediump uint)
+0:43            'umax' (global mediump uint)
+0:47      Sequence
+0:47        move second child to first child (temp mediump 3-component vector of float)
+0:47          'v11' (temp mediump 3-component vector of float)
+0:47          modf (global mediump 3-component vector of float)
+0:47            'x' (global mediump 3-component vector of float)
+0:47            'modfOut' (temp mediump 3-component vector of float)
+0:49      Sequence
+0:49        move second child to first child (temp mediump float)
+0:49          't' (temp mediump float)
+0:49          trunc (global mediump float)
+0:49            'f' (global mediump float)
+0:50      Sequence
+0:50        move second child to first child (temp mediump 2-component vector of float)
+0:50          'v12' (temp mediump 2-component vector of float)
+0:50          round (global mediump 2-component vector of float)
+0:50            'v2a' (global mediump 2-component vector of float)
+0:51      Sequence
+0:51        move second child to first child (temp mediump 2-component vector of float)
+0:51          'v13' (temp mediump 2-component vector of float)
+0:51          roundEven (global mediump 2-component vector of float)
+0:51            'v2a' (global mediump 2-component vector of float)
+0:52      Sequence
+0:52        move second child to first child (temp 2-component vector of bool)
+0:52          'b10' (temp 2-component vector of bool)
+0:52          isnan (global 2-component vector of bool)
+0:52            'v2a' (global mediump 2-component vector of float)
+0:53      Sequence
+0:53        move second child to first child (temp 4-component vector of bool)
+0:53          'b11' (temp 4-component vector of bool)
+0:53          isinf (global 4-component vector of bool)
+0:53            'v4' (global mediump 4-component vector of float)
+0:56      Sequence
+0:56        move second child to first child (temp mediump int)
+0:56          'i' (temp mediump int)
+0:56          floatBitsToInt (global mediump int)
+0:56            'f' (global mediump float)
+0:57      Sequence
+0:57        move second child to first child (temp mediump 4-component vector of uint)
+0:57          'uv11' (temp mediump 4-component vector of uint)
+0:57          floatBitsToUint (global mediump 4-component vector of uint)
+0:57            'v4' (global mediump 4-component vector of float)
+0:58      Sequence
+0:58        move second child to first child (temp mediump 4-component vector of float)
+0:58          'v14' (temp mediump 4-component vector of float)
+0:58          intBitsToFloat (global mediump 4-component vector of float)
+0:58            'iv4a' (global mediump 4-component vector of int)
+0:59      Sequence
+0:59        move second child to first child (temp mediump 2-component vector of float)
+0:59          'v15' (temp mediump 2-component vector of float)
+0:59          uintBitsToFloat (global mediump 2-component vector of float)
+0:59            'uv2c' (global mediump 2-component vector of uint)
+0:62      Sequence
+0:62        move second child to first child (temp highp uint)
+0:62          'u19' (temp mediump uint)
+0:62          packSnorm2x16 (global highp uint)
+0:62            'v2a' (global mediump 2-component vector of float)
+0:63      Sequence
+0:63        move second child to first child (temp highp 2-component vector of float)
+0:63          'v20' (temp mediump 2-component vector of float)
+0:63          unpackSnorm2x16 (global highp 2-component vector of float)
+0:63            'uy' (global mediump uint)
+0:64      Sequence
+0:64        move second child to first child (temp highp uint)
+0:64          'u15' (temp mediump uint)
+0:64          packUnorm2x16 (global highp uint)
+0:64            'v2a' (global mediump 2-component vector of float)
+0:65      Sequence
+0:65        move second child to first child (temp highp 2-component vector of float)
+0:65          'v16' (temp mediump 2-component vector of float)
+0:65          unpackUnorm2x16 (global highp 2-component vector of float)
+0:65            'uy' (global mediump uint)
+0:66      Sequence
+0:66        move second child to first child (temp highp uint)
+0:66          'u17' (temp mediump uint)
+0:66          packHalf2x16 (global highp uint)
+0:66            'v2b' (global mediump 2-component vector of float)
+0:67      Sequence
+0:67        move second child to first child (temp mediump 2-component vector of float)
+0:67          'v18' (temp mediump 2-component vector of float)
+0:67          unpackHalf2x16 (global mediump 2-component vector of float)
+0:67            'uy' (global mediump uint)
+0:70      Constant:
+0:70        0.000000
+0:?   Linker Objects
+0:?     'imax' (global mediump int)
+0:?     'imin' (global mediump int)
+0:?     'umax' (global mediump uint)
+0:?     'umin' (global mediump uint)
+0:?     'x' (global mediump 3-component vector of float)
+0:?     'y' (global mediump 3-component vector of float)
+0:?     'bv' (global 3-component vector of bool)
+0:?     'uy' (global mediump uint)
+0:?     'uv2c' (global mediump 2-component vector of uint)
+0:?     'uv2y' (global mediump 2-component vector of uint)
+0:?     'uv2x' (global mediump 2-component vector of uint)
+0:?     'uv4y' (global mediump 4-component vector of uint)
+0:?     'iv3a' (global mediump 3-component vector of int)
+0:?     'iv3b' (global mediump 3-component vector of int)
+0:?     'iv4a' (global mediump 4-component vector of int)
+0:?     'iv4b' (global mediump 4-component vector of int)
+0:?     'f' (global mediump float)
+0:?     'v2a' (global mediump 2-component vector of float)
+0:?     'v2b' (global mediump 2-component vector of float)
+0:?     'v4' (global mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:26  Function Definition: main( (global void)
+0:26    Function Parameters: 
+0:29    Sequence
+0:29      Sequence
+0:29        move second child to first child (temp mediump 3-component vector of float)
+0:29          'v' (temp mediump 3-component vector of float)
+0:29          mix (global mediump 3-component vector of float)
+0:29            'x' (global mediump 3-component vector of float)
+0:29            'y' (global mediump 3-component vector of float)
+0:29            'bv' (global 3-component vector of bool)
+0:30      Sequence
+0:30        move second child to first child (temp mediump 4-component vector of int)
+0:30          'iv10' (temp mediump 4-component vector of int)
+0:30          Absolute value (global mediump 4-component vector of int)
+0:30            'iv4a' (global mediump 4-component vector of int)
+0:31      Sequence
+0:31        move second child to first child (temp mediump 4-component vector of int)
+0:31          'iv11' (temp mediump 4-component vector of int)
+0:31          Sign (global mediump 4-component vector of int)
+0:31            'iv4a' (global mediump 4-component vector of int)
+0:32      Sequence
+0:32        move second child to first child (temp mediump 4-component vector of int)
+0:32          'iv12' (temp mediump 4-component vector of int)
+0:32          min (global mediump 4-component vector of int)
+0:32            'iv4a' (global mediump 4-component vector of int)
+0:32            'iv4b' (global mediump 4-component vector of int)
+0:33      Sequence
+0:33        move second child to first child (temp mediump 4-component vector of int)
+0:33          'iv13' (temp mediump 4-component vector of int)
+0:33          min (global mediump 4-component vector of int)
+0:33            'iv4a' (global mediump 4-component vector of int)
+0:33            'imin' (global mediump int)
+0:34      Sequence
+0:34        move second child to first child (temp mediump 2-component vector of uint)
+0:34          'u' (temp mediump 2-component vector of uint)
+0:34          min (global mediump 2-component vector of uint)
+0:34            'uv2x' (global mediump 2-component vector of uint)
+0:34            'uv2y' (global mediump 2-component vector of uint)
+0:35      Sequence
+0:35        move second child to first child (temp mediump 4-component vector of uint)
+0:35          'uv' (temp mediump 4-component vector of uint)
+0:35          min (global mediump 4-component vector of uint)
+0:35            'uv4y' (global mediump 4-component vector of uint)
+0:35            'uy' (global mediump uint)
+0:36      Sequence
+0:36        move second child to first child (temp mediump 3-component vector of int)
+0:36          'iv14' (temp mediump 3-component vector of int)
+0:36          max (global mediump 3-component vector of int)
+0:36            'iv3a' (global mediump 3-component vector of int)
+0:36            'iv3b' (global mediump 3-component vector of int)
+0:37      Sequence
+0:37        move second child to first child (temp mediump 4-component vector of int)
+0:37          'iv15' (temp mediump 4-component vector of int)
+0:37          max (global mediump 4-component vector of int)
+0:37            'iv4a' (global mediump 4-component vector of int)
+0:37            'imax' (global mediump int)
+0:38      Sequence
+0:38        move second child to first child (temp mediump 2-component vector of uint)
+0:38          'u10' (temp mediump 2-component vector of uint)
+0:38          max (global mediump 2-component vector of uint)
+0:38            'uv2x' (global mediump 2-component vector of uint)
+0:38            'uv2y' (global mediump 2-component vector of uint)
+0:39      Sequence
+0:39        move second child to first child (temp mediump 2-component vector of uint)
+0:39          'u11' (temp mediump 2-component vector of uint)
+0:39          max (global mediump 2-component vector of uint)
+0:39            'uv2x' (global mediump 2-component vector of uint)
+0:39            'uy' (global mediump uint)
+0:40      Sequence
+0:40        move second child to first child (temp mediump 4-component vector of int)
+0:40          'iv16' (temp mediump 4-component vector of int)
+0:40          clamp (global mediump 4-component vector of int)
+0:40            'iv4a' (global mediump 4-component vector of int)
+0:40            'iv4a' (global mediump 4-component vector of int)
+0:40            'iv4b' (global mediump 4-component vector of int)
+0:41      Sequence
+0:41        move second child to first child (temp mediump 4-component vector of int)
+0:41          'iv17' (temp mediump 4-component vector of int)
+0:41          clamp (global mediump 4-component vector of int)
+0:41            'iv4a' (global mediump 4-component vector of int)
+0:41            'imin' (global mediump int)
+0:41            'imax' (global mediump int)
+0:42      Sequence
+0:42        move second child to first child (temp mediump 2-component vector of uint)
+0:42          'u12' (temp mediump 2-component vector of uint)
+0:42          clamp (global mediump 2-component vector of uint)
+0:42            'uv2x' (global mediump 2-component vector of uint)
+0:42            'uv2y' (global mediump 2-component vector of uint)
+0:42            'uv2c' (global mediump 2-component vector of uint)
+0:43      Sequence
+0:43        move second child to first child (temp mediump 4-component vector of uint)
+0:43          'uv10' (temp mediump 4-component vector of uint)
+0:43          clamp (global mediump 4-component vector of uint)
+0:43            'uv4y' (global mediump 4-component vector of uint)
+0:43            'umin' (global mediump uint)
+0:43            'umax' (global mediump uint)
+0:47      Sequence
+0:47        move second child to first child (temp mediump 3-component vector of float)
+0:47          'v11' (temp mediump 3-component vector of float)
+0:47          modf (global mediump 3-component vector of float)
+0:47            'x' (global mediump 3-component vector of float)
+0:47            'modfOut' (temp mediump 3-component vector of float)
+0:49      Sequence
+0:49        move second child to first child (temp mediump float)
+0:49          't' (temp mediump float)
+0:49          trunc (global mediump float)
+0:49            'f' (global mediump float)
+0:50      Sequence
+0:50        move second child to first child (temp mediump 2-component vector of float)
+0:50          'v12' (temp mediump 2-component vector of float)
+0:50          round (global mediump 2-component vector of float)
+0:50            'v2a' (global mediump 2-component vector of float)
+0:51      Sequence
+0:51        move second child to first child (temp mediump 2-component vector of float)
+0:51          'v13' (temp mediump 2-component vector of float)
+0:51          roundEven (global mediump 2-component vector of float)
+0:51            'v2a' (global mediump 2-component vector of float)
+0:52      Sequence
+0:52        move second child to first child (temp 2-component vector of bool)
+0:52          'b10' (temp 2-component vector of bool)
+0:52          isnan (global 2-component vector of bool)
+0:52            'v2a' (global mediump 2-component vector of float)
+0:53      Sequence
+0:53        move second child to first child (temp 4-component vector of bool)
+0:53          'b11' (temp 4-component vector of bool)
+0:53          isinf (global 4-component vector of bool)
+0:53            'v4' (global mediump 4-component vector of float)
+0:56      Sequence
+0:56        move second child to first child (temp mediump int)
+0:56          'i' (temp mediump int)
+0:56          floatBitsToInt (global mediump int)
+0:56            'f' (global mediump float)
+0:57      Sequence
+0:57        move second child to first child (temp mediump 4-component vector of uint)
+0:57          'uv11' (temp mediump 4-component vector of uint)
+0:57          floatBitsToUint (global mediump 4-component vector of uint)
+0:57            'v4' (global mediump 4-component vector of float)
+0:58      Sequence
+0:58        move second child to first child (temp mediump 4-component vector of float)
+0:58          'v14' (temp mediump 4-component vector of float)
+0:58          intBitsToFloat (global mediump 4-component vector of float)
+0:58            'iv4a' (global mediump 4-component vector of int)
+0:59      Sequence
+0:59        move second child to first child (temp mediump 2-component vector of float)
+0:59          'v15' (temp mediump 2-component vector of float)
+0:59          uintBitsToFloat (global mediump 2-component vector of float)
+0:59            'uv2c' (global mediump 2-component vector of uint)
+0:62      Sequence
+0:62        move second child to first child (temp highp uint)
+0:62          'u19' (temp mediump uint)
+0:62          packSnorm2x16 (global highp uint)
+0:62            'v2a' (global mediump 2-component vector of float)
+0:63      Sequence
+0:63        move second child to first child (temp highp 2-component vector of float)
+0:63          'v20' (temp mediump 2-component vector of float)
+0:63          unpackSnorm2x16 (global highp 2-component vector of float)
+0:63            'uy' (global mediump uint)
+0:64      Sequence
+0:64        move second child to first child (temp highp uint)
+0:64          'u15' (temp mediump uint)
+0:64          packUnorm2x16 (global highp uint)
+0:64            'v2a' (global mediump 2-component vector of float)
+0:65      Sequence
+0:65        move second child to first child (temp highp 2-component vector of float)
+0:65          'v16' (temp mediump 2-component vector of float)
+0:65          unpackUnorm2x16 (global highp 2-component vector of float)
+0:65            'uy' (global mediump uint)
+0:66      Sequence
+0:66        move second child to first child (temp highp uint)
+0:66          'u17' (temp mediump uint)
+0:66          packHalf2x16 (global highp uint)
+0:66            'v2b' (global mediump 2-component vector of float)
+0:67      Sequence
+0:67        move second child to first child (temp mediump 2-component vector of float)
+0:67          'v18' (temp mediump 2-component vector of float)
+0:67          unpackHalf2x16 (global mediump 2-component vector of float)
+0:67            'uy' (global mediump uint)
+0:70      Constant:
+0:70        0.000000
+0:?   Linker Objects
+0:?     'imax' (global mediump int)
+0:?     'imin' (global mediump int)
+0:?     'umax' (global mediump uint)
+0:?     'umin' (global mediump uint)
+0:?     'x' (global mediump 3-component vector of float)
+0:?     'y' (global mediump 3-component vector of float)
+0:?     'bv' (global 3-component vector of bool)
+0:?     'uy' (global mediump uint)
+0:?     'uv2c' (global mediump 2-component vector of uint)
+0:?     'uv2y' (global mediump 2-component vector of uint)
+0:?     'uv2x' (global mediump 2-component vector of uint)
+0:?     'uv4y' (global mediump 4-component vector of uint)
+0:?     'iv3a' (global mediump 3-component vector of int)
+0:?     'iv3b' (global mediump 3-component vector of int)
+0:?     'iv4a' (global mediump 4-component vector of int)
+0:?     'iv4b' (global mediump 4-component vector of int)
+0:?     'f' (global mediump float)
+0:?     'v2a' (global mediump 2-component vector of float)
+0:?     'v2b' (global mediump 2-component vector of float)
+0:?     'v4' (global mediump 4-component vector of float)
+
diff --git a/Test/baseResults/300block.frag.out b/Test/baseResults/300block.frag.out
index 67801a4..ede34c3 100644
--- a/Test/baseResults/300block.frag.out
+++ b/Test/baseResults/300block.frag.out
@@ -1,153 +1,153 @@
-300block.frag

-ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block 

-ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block 

-ERROR: 0:20: 'sampler' : member of block cannot be or contain a sampler, image, or atomic_uint type 

-ERROR: 0:24: 'fbs' : member of block cannot be or contain a sampler, image, or atomic_uint type 

-ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions 

-ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed) 

-ERROR: 0:46: 'fooBlock' : undeclared identifier 

-ERROR: 0:47: 'constructor' : not enough data provided for construction 

-ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed) 

-ERROR: 0:51: 'unreferenced' : undeclared identifier 

-ERROR: 0:52: '++' :  l-value required "s" (can't modify a uniform)

-ERROR: 0:52: '++' :  wrong operand type no operation '++' exists that takes an operand of type uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} (or there is no acceptable conversion)

-ERROR: 0:53: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni}' and a right operand of type 'const int' (or there is no acceptable conversion)

-ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed) 

-ERROR: 0:55: 'barBlockArray' : undeclared identifier 

-ERROR: 0:55: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'const int' and a right operand of type 'temp float' (or there is no acceptable conversion)

-ERROR: 0:58: 'fooBlock' : redefinition 

-ERROR: 17 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:42  Function Definition: main( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      texture (global mediump 4-component vector of int)

-0:44        sampler: direct index for structure (global lowp isampler3D)

-0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:44          Constant:

-0:44            2 (const int)

-0:44        Construct vec3 (temp mediump 3-component vector of float)

-0:44          Convert int to float (temp mediump float)

-0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)

-0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:44              Constant:

-0:44                1 (const int)

-0:44          Convert uint to float (temp mediump float)

-0:44            direct index (temp mediump uint)

-0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)

-0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})

-0:44                Constant:

-0:44                  0 (const uint)

-0:44              Constant:

-0:44                1 (const int)

-0:44          Convert uint to float (temp mediump float)

-0:44            direct index (temp mediump uint)

-0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)

-0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:44                  Constant:

-0:44                    2 (const int)

-0:44                Constant:

-0:44                  0 (const int)

-0:44              Constant:

-0:44                2 (const int)

-0:45      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:45        direct index (temp mediump uint)

-0:45          v: direct index for structure (global mediump 4-component vector of uint)

-0:45            's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:45            Constant:

-0:45              1 (const int)

-0:45          Constant:

-0:45            0 (const int)

-0:46      'fooBlock' (temp float)

-0:47      Constant:

-0:47        0.000000

-0:50      Construct mat4 (temp 4X4 matrix of float)

-0:50        'barBlock' (temp mediump float)

-0:51      Construct mat4 (temp 4X4 matrix of float)

-0:51        'unreferenced' (temp float)

-0:52      's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:53      'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:54      Pre-Increment (temp mediump float)

-0:54        'barBlock' (temp mediump float)

-0:55      Constant:

-0:55        2 (const int)

-0:?   Linker Objects

-0:?     's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})

-0:?     'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:42  Function Definition: main( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      texture (global mediump 4-component vector of int)

-0:44        sampler: direct index for structure (global lowp isampler3D)

-0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:44          Constant:

-0:44            2 (const int)

-0:44        Construct vec3 (temp mediump 3-component vector of float)

-0:44          Convert int to float (temp mediump float)

-0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)

-0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:44              Constant:

-0:44                1 (const int)

-0:44          Convert uint to float (temp mediump float)

-0:44            direct index (temp mediump uint)

-0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)

-0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})

-0:44                Constant:

-0:44                  0 (const uint)

-0:44              Constant:

-0:44                1 (const int)

-0:44          Convert uint to float (temp mediump float)

-0:44            direct index (temp mediump uint)

-0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)

-0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:44                  Constant:

-0:44                    2 (const int)

-0:44                Constant:

-0:44                  0 (const int)

-0:44              Constant:

-0:44                2 (const int)

-0:45      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:45        direct index (temp mediump uint)

-0:45          v: direct index for structure (global mediump 4-component vector of uint)

-0:45            's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:45            Constant:

-0:45              1 (const int)

-0:45          Constant:

-0:45            0 (const int)

-0:46      'fooBlock' (temp float)

-0:47      Constant:

-0:47        0.000000

-0:50      Construct mat4 (temp 4X4 matrix of float)

-0:50        'barBlock' (temp mediump float)

-0:51      Construct mat4 (temp 4X4 matrix of float)

-0:51        'unreferenced' (temp float)

-0:52      's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:53      'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:54      Pre-Increment (temp mediump float)

-0:54        'barBlock' (temp mediump float)

-0:55      Constant:

-0:55        2 (const int)

-0:?   Linker Objects

-0:?     's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})

-0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})

-0:?     'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})

-0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})

-

+300block.frag
+ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block 
+ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block 
+ERROR: 0:20: 'sampler' : member of block cannot be or contain a sampler, image, or atomic_uint type 
+ERROR: 0:24: 'fbs' : member of block cannot be or contain a sampler, image, or atomic_uint type 
+ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions 
+ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed) 
+ERROR: 0:46: 'fooBlock' : undeclared identifier 
+ERROR: 0:47: 'constructor' : not enough data provided for construction 
+ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed) 
+ERROR: 0:51: 'unreferenced' : undeclared identifier 
+ERROR: 0:52: '++' :  l-value required "s" (can't modify a uniform)
+ERROR: 0:52: '++' :  wrong operand type no operation '++' exists that takes an operand of type uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} (or there is no acceptable conversion)
+ERROR: 0:53: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni}' and a right operand of type 'const int' (or there is no acceptable conversion)
+ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed) 
+ERROR: 0:55: 'barBlockArray' : undeclared identifier 
+ERROR: 0:55: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'const int' and a right operand of type 'temp float' (or there is no acceptable conversion)
+ERROR: 0:58: 'fooBlock' : redefinition 
+ERROR: 17 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:42  Function Definition: main( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      texture (global mediump 4-component vector of int)
+0:44        sampler: direct index for structure (global lowp isampler3D)
+0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:44          Constant:
+0:44            2 (const int)
+0:44        Construct vec3 (temp mediump 3-component vector of float)
+0:44          Convert int to float (temp mediump float)
+0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
+0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44              Constant:
+0:44                1 (const int)
+0:44          Convert uint to float (temp mediump float)
+0:44            direct index (temp mediump uint)
+0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              Constant:
+0:44                1 (const int)
+0:44          Convert uint to float (temp mediump float)
+0:44            direct index (temp mediump uint)
+0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44                  Constant:
+0:44                    2 (const int)
+0:44                Constant:
+0:44                  0 (const int)
+0:44              Constant:
+0:44                2 (const int)
+0:45      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45        direct index (temp mediump uint)
+0:45          v: direct index for structure (global mediump 4-component vector of uint)
+0:45            's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:45            Constant:
+0:45              1 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:46      'fooBlock' (temp float)
+0:47      Constant:
+0:47        0.000000
+0:50      Construct mat4 (temp 4X4 matrix of float)
+0:50        'barBlock' (temp mediump float)
+0:51      Construct mat4 (temp 4X4 matrix of float)
+0:51        'unreferenced' (temp float)
+0:52      's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:53      'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:54      Pre-Increment (temp mediump float)
+0:54        'barBlock' (temp mediump float)
+0:55      Constant:
+0:55        2 (const int)
+0:?   Linker Objects
+0:?     's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:?     'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:42  Function Definition: main( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      texture (global mediump 4-component vector of int)
+0:44        sampler: direct index for structure (global lowp isampler3D)
+0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:44          Constant:
+0:44            2 (const int)
+0:44        Construct vec3 (temp mediump 3-component vector of float)
+0:44          Convert int to float (temp mediump float)
+0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
+0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44              Constant:
+0:44                1 (const int)
+0:44          Convert uint to float (temp mediump float)
+0:44            direct index (temp mediump uint)
+0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              Constant:
+0:44                1 (const int)
+0:44          Convert uint to float (temp mediump float)
+0:44            direct index (temp mediump uint)
+0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
+0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:44                  Constant:
+0:44                    2 (const int)
+0:44                Constant:
+0:44                  0 (const int)
+0:44              Constant:
+0:44                2 (const int)
+0:45      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:45        direct index (temp mediump uint)
+0:45          v: direct index for structure (global mediump 4-component vector of uint)
+0:45            's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:45            Constant:
+0:45              1 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:46      'fooBlock' (temp float)
+0:47      Constant:
+0:47        0.000000
+0:50      Construct mat4 (temp 4X4 matrix of float)
+0:50        'barBlock' (temp mediump float)
+0:51      Construct mat4 (temp 4X4 matrix of float)
+0:51        'unreferenced' (temp float)
+0:52      's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:53      'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:54      Pre-Increment (temp mediump float)
+0:54        'barBlock' (temp mediump float)
+0:55      Constant:
+0:55        2 (const int)
+0:?   Linker Objects
+0:?     's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
+0:?     'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
+0:?     'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
+0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})
+
diff --git a/Test/baseResults/300layout.frag.out b/Test/baseResults/300layout.frag.out
index a44c2d7..62a0b36 100644
--- a/Test/baseResults/300layout.frag.out
+++ b/Test/baseResults/300layout.frag.out
@@ -1,69 +1,69 @@
-300layout.frag

-ERROR: 0:4: 'location qualifier on input' : not supported in this stage: fragment

-ERROR: 0:4: 'location qualifier on input' : not supported for this version or the enabled extensions 

-ERROR: 0:17: 'location' : too large for fragment output 

-ERROR: 0:18: 'location' : too large for fragment output 

-ERROR: 0:18: 'location' : overlapping use of location 41

-ERROR: 0:19: 'location' : too large for fragment output 

-ERROR: 0:19: 'location' : overlapping use of location 40

-ERROR: 7 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      move second child to first child (temp mediump 4-component vector of float)

-0:12        'c' (layout(location=1 ) out mediump 4-component vector of float)

-0:12        'color' (layout(location=2 ) smooth in mediump 4-component vector of float)

-0:13      move second child to first child (temp mediump 4-component vector of float)

-0:13        'p' (layout(location=3 ) out mediump 4-component vector of float)

-0:13        'pos' (smooth in mediump 4-component vector of float)

-0:14      move second child to first child (temp mediump 4-component vector of float)

-0:14        direct index (layout(location=4 ) temp mediump 4-component vector of float)

-0:14          'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)

-0:14          Constant:

-0:14            1 (const int)

-0:14        'pos' (smooth in mediump 4-component vector of float)

-0:?   Linker Objects

-0:?     'pos' (smooth in mediump 4-component vector of float)

-0:?     'color' (layout(location=2 ) smooth in mediump 4-component vector of float)

-0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)

-0:?     'p' (layout(location=3 ) out mediump 4-component vector of float)

-0:?     'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)

-0:?     'ca' (layout(location=40 ) out 4-element array of mediump float)

-0:?     'cb' (layout(location=41 ) out 2-element array of mediump float)

-0:?     'cc' (layout(location=39 ) out 6-element array of mediump float)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      move second child to first child (temp mediump 4-component vector of float)

-0:12        'c' (layout(location=1 ) out mediump 4-component vector of float)

-0:12        'color' (layout(location=2 ) smooth in mediump 4-component vector of float)

-0:13      move second child to first child (temp mediump 4-component vector of float)

-0:13        'p' (layout(location=3 ) out mediump 4-component vector of float)

-0:13        'pos' (smooth in mediump 4-component vector of float)

-0:14      move second child to first child (temp mediump 4-component vector of float)

-0:14        direct index (layout(location=4 ) temp mediump 4-component vector of float)

-0:14          'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)

-0:14          Constant:

-0:14            1 (const int)

-0:14        'pos' (smooth in mediump 4-component vector of float)

-0:?   Linker Objects

-0:?     'pos' (smooth in mediump 4-component vector of float)

-0:?     'color' (layout(location=2 ) smooth in mediump 4-component vector of float)

-0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)

-0:?     'p' (layout(location=3 ) out mediump 4-component vector of float)

-0:?     'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)

-0:?     'ca' (layout(location=40 ) out 4-element array of mediump float)

-0:?     'cb' (layout(location=41 ) out 2-element array of mediump float)

-0:?     'cc' (layout(location=39 ) out 6-element array of mediump float)

-

+300layout.frag
+ERROR: 0:4: 'location qualifier on input' : not supported in this stage: fragment
+ERROR: 0:4: 'location qualifier on input' : not supported for this version or the enabled extensions 
+ERROR: 0:17: 'location' : too large for fragment output 
+ERROR: 0:18: 'location' : too large for fragment output 
+ERROR: 0:18: 'location' : overlapping use of location 41
+ERROR: 0:19: 'location' : too large for fragment output 
+ERROR: 0:19: 'location' : overlapping use of location 40
+ERROR: 7 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      move second child to first child (temp mediump 4-component vector of float)
+0:12        'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:12        'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:13      move second child to first child (temp mediump 4-component vector of float)
+0:13        'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:13        'pos' (smooth in mediump 4-component vector of float)
+0:14      move second child to first child (temp mediump 4-component vector of float)
+0:14        direct index (layout(location=4 ) temp mediump 4-component vector of float)
+0:14          'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:14          Constant:
+0:14            1 (const int)
+0:14        'pos' (smooth in mediump 4-component vector of float)
+0:?   Linker Objects
+0:?     'pos' (smooth in mediump 4-component vector of float)
+0:?     'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:?     'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:?     'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:?     'ca' (layout(location=40 ) out 4-element array of mediump float)
+0:?     'cb' (layout(location=41 ) out 2-element array of mediump float)
+0:?     'cc' (layout(location=39 ) out 6-element array of mediump float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      move second child to first child (temp mediump 4-component vector of float)
+0:12        'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:12        'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:13      move second child to first child (temp mediump 4-component vector of float)
+0:13        'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:13        'pos' (smooth in mediump 4-component vector of float)
+0:14      move second child to first child (temp mediump 4-component vector of float)
+0:14        direct index (layout(location=4 ) temp mediump 4-component vector of float)
+0:14          'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:14          Constant:
+0:14            1 (const int)
+0:14        'pos' (smooth in mediump 4-component vector of float)
+0:?   Linker Objects
+0:?     'pos' (smooth in mediump 4-component vector of float)
+0:?     'color' (layout(location=2 ) smooth in mediump 4-component vector of float)
+0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:?     'p' (layout(location=3 ) out mediump 4-component vector of float)
+0:?     'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)
+0:?     'ca' (layout(location=40 ) out 4-element array of mediump float)
+0:?     'cb' (layout(location=41 ) out 2-element array of mediump float)
+0:?     'cc' (layout(location=39 ) out 6-element array of mediump float)
+
diff --git a/Test/baseResults/300layout.vert.out b/Test/baseResults/300layout.vert.out
index c31c73d..f69a989 100644
--- a/Test/baseResults/300layout.vert.out
+++ b/Test/baseResults/300layout.vert.out
@@ -1,147 +1,147 @@
-300layout.vert

-ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es

-ERROR: 0:8: 'in' : cannot be a structure or array 

-ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es

-ERROR: 0:8: 'location' : overlapping use of location 10

-ERROR: 0:12: 'layout' : cannot specify matrix layout on a variable declaration 

-ERROR: 0:12: 'layout' : cannot specify packing on a variable declaration 

-ERROR: 0:19: 'badf' : member of uniform or buffer block cannot have an auxiliary or interpolation qualifier 

-ERROR: 0:20: 'badg' : member storage qualifier cannot contradict block storage qualifier 

-ERROR: 0:21: 'bad1' : member of block cannot have a packing layout qualifier 

-ERROR: 0:22: 'bad2' : member of block cannot have a packing layout qualifier 

-ERROR: 0:23: 'bad3' : member of block cannot have a packing layout qualifier 

-ERROR: 0:31: 'T3' : nameless block contains a member that already has a name at global scope 

-ERROR: 0:38: 'vertex output block' : not supported for this version or the enabled extensions 

-ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex

-ERROR: 0:42: 'location qualifier on output' : not supported for this version or the enabled extensions 

-ERROR: 0:50: 'shared' : not supported for this version or the enabled extensions 

-ERROR: 0:50: 'shared' : not supported in this stage: vertex

-ERROR: 0:54: 'layout' : cannot specify packing on a variable declaration 

-ERROR: 0:57: 'location' : overlapping use of location 40

-ERROR: 19 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:44  Function Definition: main( (global void)

-0:44    Function Parameters: 

-0:46    Sequence

-0:46      move second child to first child (temp highp 4-component vector of float)

-0:46        'pos' (smooth out highp 4-component vector of float)

-0:46        vector-times-matrix (temp highp 4-component vector of float)

-0:46          'p' (layout(location=3 ) in highp 4-component vector of float)

-0:46          add (temp highp 4X4 matrix of float)

-0:46            add (temp highp 4X4 matrix of float)

-0:46              add (temp highp 4X4 matrix of float)

-0:46                add (temp highp 4X4 matrix of float)

-0:46                  M1: direct index for structure (layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float)

-0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:46                    Constant:

-0:46                      0 (const int)

-0:46                  M2: direct index for structure (layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float)

-0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:46                    Constant:

-0:46                      1 (const int)

-0:46                M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)

-0:46                  'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})

-0:46                  Constant:

-0:46                    1 (const uint)

-0:46              M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)

-0:46                'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})

-0:46                Constant:

-0:46                  0 (const uint)

-0:46            t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)

-0:46              'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})

-0:46              Constant:

-0:46                1 (const uint)

-0:47      move second child to first child (temp highp 3-component vector of float)

-0:47        'color' (smooth out highp 3-component vector of float)

-0:47        vector-times-matrix (temp highp 3-component vector of float)

-0:47          'c' (layout(location=7 ) in highp 3-component vector of float)

-0:47          N1: direct index for structure (layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float)

-0:47            'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:47            Constant:

-0:47              2 (const int)

-0:?   Linker Objects

-0:?     'c' (layout(location=7 ) in highp 3-component vector of float)

-0:?     'p' (layout(location=3 ) in highp 4-component vector of float)

-0:?     'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float)

-0:?     'r' (layout(location=10 ) in 4-element array of structure{global highp 4-component vector of float v})

-0:?     'pos' (smooth out highp 4-component vector of float)

-0:?     'color' (smooth out highp 3-component vector of float)

-0:?     'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)

-0:?     'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:?     'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})

-0:?     'anon@2' (out block{out highp float f})

-0:?     'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)

-0:?     'compute_only' (shared highp 4-component vector of float)

-0:?     'aoeuntaoeu' (layout(packed ) uniform highp float)

-0:?     'cd' (layout(location=40 ) in highp float)

-0:?     'ce' (layout(location=37 ) in highp 4X3 matrix of float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:44  Function Definition: main( (global void)

-0:44    Function Parameters: 

-0:46    Sequence

-0:46      move second child to first child (temp highp 4-component vector of float)

-0:46        'pos' (smooth out highp 4-component vector of float)

-0:46        vector-times-matrix (temp highp 4-component vector of float)

-0:46          'p' (layout(location=3 ) in highp 4-component vector of float)

-0:46          add (temp highp 4X4 matrix of float)

-0:46            add (temp highp 4X4 matrix of float)

-0:46              add (temp highp 4X4 matrix of float)

-0:46                add (temp highp 4X4 matrix of float)

-0:46                  M1: direct index for structure (layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float)

-0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:46                    Constant:

-0:46                      0 (const int)

-0:46                  M2: direct index for structure (layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float)

-0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:46                    Constant:

-0:46                      1 (const int)

-0:46                M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)

-0:46                  'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})

-0:46                  Constant:

-0:46                    1 (const uint)

-0:46              M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)

-0:46                'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})

-0:46                Constant:

-0:46                  0 (const uint)

-0:46            t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)

-0:46              'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})

-0:46              Constant:

-0:46                1 (const uint)

-0:47      move second child to first child (temp highp 3-component vector of float)

-0:47        'color' (smooth out highp 3-component vector of float)

-0:47        vector-times-matrix (temp highp 3-component vector of float)

-0:47          'c' (layout(location=7 ) in highp 3-component vector of float)

-0:47          N1: direct index for structure (layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float)

-0:47            'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:47            Constant:

-0:47              2 (const int)

-0:?   Linker Objects

-0:?     'c' (layout(location=7 ) in highp 3-component vector of float)

-0:?     'p' (layout(location=3 ) in highp 4-component vector of float)

-0:?     'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float)

-0:?     'r' (layout(location=10 ) in 4-element array of structure{global highp 4-component vector of float v})

-0:?     'pos' (smooth out highp 4-component vector of float)

-0:?     'color' (smooth out highp 3-component vector of float)

-0:?     'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)

-0:?     'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})

-0:?     'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})

-0:?     'anon@2' (out block{out highp float f})

-0:?     'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)

-0:?     'compute_only' (shared highp 4-component vector of float)

-0:?     'aoeuntaoeu' (layout(packed ) uniform highp float)

-0:?     'cd' (layout(location=40 ) in highp float)

-0:?     'ce' (layout(location=37 ) in highp 4X3 matrix of float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+300layout.vert
+ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:8: 'in' : cannot be a structure or array 
+ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:8: 'location' : overlapping use of location 10
+ERROR: 0:12: 'layout' : cannot specify matrix layout on a variable declaration 
+ERROR: 0:12: 'layout' : cannot specify packing on a variable declaration 
+ERROR: 0:19: 'badf' : member of uniform or buffer block cannot have an auxiliary or interpolation qualifier 
+ERROR: 0:20: 'badg' : member storage qualifier cannot contradict block storage qualifier 
+ERROR: 0:21: 'bad1' : member of block cannot have a packing layout qualifier 
+ERROR: 0:22: 'bad2' : member of block cannot have a packing layout qualifier 
+ERROR: 0:23: 'bad3' : member of block cannot have a packing layout qualifier 
+ERROR: 0:31: 'T3' : nameless block contains a member that already has a name at global scope 
+ERROR: 0:38: 'vertex output block' : not supported for this version or the enabled extensions 
+ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex
+ERROR: 0:42: 'location qualifier on output' : not supported for this version or the enabled extensions 
+ERROR: 0:50: 'shared' : not supported for this version or the enabled extensions 
+ERROR: 0:50: 'shared' : not supported in this stage: vertex
+ERROR: 0:54: 'layout' : cannot specify packing on a variable declaration 
+ERROR: 0:57: 'location' : overlapping use of location 40
+ERROR: 19 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:44  Function Definition: main( (global void)
+0:44    Function Parameters: 
+0:46    Sequence
+0:46      move second child to first child (temp highp 4-component vector of float)
+0:46        'pos' (smooth out highp 4-component vector of float)
+0:46        vector-times-matrix (temp highp 4-component vector of float)
+0:46          'p' (layout(location=3 ) in highp 4-component vector of float)
+0:46          add (temp highp 4X4 matrix of float)
+0:46            add (temp highp 4X4 matrix of float)
+0:46              add (temp highp 4X4 matrix of float)
+0:46                add (temp highp 4X4 matrix of float)
+0:46                  M1: direct index for structure (layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float)
+0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46                    Constant:
+0:46                      0 (const int)
+0:46                  M2: direct index for structure (layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float)
+0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46                    Constant:
+0:46                      1 (const int)
+0:46                M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46                  'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46                  Constant:
+0:46                    1 (const uint)
+0:46              M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:46                'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46            t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46              'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:46              Constant:
+0:46                1 (const uint)
+0:47      move second child to first child (temp highp 3-component vector of float)
+0:47        'color' (smooth out highp 3-component vector of float)
+0:47        vector-times-matrix (temp highp 3-component vector of float)
+0:47          'c' (layout(location=7 ) in highp 3-component vector of float)
+0:47          N1: direct index for structure (layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float)
+0:47            'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:47            Constant:
+0:47              2 (const int)
+0:?   Linker Objects
+0:?     'c' (layout(location=7 ) in highp 3-component vector of float)
+0:?     'p' (layout(location=3 ) in highp 4-component vector of float)
+0:?     'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float)
+0:?     'r' (layout(location=10 ) in 4-element array of structure{global highp 4-component vector of float v})
+0:?     'pos' (smooth out highp 4-component vector of float)
+0:?     'color' (smooth out highp 3-component vector of float)
+0:?     'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:?     'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:?     'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:?     'anon@2' (out block{out highp float f})
+0:?     'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)
+0:?     'compute_only' (shared highp 4-component vector of float)
+0:?     'aoeuntaoeu' (layout(packed ) uniform highp float)
+0:?     'cd' (layout(location=40 ) in highp float)
+0:?     'ce' (layout(location=37 ) in highp 4X3 matrix of float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:44  Function Definition: main( (global void)
+0:44    Function Parameters: 
+0:46    Sequence
+0:46      move second child to first child (temp highp 4-component vector of float)
+0:46        'pos' (smooth out highp 4-component vector of float)
+0:46        vector-times-matrix (temp highp 4-component vector of float)
+0:46          'p' (layout(location=3 ) in highp 4-component vector of float)
+0:46          add (temp highp 4X4 matrix of float)
+0:46            add (temp highp 4X4 matrix of float)
+0:46              add (temp highp 4X4 matrix of float)
+0:46                add (temp highp 4X4 matrix of float)
+0:46                  M1: direct index for structure (layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float)
+0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46                    Constant:
+0:46                      0 (const int)
+0:46                  M2: direct index for structure (layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float)
+0:46                    'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:46                    Constant:
+0:46                      1 (const int)
+0:46                M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46                  'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46                  Constant:
+0:46                    1 (const uint)
+0:46              M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:46                'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46            t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
+0:46              'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:46              Constant:
+0:46                1 (const uint)
+0:47      move second child to first child (temp highp 3-component vector of float)
+0:47        'color' (smooth out highp 3-component vector of float)
+0:47        vector-times-matrix (temp highp 3-component vector of float)
+0:47          'c' (layout(location=7 ) in highp 3-component vector of float)
+0:47          N1: direct index for structure (layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float)
+0:47            'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:47            Constant:
+0:47              2 (const int)
+0:?   Linker Objects
+0:?     'c' (layout(location=7 ) in highp 3-component vector of float)
+0:?     'p' (layout(location=3 ) in highp 4-component vector of float)
+0:?     'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float)
+0:?     'r' (layout(location=10 ) in 4-element array of structure{global highp 4-component vector of float v})
+0:?     'pos' (smooth out highp 4-component vector of float)
+0:?     'color' (smooth out highp 3-component vector of float)
+0:?     'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)
+0:?     'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 offset=176 ) centroid uniform highp float badf, layout(row_major std140 offset=180 ) uniform highp float badg, layout(row_major std140 offset=184 ) uniform highp float bad1, layout(row_major shared offset=188 ) uniform highp float bad2, layout(row_major packed offset=192 ) uniform highp float bad3})
+0:?     'anon@0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
+0:?     'anon@2' (out block{out highp float f})
+0:?     'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)
+0:?     'compute_only' (shared highp 4-component vector of float)
+0:?     'aoeuntaoeu' (layout(packed ) uniform highp float)
+0:?     'cd' (layout(location=40 ) in highp float)
+0:?     'ce' (layout(location=37 ) in highp 4X3 matrix of float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/300link.frag.out b/Test/baseResults/300link.frag.out
index 3ed1353..0713d3d 100644
--- a/Test/baseResults/300link.frag.out
+++ b/Test/baseResults/300link.frag.out
@@ -1,22 +1,22 @@
-300link.frag

-Shader version: 300

-0:? Sequence

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:?   Linker Objects

-0:?     'color1' (out highp 4-component vector of float)

-0:?     'color2' (out highp 4-component vector of float)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers

-

-Shader version: 300

-0:? Sequence

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:?   Linker Objects

-0:?     'color1' (out highp 4-component vector of float)

-0:?     'color2' (out highp 4-component vector of float)

-

+300link.frag
+Shader version: 300
+0:? Sequence
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:?   Linker Objects
+0:?     'color1' (out highp 4-component vector of float)
+0:?     'color2' (out highp 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
+
+Shader version: 300
+0:? Sequence
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:?   Linker Objects
+0:?     'color1' (out highp 4-component vector of float)
+0:?     'color2' (out highp 4-component vector of float)
+
diff --git a/Test/baseResults/300link2.frag.out b/Test/baseResults/300link2.frag.out
index 156a967..aaf71dc 100644
--- a/Test/baseResults/300link2.frag.out
+++ b/Test/baseResults/300link2.frag.out
@@ -1,25 +1,25 @@
-300link2.frag

-Shader version: 300

-0:? Sequence

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:?   Linker Objects

-0:?     'pos' (smooth in mediump 4-component vector of float)

-0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)

-0:?     'p' (layout(location=5 ) out mediump 4-component vector of float)

-0:?     'q' (layout(location=9 ) out 2-element array of mediump 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-0:? Sequence

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:?   Linker Objects

-0:?     'pos' (smooth in mediump 4-component vector of float)

-0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)

-0:?     'p' (layout(location=5 ) out mediump 4-component vector of float)

-0:?     'q' (layout(location=9 ) out 2-element array of mediump 4-component vector of float)

-

+300link2.frag
+Shader version: 300
+0:? Sequence
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:?   Linker Objects
+0:?     'pos' (smooth in mediump 4-component vector of float)
+0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:?     'p' (layout(location=5 ) out mediump 4-component vector of float)
+0:?     'q' (layout(location=9 ) out 2-element array of mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+0:? Sequence
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:?   Linker Objects
+0:?     'pos' (smooth in mediump 4-component vector of float)
+0:?     'c' (layout(location=1 ) out mediump 4-component vector of float)
+0:?     'p' (layout(location=5 ) out mediump 4-component vector of float)
+0:?     'q' (layout(location=9 ) out 2-element array of mediump 4-component vector of float)
+
diff --git a/Test/baseResults/300link3.frag.out b/Test/baseResults/300link3.frag.out
index 5fa6002..3224695 100644
--- a/Test/baseResults/300link3.frag.out
+++ b/Test/baseResults/300link3.frag.out
@@ -1,19 +1,19 @@
-300link3.frag

-Shader version: 300

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:?   Linker Objects

-0:?     'color1' (out highp 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:?   Linker Objects

-0:?     'color1' (out highp 4-component vector of float)

-

+300link3.frag
+Shader version: 300
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:?   Linker Objects
+0:?     'color1' (out highp 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:?   Linker Objects
+0:?     'color1' (out highp 4-component vector of float)
+
diff --git a/Test/baseResults/300operations.frag.out b/Test/baseResults/300operations.frag.out
index 244e5b0..ff7663e 100644
--- a/Test/baseResults/300operations.frag.out
+++ b/Test/baseResults/300operations.frag.out
@@ -1,420 +1,420 @@
-300operations.frag

-ERROR: 0:11: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:30: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' and a right operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' (or there is no acceptable conversion)

-ERROR: 0:31: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'global structure{global mediump int i}' and a right operand of type 'global structure{global mediump int i}' (or there is no acceptable conversion)

-ERROR: 0:32: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)

-ERROR: 0:33: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)

-ERROR: 0:34: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)

-ERROR: 0:35: 'assign' :  cannot convert from 'temp mediump 4-component vector of int' to 'temp mediump 3-component vector of int'

-ERROR: 0:36: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type 'temp mediump 4-component vector of int' and a right operand of type 'temp mediump 4-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:37: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of float' (or there is no acceptable conversion)

-ERROR: 0:38: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:39: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'global 5-element array of mediump float' (or there is no acceptable conversion)

-ERROR: 0:40: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)

-ERROR: 0:42: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)

-ERROR: 0:43: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)

-ERROR: 0:44: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)

-ERROR: 0:45: '++' :  l-value required "instanceName" (can't modify a uniform)

-ERROR: 0:45: '++' :  wrong operand type no operation '++' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)

-ERROR: 0:46: '++' :  wrong operand type no operation '++' exists that takes an operand of type global structure{global mediump int i} (or there is no acceptable conversion)

-ERROR: 0:47: '--' :  wrong operand type no operation '--' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)

-ERROR: 0:48: '++' :  wrong operand type no operation '++' exists that takes an operand of type temp 3-component vector of bool (or there is no acceptable conversion)

-ERROR: 0:50: '<' :  wrong operand types: no operation '<' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:51: '>' :  wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)

-ERROR: 0:52: '!=' :  wrong operand types: no operation '!=' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 4X4 matrix of float' (or there is no acceptable conversion)

-ERROR: 0:53: '>=' :  wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)

-ERROR: 0:54: '<=' :  wrong operand types: no operation '<=' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'global 5-element array of mediump float' (or there is no acceptable conversion)

-ERROR: 0:55: '>' :  wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)

-ERROR: 0:57: '&&' :  wrong operand types: no operation '&&' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)

-ERROR: 0:58: '^^' :  wrong operand types: no operation '^^' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)

-ERROR: 0:59: '||' :  wrong operand types: no operation '||' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)

-ERROR: 0:60: '&&' :  wrong operand types: no operation '&&' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)

-ERROR: 0:61: '||' :  wrong operand types: no operation '||' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)

-ERROR: 0:62: '^^' :  wrong operand types: no operation '^^' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)

-ERROR: 0:64: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump uint (or there is no acceptable conversion)

-ERROR: 0:65: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump int (or there is no acceptable conversion)

-ERROR: 0:66: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump 2X2 matrix of float (or there is no acceptable conversion)

-ERROR: 0:67: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion)

-ERROR: 0:68: '!' :  wrong operand type no operation '!' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)

-ERROR: 0:70: '~' :  wrong operand type no operation '~' exists that takes an operand of type temp mediump float (or there is no acceptable conversion)

-ERROR: 0:71: '~' :  wrong operand type no operation '~' exists that takes an operand of type temp mediump 4X4 matrix of float (or there is no acceptable conversion)

-ERROR: 0:72: '~' :  wrong operand type no operation '~' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion)

-ERROR: 0:73: '~' :  wrong operand type no operation '~' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)

-ERROR: 0:74: '~' :  wrong operand type no operation '~' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)

-ERROR: 0:76: '<<' :  wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of int' (or there is no acceptable conversion)

-ERROR: 0:77: '<<' :  wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:78: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)

-ERROR: 0:79: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)

-ERROR: 0:80: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump 4X4 matrix of float' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)

-ERROR: 0:81: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)

-ERROR: 0:82: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 4-component vector of int' (or there is no acceptable conversion)

-ERROR: 0:84: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)

-ERROR: 0:85: 'assign' :  cannot convert from 'temp mediump 3-component vector of uint' to 'temp mediump uint'

-ERROR: 0:86: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)

-ERROR: 0:87: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)

-ERROR: 0:88: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)

-ERROR: 0:89: '^' :  wrong operand types: no operation '^' exists that takes a left-hand operand of type 'global structure{global mediump int i}' and a right operand of type 'global structure{global mediump int i}' (or there is no acceptable conversion)

-ERROR: 0:90: 'assign' :  l-value required 

-ERROR: 56 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:?     Sequence

-0:30      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:31      's' (global structure{global mediump int i})

-0:32      'i' (temp mediump int)

-0:33      'u' (temp mediump uint)

-0:34      'u' (temp mediump uint)

-0:35      'iv3' (temp mediump 3-component vector of int)

-0:36      'iv4' (temp mediump 4-component vector of int)

-0:37      'i' (temp mediump int)

-0:38      'iv3' (temp mediump 3-component vector of int)

-0:39      'a' (global 5-element array of mediump float)

-0:40      'b' (temp bool)

-0:42      'f' (temp mediump float)

-0:43      'i' (temp mediump int)

-0:44      'f' (temp mediump float)

-0:45      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:46      's' (global structure{global mediump int i})

-0:47      'a' (global 5-element array of mediump float)

-0:48      'b3' (temp 3-component vector of bool)

-0:50      Constant:

-0:50        false (const bool)

-0:51      Constant:

-0:51        false (const bool)

-0:52      Constant:

-0:52        false (const bool)

-0:53      Constant:

-0:53        false (const bool)

-0:54      Constant:

-0:54        false (const bool)

-0:55      Constant:

-0:55        false (const bool)

-0:57      Constant:

-0:57        false (const bool)

-0:58      Constant:

-0:58        false (const bool)

-0:59      Constant:

-0:59        false (const bool)

-0:60      Constant:

-0:60        false (const bool)

-0:61      Constant:

-0:61        false (const bool)

-0:62      Constant:

-0:62        false (const bool)

-0:64      'u' (temp mediump uint)

-0:65      'i' (temp mediump int)

-0:66      'm2' (temp mediump 2X2 matrix of float)

-0:67      'v3' (temp mediump 3-component vector of float)

-0:68      'a' (global 5-element array of mediump float)

-0:70      'f' (temp mediump float)

-0:71      'm4' (temp mediump 4X4 matrix of float)

-0:72      'v3' (temp mediump 3-component vector of float)

-0:73      'a' (global 5-element array of mediump float)

-0:74      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:76      'i' (temp mediump int)

-0:77      'u' (temp mediump uint)

-0:78      'i' (temp mediump int)

-0:79      'f' (temp mediump float)

-0:80      'm4' (temp mediump 4X4 matrix of float)

-0:81      'a' (global 5-element array of mediump float)

-0:82      'iv3' (temp mediump 3-component vector of int)

-0:84      'i' (temp mediump int)

-0:85      'u' (temp mediump uint)

-0:86      'i' (temp mediump int)

-0:87      'u' (temp mediump uint)

-0:88      'm2' (temp mediump 2X2 matrix of float)

-0:89      's' (global structure{global mediump int i})

-0:90      move second child to first child (temp mediump float)

-0:90        move second child to first child (temp mediump float)

-0:90          'f' (temp mediump float)

-0:90          'f' (temp mediump float)

-0:90        'f' (temp mediump float)

-0:93      vector-scale (temp mediump 4-component vector of float)

-0:93        'f' (temp mediump float)

-0:93        'v4' (temp mediump 4-component vector of float)

-0:94      add (temp mediump uint)

-0:94        'u' (temp mediump uint)

-0:94        'u' (temp mediump uint)

-0:95      divide (temp mediump 4-component vector of uint)

-0:95        'uv4' (temp mediump 4-component vector of uint)

-0:95        'u' (temp mediump uint)

-0:96      subtract second child into first child (temp mediump 3-component vector of int)

-0:96        'iv3' (temp mediump 3-component vector of int)

-0:96        'iv3' (temp mediump 3-component vector of int)

-0:98      mod second child into first child (temp mediump int)

-0:98        'i' (temp mediump int)

-0:98        Constant:

-0:98          3 (const int)

-0:99      mod (temp mediump 3-component vector of uint)

-0:99        'uv3' (temp mediump 3-component vector of uint)

-0:99        Constant:

-0:99          4 (const uint)

-0:100      Pre-Decrement (temp mediump 2X2 matrix of float)

-0:100        'm2' (temp mediump 2X2 matrix of float)

-0:101      Post-Increment (temp mediump 4-component vector of int)

-0:101        'iv4' (temp mediump 4-component vector of int)

-0:103      Compare Not Equal (temp bool)

-0:103        'm4' (temp mediump 4X4 matrix of float)

-0:103        'm4' (temp mediump 4X4 matrix of float)

-0:104      Compare Equal (temp bool)

-0:104        'm2' (temp mediump 2X2 matrix of float)

-0:104        'm2' (temp mediump 2X2 matrix of float)

-0:105      Compare Less Than or Equal (temp bool)

-0:105        'i' (temp mediump int)

-0:105        'i' (temp mediump int)

-0:106      Compare Equal (temp bool)

-0:106        'a' (global 5-element array of mediump float)

-0:106        'a' (global 5-element array of mediump float)

-0:107      Compare Not Equal (temp bool)

-0:107        's' (global structure{global mediump int i})

-0:107        's' (global structure{global mediump int i})

-0:109      logical-and (temp bool)

-0:109        'b' (temp bool)

-0:109        'b' (temp bool)

-0:110      logical-or (temp bool)

-0:110        'b' (temp bool)

-0:110        'b' (temp bool)

-0:111      logical-xor (temp bool)

-0:111        'b' (temp bool)

-0:111        'b' (temp bool)

-0:113      Comma (temp mediump 3-component vector of uint)

-0:113        Negate conditional (temp bool)

-0:113          'b' (temp bool)

-0:113        'uv3' (temp mediump 3-component vector of uint)

-0:115      Bitwise not (temp mediump int)

-0:115        'i' (temp mediump int)

-0:116      Bitwise not (temp mediump uint)

-0:116        'u' (temp mediump uint)

-0:117      Bitwise not (temp mediump 3-component vector of uint)

-0:117        'uv3' (temp mediump 3-component vector of uint)

-0:118      Bitwise not (temp mediump 3-component vector of int)

-0:118        'iv3' (temp mediump 3-component vector of int)

-0:120      left shift second child into first child (temp mediump 3-component vector of uint)

-0:120        'uv3' (temp mediump 3-component vector of uint)

-0:120        'i' (temp mediump int)

-0:121      right-shift (temp mediump int)

-0:121        'i' (temp mediump int)

-0:121        'i' (temp mediump int)

-0:122      left-shift (temp mediump uint)

-0:122        'u' (temp mediump uint)

-0:122        'u' (temp mediump uint)

-0:123      right-shift (temp mediump 3-component vector of int)

-0:123        'iv3' (temp mediump 3-component vector of int)

-0:123        'iv3' (temp mediump 3-component vector of int)

-0:125      bitwise and (temp mediump int)

-0:125        'i' (temp mediump int)

-0:125        'i' (temp mediump int)

-0:126      inclusive-or (temp mediump uint)

-0:126        'u' (temp mediump uint)

-0:126        'u' (temp mediump uint)

-0:127      exclusive-or (temp mediump 3-component vector of int)

-0:127        'iv3' (temp mediump 3-component vector of int)

-0:127        'iv3' (temp mediump 3-component vector of int)

-0:128      bitwise and (temp mediump 3-component vector of uint)

-0:128        'u' (temp mediump uint)

-0:128        'uv3' (temp mediump 3-component vector of uint)

-0:129      inclusive-or (temp mediump 3-component vector of uint)

-0:129        'uv3' (temp mediump 3-component vector of uint)

-0:129        'u' (temp mediump uint)

-0:130      and second child into first child (temp mediump 3-component vector of uint)

-0:130        'uv3' (temp mediump 3-component vector of uint)

-0:130        'u' (temp mediump uint)

-0:132      direct index (temp mediump int)

-0:132        'arr' (temp 2-element array of mediump int)

-0:132        Constant:

-0:132          1 (const int)

-0:134      direct index (temp mediump int)

-0:134        'arr2' (temp 3-element array of mediump int)

-0:134        Constant:

-0:134          2 (const int)

-0:?   Linker Objects

-0:?     'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:?     's' (global structure{global mediump int i})

-0:?     'a' (global 5-element array of mediump float)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:?     Sequence

-0:30      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:31      's' (global structure{global mediump int i})

-0:32      'i' (temp mediump int)

-0:33      'u' (temp mediump uint)

-0:34      'u' (temp mediump uint)

-0:35      'iv3' (temp mediump 3-component vector of int)

-0:36      'iv4' (temp mediump 4-component vector of int)

-0:37      'i' (temp mediump int)

-0:38      'iv3' (temp mediump 3-component vector of int)

-0:39      'a' (global 5-element array of mediump float)

-0:40      'b' (temp bool)

-0:42      'f' (temp mediump float)

-0:43      'i' (temp mediump int)

-0:44      'f' (temp mediump float)

-0:45      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:46      's' (global structure{global mediump int i})

-0:47      'a' (global 5-element array of mediump float)

-0:48      'b3' (temp 3-component vector of bool)

-0:50      Constant:

-0:50        false (const bool)

-0:51      Constant:

-0:51        false (const bool)

-0:52      Constant:

-0:52        false (const bool)

-0:53      Constant:

-0:53        false (const bool)

-0:54      Constant:

-0:54        false (const bool)

-0:55      Constant:

-0:55        false (const bool)

-0:57      Constant:

-0:57        false (const bool)

-0:58      Constant:

-0:58        false (const bool)

-0:59      Constant:

-0:59        false (const bool)

-0:60      Constant:

-0:60        false (const bool)

-0:61      Constant:

-0:61        false (const bool)

-0:62      Constant:

-0:62        false (const bool)

-0:64      'u' (temp mediump uint)

-0:65      'i' (temp mediump int)

-0:66      'm2' (temp mediump 2X2 matrix of float)

-0:67      'v3' (temp mediump 3-component vector of float)

-0:68      'a' (global 5-element array of mediump float)

-0:70      'f' (temp mediump float)

-0:71      'm4' (temp mediump 4X4 matrix of float)

-0:72      'v3' (temp mediump 3-component vector of float)

-0:73      'a' (global 5-element array of mediump float)

-0:74      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:76      'i' (temp mediump int)

-0:77      'u' (temp mediump uint)

-0:78      'i' (temp mediump int)

-0:79      'f' (temp mediump float)

-0:80      'm4' (temp mediump 4X4 matrix of float)

-0:81      'a' (global 5-element array of mediump float)

-0:82      'iv3' (temp mediump 3-component vector of int)

-0:84      'i' (temp mediump int)

-0:85      'u' (temp mediump uint)

-0:86      'i' (temp mediump int)

-0:87      'u' (temp mediump uint)

-0:88      'm2' (temp mediump 2X2 matrix of float)

-0:89      's' (global structure{global mediump int i})

-0:90      move second child to first child (temp mediump float)

-0:90        move second child to first child (temp mediump float)

-0:90          'f' (temp mediump float)

-0:90          'f' (temp mediump float)

-0:90        'f' (temp mediump float)

-0:93      vector-scale (temp mediump 4-component vector of float)

-0:93        'f' (temp mediump float)

-0:93        'v4' (temp mediump 4-component vector of float)

-0:94      add (temp mediump uint)

-0:94        'u' (temp mediump uint)

-0:94        'u' (temp mediump uint)

-0:95      divide (temp mediump 4-component vector of uint)

-0:95        'uv4' (temp mediump 4-component vector of uint)

-0:95        'u' (temp mediump uint)

-0:96      subtract second child into first child (temp mediump 3-component vector of int)

-0:96        'iv3' (temp mediump 3-component vector of int)

-0:96        'iv3' (temp mediump 3-component vector of int)

-0:98      mod second child into first child (temp mediump int)

-0:98        'i' (temp mediump int)

-0:98        Constant:

-0:98          3 (const int)

-0:99      mod (temp mediump 3-component vector of uint)

-0:99        'uv3' (temp mediump 3-component vector of uint)

-0:99        Constant:

-0:99          4 (const uint)

-0:100      Pre-Decrement (temp mediump 2X2 matrix of float)

-0:100        'm2' (temp mediump 2X2 matrix of float)

-0:101      Post-Increment (temp mediump 4-component vector of int)

-0:101        'iv4' (temp mediump 4-component vector of int)

-0:103      Compare Not Equal (temp bool)

-0:103        'm4' (temp mediump 4X4 matrix of float)

-0:103        'm4' (temp mediump 4X4 matrix of float)

-0:104      Compare Equal (temp bool)

-0:104        'm2' (temp mediump 2X2 matrix of float)

-0:104        'm2' (temp mediump 2X2 matrix of float)

-0:105      Compare Less Than or Equal (temp bool)

-0:105        'i' (temp mediump int)

-0:105        'i' (temp mediump int)

-0:106      Compare Equal (temp bool)

-0:106        'a' (global 5-element array of mediump float)

-0:106        'a' (global 5-element array of mediump float)

-0:107      Compare Not Equal (temp bool)

-0:107        's' (global structure{global mediump int i})

-0:107        's' (global structure{global mediump int i})

-0:109      logical-and (temp bool)

-0:109        'b' (temp bool)

-0:109        'b' (temp bool)

-0:110      logical-or (temp bool)

-0:110        'b' (temp bool)

-0:110        'b' (temp bool)

-0:111      logical-xor (temp bool)

-0:111        'b' (temp bool)

-0:111        'b' (temp bool)

-0:113      Comma (temp mediump 3-component vector of uint)

-0:113        Negate conditional (temp bool)

-0:113          'b' (temp bool)

-0:113        'uv3' (temp mediump 3-component vector of uint)

-0:115      Bitwise not (temp mediump int)

-0:115        'i' (temp mediump int)

-0:116      Bitwise not (temp mediump uint)

-0:116        'u' (temp mediump uint)

-0:117      Bitwise not (temp mediump 3-component vector of uint)

-0:117        'uv3' (temp mediump 3-component vector of uint)

-0:118      Bitwise not (temp mediump 3-component vector of int)

-0:118        'iv3' (temp mediump 3-component vector of int)

-0:120      left shift second child into first child (temp mediump 3-component vector of uint)

-0:120        'uv3' (temp mediump 3-component vector of uint)

-0:120        'i' (temp mediump int)

-0:121      right-shift (temp mediump int)

-0:121        'i' (temp mediump int)

-0:121        'i' (temp mediump int)

-0:122      left-shift (temp mediump uint)

-0:122        'u' (temp mediump uint)

-0:122        'u' (temp mediump uint)

-0:123      right-shift (temp mediump 3-component vector of int)

-0:123        'iv3' (temp mediump 3-component vector of int)

-0:123        'iv3' (temp mediump 3-component vector of int)

-0:125      bitwise and (temp mediump int)

-0:125        'i' (temp mediump int)

-0:125        'i' (temp mediump int)

-0:126      inclusive-or (temp mediump uint)

-0:126        'u' (temp mediump uint)

-0:126        'u' (temp mediump uint)

-0:127      exclusive-or (temp mediump 3-component vector of int)

-0:127        'iv3' (temp mediump 3-component vector of int)

-0:127        'iv3' (temp mediump 3-component vector of int)

-0:128      bitwise and (temp mediump 3-component vector of uint)

-0:128        'u' (temp mediump uint)

-0:128        'uv3' (temp mediump 3-component vector of uint)

-0:129      inclusive-or (temp mediump 3-component vector of uint)

-0:129        'uv3' (temp mediump 3-component vector of uint)

-0:129        'u' (temp mediump uint)

-0:130      and second child into first child (temp mediump 3-component vector of uint)

-0:130        'uv3' (temp mediump 3-component vector of uint)

-0:130        'u' (temp mediump uint)

-0:132      direct index (temp mediump int)

-0:132        'arr' (temp 2-element array of mediump int)

-0:132        Constant:

-0:132          1 (const int)

-0:134      direct index (temp mediump int)

-0:134        'arr2' (temp 3-element array of mediump int)

-0:134        Constant:

-0:134          2 (const int)

-0:?   Linker Objects

-0:?     'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})

-0:?     's' (global structure{global mediump int i})

-0:?     'a' (global 5-element array of mediump float)

-

+300operations.frag
+ERROR: 0:11: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:30: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' and a right operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f}' (or there is no acceptable conversion)
+ERROR: 0:31: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'global structure{global mediump int i}' and a right operand of type 'global structure{global mediump int i}' (or there is no acceptable conversion)
+ERROR: 0:32: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:33: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:34: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:35: 'assign' :  cannot convert from 'temp mediump 4-component vector of int' to 'temp mediump 3-component vector of int'
+ERROR: 0:36: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type 'temp mediump 4-component vector of int' and a right operand of type 'temp mediump 4-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:37: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:38: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:39: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'global 5-element array of mediump float' (or there is no acceptable conversion)
+ERROR: 0:40: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:42: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:43: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:44: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:45: '++' :  l-value required "instanceName" (can't modify a uniform)
+ERROR: 0:45: '++' :  wrong operand type no operation '++' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)
+ERROR: 0:46: '++' :  wrong operand type no operation '++' exists that takes an operand of type global structure{global mediump int i} (or there is no acceptable conversion)
+ERROR: 0:47: '--' :  wrong operand type no operation '--' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)
+ERROR: 0:48: '++' :  wrong operand type no operation '++' exists that takes an operand of type temp 3-component vector of bool (or there is no acceptable conversion)
+ERROR: 0:50: '<' :  wrong operand types: no operation '<' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:51: '>' :  wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:52: '!=' :  wrong operand types: no operation '!=' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 4X4 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:53: '>=' :  wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:54: '<=' :  wrong operand types: no operation '<=' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'global 5-element array of mediump float' (or there is no acceptable conversion)
+ERROR: 0:55: '>' :  wrong operand types: no operation '>' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:57: '&&' :  wrong operand types: no operation '&&' exists that takes a left-hand operand of type 'temp bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)
+ERROR: 0:58: '^^' :  wrong operand types: no operation '^^' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp 3-component vector of bool' (or there is no acceptable conversion)
+ERROR: 0:59: '||' :  wrong operand types: no operation '||' exists that takes a left-hand operand of type 'temp 3-component vector of bool' and a right operand of type 'temp bool' (or there is no acceptable conversion)
+ERROR: 0:60: '&&' :  wrong operand types: no operation '&&' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:61: '||' :  wrong operand types: no operation '||' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:62: '^^' :  wrong operand types: no operation '^^' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:64: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump uint (or there is no acceptable conversion)
+ERROR: 0:65: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump int (or there is no acceptable conversion)
+ERROR: 0:66: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump 2X2 matrix of float (or there is no acceptable conversion)
+ERROR: 0:67: '!' :  wrong operand type no operation '!' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion)
+ERROR: 0:68: '!' :  wrong operand type no operation '!' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)
+ERROR: 0:70: '~' :  wrong operand type no operation '~' exists that takes an operand of type temp mediump float (or there is no acceptable conversion)
+ERROR: 0:71: '~' :  wrong operand type no operation '~' exists that takes an operand of type temp mediump 4X4 matrix of float (or there is no acceptable conversion)
+ERROR: 0:72: '~' :  wrong operand type no operation '~' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion)
+ERROR: 0:73: '~' :  wrong operand type no operation '~' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion)
+ERROR: 0:74: '~' :  wrong operand type no operation '~' exists that takes an operand of type layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f} (or there is no acceptable conversion)
+ERROR: 0:76: '<<' :  wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of int' (or there is no acceptable conversion)
+ERROR: 0:77: '<<' :  wrong operand types: no operation '<<' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:78: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:79: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump float' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:80: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump 4X4 matrix of float' and a right operand of type 'temp mediump int' (or there is no acceptable conversion)
+ERROR: 0:81: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'global 5-element array of mediump float' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:82: '>>' :  wrong operand types: no operation '>>' exists that takes a left-hand operand of type 'temp mediump 3-component vector of int' and a right operand of type 'temp mediump 4-component vector of int' (or there is no acceptable conversion)
+ERROR: 0:84: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump uint' (or there is no acceptable conversion)
+ERROR: 0:85: 'assign' :  cannot convert from 'temp mediump 3-component vector of uint' to 'temp mediump uint'
+ERROR: 0:86: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp mediump int' and a right operand of type 'temp mediump 3-component vector of uint' (or there is no acceptable conversion)
+ERROR: 0:87: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type 'temp mediump uint' and a right operand of type 'temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:88: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp mediump 2X2 matrix of float' and a right operand of type 'temp mediump 2X2 matrix of float' (or there is no acceptable conversion)
+ERROR: 0:89: '^' :  wrong operand types: no operation '^' exists that takes a left-hand operand of type 'global structure{global mediump int i}' and a right operand of type 'global structure{global mediump int i}' (or there is no acceptable conversion)
+ERROR: 0:90: 'assign' :  l-value required 
+ERROR: 56 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:?     Sequence
+0:30      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:31      's' (global structure{global mediump int i})
+0:32      'i' (temp mediump int)
+0:33      'u' (temp mediump uint)
+0:34      'u' (temp mediump uint)
+0:35      'iv3' (temp mediump 3-component vector of int)
+0:36      'iv4' (temp mediump 4-component vector of int)
+0:37      'i' (temp mediump int)
+0:38      'iv3' (temp mediump 3-component vector of int)
+0:39      'a' (global 5-element array of mediump float)
+0:40      'b' (temp bool)
+0:42      'f' (temp mediump float)
+0:43      'i' (temp mediump int)
+0:44      'f' (temp mediump float)
+0:45      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:46      's' (global structure{global mediump int i})
+0:47      'a' (global 5-element array of mediump float)
+0:48      'b3' (temp 3-component vector of bool)
+0:50      Constant:
+0:50        false (const bool)
+0:51      Constant:
+0:51        false (const bool)
+0:52      Constant:
+0:52        false (const bool)
+0:53      Constant:
+0:53        false (const bool)
+0:54      Constant:
+0:54        false (const bool)
+0:55      Constant:
+0:55        false (const bool)
+0:57      Constant:
+0:57        false (const bool)
+0:58      Constant:
+0:58        false (const bool)
+0:59      Constant:
+0:59        false (const bool)
+0:60      Constant:
+0:60        false (const bool)
+0:61      Constant:
+0:61        false (const bool)
+0:62      Constant:
+0:62        false (const bool)
+0:64      'u' (temp mediump uint)
+0:65      'i' (temp mediump int)
+0:66      'm2' (temp mediump 2X2 matrix of float)
+0:67      'v3' (temp mediump 3-component vector of float)
+0:68      'a' (global 5-element array of mediump float)
+0:70      'f' (temp mediump float)
+0:71      'm4' (temp mediump 4X4 matrix of float)
+0:72      'v3' (temp mediump 3-component vector of float)
+0:73      'a' (global 5-element array of mediump float)
+0:74      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:76      'i' (temp mediump int)
+0:77      'u' (temp mediump uint)
+0:78      'i' (temp mediump int)
+0:79      'f' (temp mediump float)
+0:80      'm4' (temp mediump 4X4 matrix of float)
+0:81      'a' (global 5-element array of mediump float)
+0:82      'iv3' (temp mediump 3-component vector of int)
+0:84      'i' (temp mediump int)
+0:85      'u' (temp mediump uint)
+0:86      'i' (temp mediump int)
+0:87      'u' (temp mediump uint)
+0:88      'm2' (temp mediump 2X2 matrix of float)
+0:89      's' (global structure{global mediump int i})
+0:90      move second child to first child (temp mediump float)
+0:90        move second child to first child (temp mediump float)
+0:90          'f' (temp mediump float)
+0:90          'f' (temp mediump float)
+0:90        'f' (temp mediump float)
+0:93      vector-scale (temp mediump 4-component vector of float)
+0:93        'f' (temp mediump float)
+0:93        'v4' (temp mediump 4-component vector of float)
+0:94      add (temp mediump uint)
+0:94        'u' (temp mediump uint)
+0:94        'u' (temp mediump uint)
+0:95      divide (temp mediump 4-component vector of uint)
+0:95        'uv4' (temp mediump 4-component vector of uint)
+0:95        'u' (temp mediump uint)
+0:96      subtract second child into first child (temp mediump 3-component vector of int)
+0:96        'iv3' (temp mediump 3-component vector of int)
+0:96        'iv3' (temp mediump 3-component vector of int)
+0:98      mod second child into first child (temp mediump int)
+0:98        'i' (temp mediump int)
+0:98        Constant:
+0:98          3 (const int)
+0:99      mod (temp mediump 3-component vector of uint)
+0:99        'uv3' (temp mediump 3-component vector of uint)
+0:99        Constant:
+0:99          4 (const uint)
+0:100      Pre-Decrement (temp mediump 2X2 matrix of float)
+0:100        'm2' (temp mediump 2X2 matrix of float)
+0:101      Post-Increment (temp mediump 4-component vector of int)
+0:101        'iv4' (temp mediump 4-component vector of int)
+0:103      Compare Not Equal (temp bool)
+0:103        'm4' (temp mediump 4X4 matrix of float)
+0:103        'm4' (temp mediump 4X4 matrix of float)
+0:104      Compare Equal (temp bool)
+0:104        'm2' (temp mediump 2X2 matrix of float)
+0:104        'm2' (temp mediump 2X2 matrix of float)
+0:105      Compare Less Than or Equal (temp bool)
+0:105        'i' (temp mediump int)
+0:105        'i' (temp mediump int)
+0:106      Compare Equal (temp bool)
+0:106        'a' (global 5-element array of mediump float)
+0:106        'a' (global 5-element array of mediump float)
+0:107      Compare Not Equal (temp bool)
+0:107        's' (global structure{global mediump int i})
+0:107        's' (global structure{global mediump int i})
+0:109      logical-and (temp bool)
+0:109        'b' (temp bool)
+0:109        'b' (temp bool)
+0:110      logical-or (temp bool)
+0:110        'b' (temp bool)
+0:110        'b' (temp bool)
+0:111      logical-xor (temp bool)
+0:111        'b' (temp bool)
+0:111        'b' (temp bool)
+0:113      Comma (temp mediump 3-component vector of uint)
+0:113        Negate conditional (temp bool)
+0:113          'b' (temp bool)
+0:113        'uv3' (temp mediump 3-component vector of uint)
+0:115      Bitwise not (temp mediump int)
+0:115        'i' (temp mediump int)
+0:116      Bitwise not (temp mediump uint)
+0:116        'u' (temp mediump uint)
+0:117      Bitwise not (temp mediump 3-component vector of uint)
+0:117        'uv3' (temp mediump 3-component vector of uint)
+0:118      Bitwise not (temp mediump 3-component vector of int)
+0:118        'iv3' (temp mediump 3-component vector of int)
+0:120      left shift second child into first child (temp mediump 3-component vector of uint)
+0:120        'uv3' (temp mediump 3-component vector of uint)
+0:120        'i' (temp mediump int)
+0:121      right-shift (temp mediump int)
+0:121        'i' (temp mediump int)
+0:121        'i' (temp mediump int)
+0:122      left-shift (temp mediump uint)
+0:122        'u' (temp mediump uint)
+0:122        'u' (temp mediump uint)
+0:123      right-shift (temp mediump 3-component vector of int)
+0:123        'iv3' (temp mediump 3-component vector of int)
+0:123        'iv3' (temp mediump 3-component vector of int)
+0:125      bitwise and (temp mediump int)
+0:125        'i' (temp mediump int)
+0:125        'i' (temp mediump int)
+0:126      inclusive-or (temp mediump uint)
+0:126        'u' (temp mediump uint)
+0:126        'u' (temp mediump uint)
+0:127      exclusive-or (temp mediump 3-component vector of int)
+0:127        'iv3' (temp mediump 3-component vector of int)
+0:127        'iv3' (temp mediump 3-component vector of int)
+0:128      bitwise and (temp mediump 3-component vector of uint)
+0:128        'u' (temp mediump uint)
+0:128        'uv3' (temp mediump 3-component vector of uint)
+0:129      inclusive-or (temp mediump 3-component vector of uint)
+0:129        'uv3' (temp mediump 3-component vector of uint)
+0:129        'u' (temp mediump uint)
+0:130      and second child into first child (temp mediump 3-component vector of uint)
+0:130        'uv3' (temp mediump 3-component vector of uint)
+0:130        'u' (temp mediump uint)
+0:132      direct index (temp mediump int)
+0:132        'arr' (temp 2-element array of mediump int)
+0:132        Constant:
+0:132          1 (const int)
+0:134      direct index (temp mediump int)
+0:134        'arr2' (temp 3-element array of mediump int)
+0:134        Constant:
+0:134          2 (const int)
+0:?   Linker Objects
+0:?     'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:?     's' (global structure{global mediump int i})
+0:?     'a' (global 5-element array of mediump float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:?     Sequence
+0:30      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:31      's' (global structure{global mediump int i})
+0:32      'i' (temp mediump int)
+0:33      'u' (temp mediump uint)
+0:34      'u' (temp mediump uint)
+0:35      'iv3' (temp mediump 3-component vector of int)
+0:36      'iv4' (temp mediump 4-component vector of int)
+0:37      'i' (temp mediump int)
+0:38      'iv3' (temp mediump 3-component vector of int)
+0:39      'a' (global 5-element array of mediump float)
+0:40      'b' (temp bool)
+0:42      'f' (temp mediump float)
+0:43      'i' (temp mediump int)
+0:44      'f' (temp mediump float)
+0:45      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:46      's' (global structure{global mediump int i})
+0:47      'a' (global 5-element array of mediump float)
+0:48      'b3' (temp 3-component vector of bool)
+0:50      Constant:
+0:50        false (const bool)
+0:51      Constant:
+0:51        false (const bool)
+0:52      Constant:
+0:52        false (const bool)
+0:53      Constant:
+0:53        false (const bool)
+0:54      Constant:
+0:54        false (const bool)
+0:55      Constant:
+0:55        false (const bool)
+0:57      Constant:
+0:57        false (const bool)
+0:58      Constant:
+0:58        false (const bool)
+0:59      Constant:
+0:59        false (const bool)
+0:60      Constant:
+0:60        false (const bool)
+0:61      Constant:
+0:61        false (const bool)
+0:62      Constant:
+0:62        false (const bool)
+0:64      'u' (temp mediump uint)
+0:65      'i' (temp mediump int)
+0:66      'm2' (temp mediump 2X2 matrix of float)
+0:67      'v3' (temp mediump 3-component vector of float)
+0:68      'a' (global 5-element array of mediump float)
+0:70      'f' (temp mediump float)
+0:71      'm4' (temp mediump 4X4 matrix of float)
+0:72      'v3' (temp mediump 3-component vector of float)
+0:73      'a' (global 5-element array of mediump float)
+0:74      'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:76      'i' (temp mediump int)
+0:77      'u' (temp mediump uint)
+0:78      'i' (temp mediump int)
+0:79      'f' (temp mediump float)
+0:80      'm4' (temp mediump 4X4 matrix of float)
+0:81      'a' (global 5-element array of mediump float)
+0:82      'iv3' (temp mediump 3-component vector of int)
+0:84      'i' (temp mediump int)
+0:85      'u' (temp mediump uint)
+0:86      'i' (temp mediump int)
+0:87      'u' (temp mediump uint)
+0:88      'm2' (temp mediump 2X2 matrix of float)
+0:89      's' (global structure{global mediump int i})
+0:90      move second child to first child (temp mediump float)
+0:90        move second child to first child (temp mediump float)
+0:90          'f' (temp mediump float)
+0:90          'f' (temp mediump float)
+0:90        'f' (temp mediump float)
+0:93      vector-scale (temp mediump 4-component vector of float)
+0:93        'f' (temp mediump float)
+0:93        'v4' (temp mediump 4-component vector of float)
+0:94      add (temp mediump uint)
+0:94        'u' (temp mediump uint)
+0:94        'u' (temp mediump uint)
+0:95      divide (temp mediump 4-component vector of uint)
+0:95        'uv4' (temp mediump 4-component vector of uint)
+0:95        'u' (temp mediump uint)
+0:96      subtract second child into first child (temp mediump 3-component vector of int)
+0:96        'iv3' (temp mediump 3-component vector of int)
+0:96        'iv3' (temp mediump 3-component vector of int)
+0:98      mod second child into first child (temp mediump int)
+0:98        'i' (temp mediump int)
+0:98        Constant:
+0:98          3 (const int)
+0:99      mod (temp mediump 3-component vector of uint)
+0:99        'uv3' (temp mediump 3-component vector of uint)
+0:99        Constant:
+0:99          4 (const uint)
+0:100      Pre-Decrement (temp mediump 2X2 matrix of float)
+0:100        'm2' (temp mediump 2X2 matrix of float)
+0:101      Post-Increment (temp mediump 4-component vector of int)
+0:101        'iv4' (temp mediump 4-component vector of int)
+0:103      Compare Not Equal (temp bool)
+0:103        'm4' (temp mediump 4X4 matrix of float)
+0:103        'm4' (temp mediump 4X4 matrix of float)
+0:104      Compare Equal (temp bool)
+0:104        'm2' (temp mediump 2X2 matrix of float)
+0:104        'm2' (temp mediump 2X2 matrix of float)
+0:105      Compare Less Than or Equal (temp bool)
+0:105        'i' (temp mediump int)
+0:105        'i' (temp mediump int)
+0:106      Compare Equal (temp bool)
+0:106        'a' (global 5-element array of mediump float)
+0:106        'a' (global 5-element array of mediump float)
+0:107      Compare Not Equal (temp bool)
+0:107        's' (global structure{global mediump int i})
+0:107        's' (global structure{global mediump int i})
+0:109      logical-and (temp bool)
+0:109        'b' (temp bool)
+0:109        'b' (temp bool)
+0:110      logical-or (temp bool)
+0:110        'b' (temp bool)
+0:110        'b' (temp bool)
+0:111      logical-xor (temp bool)
+0:111        'b' (temp bool)
+0:111        'b' (temp bool)
+0:113      Comma (temp mediump 3-component vector of uint)
+0:113        Negate conditional (temp bool)
+0:113          'b' (temp bool)
+0:113        'uv3' (temp mediump 3-component vector of uint)
+0:115      Bitwise not (temp mediump int)
+0:115        'i' (temp mediump int)
+0:116      Bitwise not (temp mediump uint)
+0:116        'u' (temp mediump uint)
+0:117      Bitwise not (temp mediump 3-component vector of uint)
+0:117        'uv3' (temp mediump 3-component vector of uint)
+0:118      Bitwise not (temp mediump 3-component vector of int)
+0:118        'iv3' (temp mediump 3-component vector of int)
+0:120      left shift second child into first child (temp mediump 3-component vector of uint)
+0:120        'uv3' (temp mediump 3-component vector of uint)
+0:120        'i' (temp mediump int)
+0:121      right-shift (temp mediump int)
+0:121        'i' (temp mediump int)
+0:121        'i' (temp mediump int)
+0:122      left-shift (temp mediump uint)
+0:122        'u' (temp mediump uint)
+0:122        'u' (temp mediump uint)
+0:123      right-shift (temp mediump 3-component vector of int)
+0:123        'iv3' (temp mediump 3-component vector of int)
+0:123        'iv3' (temp mediump 3-component vector of int)
+0:125      bitwise and (temp mediump int)
+0:125        'i' (temp mediump int)
+0:125        'i' (temp mediump int)
+0:126      inclusive-or (temp mediump uint)
+0:126        'u' (temp mediump uint)
+0:126        'u' (temp mediump uint)
+0:127      exclusive-or (temp mediump 3-component vector of int)
+0:127        'iv3' (temp mediump 3-component vector of int)
+0:127        'iv3' (temp mediump 3-component vector of int)
+0:128      bitwise and (temp mediump 3-component vector of uint)
+0:128        'u' (temp mediump uint)
+0:128        'uv3' (temp mediump 3-component vector of uint)
+0:129      inclusive-or (temp mediump 3-component vector of uint)
+0:129        'uv3' (temp mediump 3-component vector of uint)
+0:129        'u' (temp mediump uint)
+0:130      and second child into first child (temp mediump 3-component vector of uint)
+0:130        'uv3' (temp mediump 3-component vector of uint)
+0:130        'u' (temp mediump uint)
+0:132      direct index (temp mediump int)
+0:132        'arr' (temp 2-element array of mediump int)
+0:132        Constant:
+0:132          1 (const int)
+0:134      direct index (temp mediump int)
+0:134        'arr2' (temp 3-element array of mediump int)
+0:134        Constant:
+0:134          2 (const int)
+0:?   Linker Objects
+0:?     'instanceName' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f})
+0:?     's' (global structure{global mediump int i})
+0:?     'a' (global 5-element array of mediump float)
+
diff --git a/Test/baseResults/300scope.vert.out b/Test/baseResults/300scope.vert.out
index 39a6d81..acc93f5 100644
--- a/Test/baseResults/300scope.vert.out
+++ b/Test/baseResults/300scope.vert.out
@@ -1,237 +1,237 @@
-300scope.vert

-ERROR: 0:5: 'a' : redefinition 

-ERROR: 0:17: 'b' : function name is redeclaration of existing name 

-ERROR: 0:20: 'c' : redefinition 

-ERROR: 0:22: 'f' : redefinition 

-ERROR: 0:23: 'tan' : redefinition 

-ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es

-ERROR: 0:24: 'sin' : function name is redeclaration of existing name 

-ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es

-ERROR: 0:25: 'cos' : function name is redeclaration of existing name 

-ERROR: 0:25: 'cos' : function already has a body 

-ERROR: 0:27: 'return' : void function cannot return a value 

-ERROR: 0:29: 'radians' : function name is redeclaration of existing name 

-ERROR: 0:29: 'radians' : can't find function 

-ERROR: 0:31: 'return' : void function cannot return a value 

-ERROR: 0:38: 'local function declaration' : not supported with this profile: es

-ERROR: 0:43: 'sin' : can't use function syntax on variable 

-ERROR: 0:57: 'z' : undeclared identifier 

-ERROR: 0:57: 'z' : redefinition 

-ERROR: 0:73: 'degrees' : can't use function syntax on variable 

-ERROR: 19 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global highp int)

-0:3    Function Parameters: 

-0:3      'a' (in highp int)

-0:3      'b' (in highp int)

-0:3      'c' (in highp int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp highp float)

-0:8            'a' (temp highp float)

-0:8            add (temp highp float)

-0:8              Convert int to float (temp highp float)

-0:8                'a' (in highp int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in highp int)

-0:25  Function Definition: cos(f1; (global highp float)

-0:25    Function Parameters: 

-0:25      'x' (in highp float)

-0:27    Sequence

-0:27      Branch: Return

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp highp int)

-0:42      'sin' (temp highp float)

-0:43      Constant:

-0:43        0.000000

-0:44      Function Call: f(i1;i1;i1; (global highp int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp highp float)

-0:47        'f' (temp highp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)

-0:49        Construct vec4 (temp highp 4-component vector of float)

-0:49          'f' (temp highp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp highp int)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp highp int)

-0:52            'f' (temp highp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp highp int)

-0:51            'f' (temp highp int)

-0:54      Sequence

-0:54        move second child to first child (temp highp int)

-0:54          'x' (temp highp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp highp float)

-0:56            'x' (temp highp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp highp float)

-0:56            'y' (temp highp float)

-0:56            'x' (temp highp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp highp int)

-0:60            'x' (temp highp int)

-0:60            'x' (temp highp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp highp int x})

-0:68            'S' (temp structure{temp highp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp highp int)

-0:69          'S' (temp structure{temp highp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        0.000000

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global highp int)

-0:3    Function Parameters: 

-0:3      'a' (in highp int)

-0:3      'b' (in highp int)

-0:3      'c' (in highp int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp highp float)

-0:8            'a' (temp highp float)

-0:8            add (temp highp float)

-0:8              Convert int to float (temp highp float)

-0:8                'a' (in highp int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in highp int)

-0:25  Function Definition: cos(f1; (global highp float)

-0:25    Function Parameters: 

-0:25      'x' (in highp float)

-0:27    Sequence

-0:27      Branch: Return

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp highp int)

-0:42      'sin' (temp highp float)

-0:43      Constant:

-0:43        0.000000

-0:44      Function Call: f(i1;i1;i1; (global highp int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp highp float)

-0:47        'f' (temp highp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)

-0:49        Construct vec4 (temp highp 4-component vector of float)

-0:49          'f' (temp highp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp highp int)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp highp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp highp int)

-0:52            'f' (temp highp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp highp int)

-0:51            'f' (temp highp int)

-0:54      Sequence

-0:54        move second child to first child (temp highp int)

-0:54          'x' (temp highp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp highp float)

-0:56            'x' (temp highp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp highp float)

-0:56            'y' (temp highp float)

-0:56            'x' (temp highp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp highp int)

-0:60            'x' (temp highp int)

-0:60            'x' (temp highp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp highp int x})

-0:68            'S' (temp structure{temp highp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp highp int)

-0:69          'S' (temp structure{temp highp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        0.000000

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+300scope.vert
+ERROR: 0:5: 'a' : redefinition 
+ERROR: 0:17: 'b' : function name is redeclaration of existing name 
+ERROR: 0:20: 'c' : redefinition 
+ERROR: 0:22: 'f' : redefinition 
+ERROR: 0:23: 'tan' : redefinition 
+ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:24: 'sin' : function name is redeclaration of existing name 
+ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
+ERROR: 0:25: 'cos' : function name is redeclaration of existing name 
+ERROR: 0:25: 'cos' : function already has a body 
+ERROR: 0:27: 'return' : void function cannot return a value 
+ERROR: 0:29: 'radians' : function name is redeclaration of existing name 
+ERROR: 0:29: 'radians' : can't find function 
+ERROR: 0:31: 'return' : void function cannot return a value 
+ERROR: 0:38: 'local function declaration' : not supported with this profile: es
+ERROR: 0:43: 'sin' : can't use function syntax on variable 
+ERROR: 0:57: 'z' : undeclared identifier 
+ERROR: 0:57: 'z' : redefinition 
+ERROR: 0:73: 'degrees' : can't use function syntax on variable 
+ERROR: 19 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global highp int)
+0:3    Function Parameters: 
+0:3      'a' (in highp int)
+0:3      'b' (in highp int)
+0:3      'c' (in highp int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp highp float)
+0:8            'a' (temp highp float)
+0:8            add (temp highp float)
+0:8              Convert int to float (temp highp float)
+0:8                'a' (in highp int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in highp int)
+0:25  Function Definition: cos(f1; (global highp float)
+0:25    Function Parameters: 
+0:25      'x' (in highp float)
+0:27    Sequence
+0:27      Branch: Return
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp highp int)
+0:42      'sin' (temp highp float)
+0:43      Constant:
+0:43        0.000000
+0:44      Function Call: f(i1;i1;i1; (global highp int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp highp float)
+0:47        'f' (temp highp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49        Construct vec4 (temp highp 4-component vector of float)
+0:49          'f' (temp highp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp highp int)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp highp int)
+0:52            'f' (temp highp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp highp int)
+0:51            'f' (temp highp int)
+0:54      Sequence
+0:54        move second child to first child (temp highp int)
+0:54          'x' (temp highp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp highp float)
+0:56            'x' (temp highp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp highp float)
+0:56            'y' (temp highp float)
+0:56            'x' (temp highp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp highp int)
+0:60            'x' (temp highp int)
+0:60            'x' (temp highp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp highp int x})
+0:68            'S' (temp structure{temp highp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp highp int)
+0:69          'S' (temp structure{temp highp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        0.000000
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global highp int)
+0:3    Function Parameters: 
+0:3      'a' (in highp int)
+0:3      'b' (in highp int)
+0:3      'c' (in highp int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp highp float)
+0:8            'a' (temp highp float)
+0:8            add (temp highp float)
+0:8              Convert int to float (temp highp float)
+0:8                'a' (in highp int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in highp int)
+0:25  Function Definition: cos(f1; (global highp float)
+0:25    Function Parameters: 
+0:25      'x' (in highp float)
+0:27    Sequence
+0:27      Branch: Return
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp highp int)
+0:42      'sin' (temp highp float)
+0:43      Constant:
+0:43        0.000000
+0:44      Function Call: f(i1;i1;i1; (global highp int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp highp float)
+0:47        'f' (temp highp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        'gl_Position' (invariant gl_Position highp 4-component vector of float Position)
+0:49        Construct vec4 (temp highp 4-component vector of float)
+0:49          'f' (temp highp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp highp int)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp highp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp highp int)
+0:52            'f' (temp highp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp highp int)
+0:51            'f' (temp highp int)
+0:54      Sequence
+0:54        move second child to first child (temp highp int)
+0:54          'x' (temp highp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp highp float)
+0:56            'x' (temp highp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp highp float)
+0:56            'y' (temp highp float)
+0:56            'x' (temp highp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp highp int)
+0:60            'x' (temp highp int)
+0:60            'x' (temp highp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp highp int x})
+0:68            'S' (temp structure{temp highp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp highp int)
+0:69          'S' (temp structure{temp highp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        0.000000
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out
index f3775e3..e61d2aa 100644
--- a/Test/baseResults/310.comp.out
+++ b/Test/baseResults/310.comp.out
@@ -1,933 +1,933 @@
-310.comp

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:4: 'local_size' : cannot change previously set size 

-ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize 

-ERROR: 0:23: '' : array size required 

-ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader 

-ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute

-ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader 

-ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader 

-ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable 

-ERROR: 0:44: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 

-ERROR: 0:45: 'shared' :  cannot initialize this type of qualifier  

-ERROR: 0:47: 'local_size' : can only apply to 'in' 

-ERROR: 0:47: 'local_size' : can only apply to 'in' 

-ERROR: 0:47: 'local_size' : can only apply to 'in' 

-ERROR: 0:61: 'assign' :  l-value required "ro" (can't modify a readonly buffer)

-ERROR: 0:66: 'buffer' : buffers can be declared only as blocks 

-ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:76: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:89: 'readonly' : argument cannot drop memory qualifier when passed to formal parameter 

-ERROR: 0:89: 'imageAtomicMin' : only supported on image with format r32i or r32ui 

-ERROR: 0:90: 'imageAtomicMax' : no matching overloaded function found 

-ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter 

-ERROR: 0:97: '' : memory qualifiers cannot be used on this type 

-ERROR: 0:98: '' : memory qualifiers cannot be used on this type 

-ERROR: 0:114: 'image load-store format' : not supported with this profile: es

-ERROR: 0:114: 'rg8i' : does not apply to unsigned integer images 

-ERROR: 0:115: 'rgba32i' : does not apply to floating point images 

-ERROR: 0:116: 'rgba32f' : does not apply to unsigned integer images 

-ERROR: 0:117: 'image load-store format' : not supported with this profile: es

-ERROR: 0:117: 'r8_snorm' : does not apply to signed integer images 

-ERROR: 0:118: 'rgba32ui' : does not apply to signed integer images 

-ERROR: 0:119: 'image load-store format' : not supported with this profile: es

-ERROR: 0:119: 'r8ui' : does not apply to signed integer images 

-ERROR: 0:128: 'atomic_uint' : samplers and atomic_uints cannot be output parameters 

-ERROR: 0:130: 'return' : type does not match, or is not convertible to, the function's return type 

-ERROR: 0:136: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter

-ERROR: 0:136: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:141: 'atomic_uint' : atomic counters can only be highp 

-ERROR: 0:141: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:143: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:149: '[]' : scalar integer expression required 

-ERROR: 0:166: 'precision' : can only apply highp to atomic_uint 

-ERROR: 0:168: 'precise' : Reserved word. 

-ERROR: 0:170: 'dmat2x4' : Reserved word. 

-ERROR: 0:170: 'double matrix' : not supported with this profile: es

-ERROR: 0:171: 'samplerCubeArray' : Reserved word. 

-ERROR: 0:171: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:172: 'iimage2DRect' : Reserved word. 

-ERROR: 0:172: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:172: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:173: 'image2DMS' : Reserved word. 

-ERROR: 0:173: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:174: 'uimage2DMSArray' : Reserved word. 

-ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:174: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier 

-ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier 

-ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier 

-ERROR: 0:194: 'assign' : can't read from writeonly object:  wo

-ERROR: 0:195: 'initializer' : can't read from writeonly object:  wo

-ERROR: 0:196: '++' : can't read from writeonly object:  wo

-ERROR: 0:197: '--' : can't read from writeonly object:  wo

-ERROR: 0:198: '+' : can't read from writeonly object:  wo

-ERROR: 0:199: '-' : can't read from writeonly object:  wo

-ERROR: 0:201: ':' : can't read from writeonly object:  wo

-ERROR: 0:202: ':' : can't read from writeonly object:  wo

-ERROR: 0:203: '==' : can't read from writeonly object:  wo

-ERROR: 0:205: '>=' : can't read from writeonly object:  wo

-ERROR: 0:207: 'constructor' : can't read from writeonly object:  wo

-ERROR: 0:208: '~' : can't read from writeonly object:  wo

-ERROR: 0:221: 'assign' : can't read from writeonly object:  wo

-ERROR: 0:222: '~' : can't read from writeonly object:  wo

-ERROR: 0:227: 'input block' : not supported in this stage: compute

-ERROR: 0:231: 'output block' : not supported in this stage: compute

-WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D

-ERROR: 76 compilation errors.  No code generated.

-

-

-Shader version: 310

-local_size = (2, 1, 4096)

-ERROR: node is still EOpNull!

-0:27  Function Definition: main( (global void)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Barrier (global void)

-0:30      MemoryBarrier (global void)

-0:31      MemoryBarrierAtomicCounter (global void)

-0:32      MemoryBarrierBuffer (global void)

-0:33      MemoryBarrierShared (global void)

-0:34      MemoryBarrierImage (global void)

-0:35      GroupMemoryBarrier (global void)

-0:36      move second child to first child (temp highp int)

-0:36        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:36          Constant:

-0:36            0 (const uint)

-0:36        Convert float to int (temp highp int)

-0:36          indirect index (layout(column_major shared ) temp highp float)

-0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:36              Constant:

-0:36                1 (const uint)

-0:36            'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)

-0:59  Function Definition: foo( (global void)

-0:59    Function Parameters: 

-0:61    Sequence

-0:61      move second child to first child (temp highp float)

-0:61        direct index (layout(column_major shared ) temp highp float)

-0:61          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:61            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:61            Constant:

-0:61              1 (const int)

-0:61          Constant:

-0:61            2 (const int)

-0:61        Constant:

-0:61          4.700000

-0:62      array length (temp highp int)

-0:62        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:62          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:62          Constant:

-0:62            1 (const int)

-0:63      Pre-Increment (temp highp 4-component vector of float)

-0:63        's' (shared highp 4-component vector of float)

-0:84  Function Definition: qux( (global void)

-0:84    Function Parameters: 

-0:86    Sequence

-0:86      Sequence

-0:86        move second child to first child (temp highp int)

-0:86          'i' (temp highp int)

-0:86          Constant:

-0:86            4 (const int)

-0:87      imageAtomicCompSwap (global highp int)

-0:87        'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:87        Construct ivec2 (temp highp 2-component vector of int)

-0:87          'i' (temp highp int)

-0:87          'i' (temp highp int)

-0:87        'i' (temp highp int)

-0:87        'i' (temp highp int)

-0:88      imageAtomicAdd (global highp uint)

-0:88        'uimg2D' (layout(r32ui ) uniform highp uimage2D)

-0:88        Construct ivec2 (temp highp 2-component vector of int)

-0:88          'i' (temp highp int)

-0:88          'i' (temp highp int)

-0:88        Convert int to uint (temp highp uint)

-0:88          'i' (temp highp int)

-0:89      imageAtomicMin (global highp int)

-0:89        'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)

-0:89        Construct ivec2 (temp highp 2-component vector of int)

-0:89          'i' (temp highp int)

-0:89          'i' (temp highp int)

-0:89        'i' (temp highp int)

-0:90      Constant:

-0:90        0.000000

-0:91      Sequence

-0:91        move second child to first child (temp highp 4-component vector of int)

-0:91          'pos' (temp highp 4-component vector of int)

-0:91          imageLoad (global highp 4-component vector of int)

-0:91            'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:91            Construct ivec2 (temp highp 2-component vector of int)

-0:91              'i' (temp highp int)

-0:91              'i' (temp highp int)

-0:92      imageStore (global highp void)

-0:92        'ii2da' (writeonly uniform highp iimage2DArray)

-0:92        Construct ivec3 (temp 3-component vector of int)

-0:92          'i' (temp highp int)

-0:92          'i' (temp highp int)

-0:92          'i' (temp highp int)

-0:92        Constant:

-0:92          0 (const int)

-0:92          0 (const int)

-0:92          0 (const int)

-0:92          0 (const int)

-0:93      imageLoad (global highp 4-component vector of float)

-0:93        'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)

-0:93        Construct ivec2 (temp highp 2-component vector of int)

-0:93          'i' (temp highp int)

-0:93          'i' (temp highp int)

-0:94      imageLoad (global highp 4-component vector of int)

-0:94        'ii2da' (writeonly uniform highp iimage2DArray)

-0:94        Construct ivec3 (temp highp 3-component vector of int)

-0:94          'i' (temp highp int)

-0:94          'i' (temp highp int)

-0:94          'i' (temp highp int)

-0:100  Function Definition: passr(iI21; (global void)

-0:100    Function Parameters: 

-0:100      'image' (coherent readonly in highp iimage2D)

-0:107  Function Definition: passrc( (global void)

-0:107    Function Parameters: 

-0:109    Sequence

-0:109      Function Call: passr(iI21; (global void)

-0:109        'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)

-0:110      Function Call: passr(iI21; (global void)

-0:110        'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)

-0:111      Function Call: passr(iI21; (global void)

-0:111        'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:123  Function Definition: func(au1; (global highp uint)

-0:123    Function Parameters: 

-0:123      'c' (in highp atomic_uint)

-0:125    Sequence

-0:125      Branch: Return with expression

-0:125        AtomicCounterIncrement (global highp uint)

-0:125          'c' (in highp atomic_uint)

-0:128  Function Definition: func2(au1; (global highp uint)

-0:128    Function Parameters: 

-0:128      'c' (out highp atomic_uint)

-0:130    Sequence

-0:130      Branch: Return with expression

-0:130        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:131      Branch: Return with expression

-0:131        AtomicCounter (global highp uint)

-0:131          'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:134  Function Definition: mainAC( (global void)

-0:134    Function Parameters: 

-0:?     Sequence

-0:137      Sequence

-0:137        move second child to first child (temp highp uint)

-0:137          'val' (temp highp uint)

-0:137          AtomicCounter (global highp uint)

-0:137            'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:138      AtomicCounterDecrement (global highp uint)

-0:138        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:146  Function Definition: opac( (global void)

-0:146    Function Parameters: 

-0:?     Sequence

-0:149      indirect index (temp highp int)

-0:149        'a' (temp 3-element array of highp int)

-0:149        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:150      direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)

-0:150        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)

-0:150        Constant:

-0:150          2 (const int)

-0:151      indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)

-0:151        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)

-0:151        'i' (uniform highp int)

-0:157  Function Definition: atoms( (global void)

-0:157    Function Parameters: 

-0:159    Sequence

-0:159      Sequence

-0:159        move second child to first child (temp highp int)

-0:159          'origi' (temp highp int)

-0:159          AtomicAdd (global highp int)

-0:159            'atomi' (shared highp int)

-0:159            Constant:

-0:159              3 (const int)

-0:160      Sequence

-0:160        move second child to first child (temp highp uint)

-0:160          'origu' (temp highp uint)

-0:160          AtomicAnd (global highp uint)

-0:160            'atomu' (shared highp uint)

-0:160            Constant:

-0:160              7 (const uint)

-0:161      move second child to first child (temp highp int)

-0:161        'origi' (temp highp int)

-0:161        AtomicExchange (global highp int)

-0:161          'atomi' (shared highp int)

-0:161          Constant:

-0:161            4 (const int)

-0:162      move second child to first child (temp highp uint)

-0:162        'origu' (temp highp uint)

-0:162        AtomicCompSwap (global highp uint)

-0:162          'atomu' (shared highp uint)

-0:162          Constant:

-0:162            10 (const uint)

-0:162          Constant:

-0:162            8 (const uint)

-0:191  Function Definition: foowo( (global void)

-0:191    Function Parameters: 

-0:?     Sequence

-0:194      move second child to first child (temp highp float)

-0:194        'g' (temp highp float)

-0:194        direct index (layout(column_major shared ) temp highp float)

-0:194          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:194            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:194            Constant:

-0:194              1 (const int)

-0:194          Constant:

-0:194            2 (const int)

-0:195      Sequence

-0:195        move second child to first child (temp highp float)

-0:195          'f' (temp highp float)

-0:195          direct index (layout(column_major shared ) temp highp float)

-0:195            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:195              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:195              Constant:

-0:195                1 (const int)

-0:195            Constant:

-0:195              2 (const int)

-0:196      Pre-Increment (temp highp float)

-0:196        direct index (layout(column_major shared ) temp highp float)

-0:196          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:196            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:196            Constant:

-0:196              1 (const int)

-0:196          Constant:

-0:196            2 (const int)

-0:197      Post-Decrement (temp highp float)

-0:197        direct index (layout(column_major shared ) temp highp float)

-0:197          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:197            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:197            Constant:

-0:197              1 (const int)

-0:197          Constant:

-0:197            2 (const int)

-0:198      add (temp highp float)

-0:198        'f' (temp highp float)

-0:198        direct index (layout(column_major shared ) temp highp float)

-0:198          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:198            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:198            Constant:

-0:198              1 (const int)

-0:198          Constant:

-0:198            2 (const int)

-0:199      subtract (temp highp float)

-0:199        direct index (layout(column_major shared ) temp highp float)

-0:199          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:199            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:199            Constant:

-0:199              1 (const int)

-0:199          Constant:

-0:199            2 (const int)

-0:199        'f' (temp highp float)

-0:201      Test condition and select (temp highp float)

-0:201        Condition

-0:201        'b' (temp bool)

-0:201        true case

-0:201        'f' (temp highp float)

-0:201        false case

-0:201        direct index (layout(column_major shared ) temp highp float)

-0:201          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:201            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:201            Constant:

-0:201              1 (const int)

-0:201          Constant:

-0:201            2 (const int)

-0:202      Test condition and select (layout(column_major shared ) temp highp float)

-0:202        Condition

-0:202        'b' (temp bool)

-0:202        true case

-0:202        direct index (layout(column_major shared ) temp highp float)

-0:202          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:202            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:202            Constant:

-0:202              1 (const int)

-0:202          Constant:

-0:202            2 (const int)

-0:202        false case

-0:202        'f' (temp highp float)

-0:203      Test condition and select (temp void)

-0:203        Condition

-0:203        Compare Equal (temp bool)

-0:203          'f' (temp highp float)

-0:203          direct index (layout(column_major shared ) temp highp float)

-0:203            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:203              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:203              Constant:

-0:203                1 (const int)

-0:203            Constant:

-0:203              2 (const int)

-0:203        true case

-0:204        Pre-Increment (temp highp float)

-0:204          'f' (temp highp float)

-0:205      Test condition and select (temp void)

-0:205        Condition

-0:205        Compare Greater Than or Equal (temp bool)

-0:205          'f' (temp highp float)

-0:205          direct index (layout(column_major shared ) temp highp float)

-0:205            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:205              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:205              Constant:

-0:205                1 (const int)

-0:205            Constant:

-0:205              2 (const int)

-0:205        true case

-0:206        Pre-Increment (temp highp float)

-0:206          'f' (temp highp float)

-0:207      move second child to first child (temp highp float)

-0:207        'f' (temp highp float)

-0:207        direct index (temp highp float)

-0:207          Construct vec3 (temp highp 3-component vector of float)

-0:207            direct index (layout(column_major shared ) temp highp float)

-0:207              values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:207                'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:207                Constant:

-0:207                  1 (const int)

-0:207              Constant:

-0:207                2 (const int)

-0:207          Constant:

-0:207            0 (const int)

-0:208      Bitwise not (temp highp int)

-0:208        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:208          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:208          Constant:

-0:208            0 (const int)

-0:209      move second child to first child (temp highp float)

-0:209        direct index (layout(column_major shared ) temp highp float)

-0:209          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:209            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:209            Constant:

-0:209              1 (const int)

-0:209          Constant:

-0:209            2 (const int)

-0:209        Constant:

-0:209          3.400000

-0:218  Function Definition: foomultio( (global void)

-0:218    Function Parameters: 

-0:?     Sequence

-0:221      move second child to first child (temp highp float)

-0:221        'g' (temp highp float)

-0:221        direct index (layout(column_major shared ) temp highp float)

-0:221          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:221            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:221            Constant:

-0:221              1 (const int)

-0:221          Constant:

-0:221            2 (const int)

-0:222      Bitwise not (temp highp int)

-0:222        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:222          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:222          Constant:

-0:222            0 (const int)

-0:223      move second child to first child (temp highp float)

-0:223        direct index (layout(column_major shared ) temp highp float)

-0:223          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:223            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:223            Constant:

-0:223              1 (const int)

-0:223          Constant:

-0:223            2 (const int)

-0:223        Constant:

-0:223          3.400000

-0:224      move second child to first child (temp highp int)

-0:224        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:224          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:224          Constant:

-0:224            0 (const int)

-0:224        Constant:

-0:224          2 (const int)

-0:?   Linker Objects

-0:?     'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)

-0:?       2 (const uint)

-0:?       1 (const uint)

-0:?       4096 (const uint)

-0:?     'total' (const highp int)

-0:?       66592 (const int)

-0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of highp float values, layout(column_major shared ) buffer highp int value})

-0:?     'v3' (layout(location=2 ) in highp 3-component vector of float)

-0:?     'f' (in highp float)

-0:?     'fo' (out highp float)

-0:?     's' (shared highp 4-component vector of float)

-0:?     'sl' (layout(location=2 ) shared highp 4-component vector of float)

-0:?     'fs' (shared highp float)

-0:?     'arrX' (global 2-element array of highp int)

-0:?     'arrY' (global 1-element array of highp int)

-0:?     'arrZ' (global 4096-element array of highp int)

-0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:?     'v' (buffer highp 4-component vector of float)

-0:?     'us2dbad' (uniform mediump usampler2D)

-0:?     'us2d' (uniform highp usampler2D)

-0:?     'ii2dabad' (uniform highp iimage2DArray)

-0:?     'ii2da' (writeonly uniform highp iimage2DArray)

-0:?     'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:?     'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)

-0:?     'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)

-0:?     'uimg2D' (layout(r32ui ) uniform highp uimage2D)

-0:?     'vol' (volatile temp highp float)

-0:?     'vol2' (readonly temp highp int)

-0:?     'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)

-0:?     'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)

-0:?     'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)

-0:?     'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)

-0:?     'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)

-0:?     'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)

-0:?     'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)

-0:?     'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)

-0:?     'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:?     'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)

-0:?     'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)

-0:?     'i' (uniform highp int)

-0:?     'atomi' (shared highp int)

-0:?     'atomu' (shared highp uint)

-0:?     'pfoo' (temp highp int)

-0:?     'dm' (global 2X4 matrix of double)

-0:?     'sca' (uniform mediump samplerCubeArray)

-0:?     'i2dr' (uniform mediump iimage2DRect)

-0:?     'i2dms' (uniform lowp image2DMS)

-0:?     'u2dmsa' (uniform mediump uimage2DMSArray)

-0:?     'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)

-0:?     'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)

-0:?     'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)

-0:?     'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)

-0:?     'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)

-0:?     'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)

-0:?     'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)

-0:?     'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:?     'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})

-0:?     'inbi' (in block{in highp int a})

-0:?     'outbi' (out block{out highp int a})

-0:?     't__' (global highp float)

-0:?     'arr' (shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float)

-

-

-Linked compute stage:

-

-

-Shader version: 310

-local_size = (2, 1, 4096)

-ERROR: node is still EOpNull!

-0:27  Function Definition: main( (global void)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Barrier (global void)

-0:30      MemoryBarrier (global void)

-0:31      MemoryBarrierAtomicCounter (global void)

-0:32      MemoryBarrierBuffer (global void)

-0:33      MemoryBarrierShared (global void)

-0:34      MemoryBarrierImage (global void)

-0:35      GroupMemoryBarrier (global void)

-0:36      move second child to first child (temp highp int)

-0:36        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:36          Constant:

-0:36            0 (const uint)

-0:36        Convert float to int (temp highp int)

-0:36          indirect index (layout(column_major shared ) temp highp float)

-0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:36              Constant:

-0:36                1 (const uint)

-0:36            'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)

-0:59  Function Definition: foo( (global void)

-0:59    Function Parameters: 

-0:61    Sequence

-0:61      move second child to first child (temp highp float)

-0:61        direct index (layout(column_major shared ) temp highp float)

-0:61          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:61            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:61            Constant:

-0:61              1 (const int)

-0:61          Constant:

-0:61            2 (const int)

-0:61        Constant:

-0:61          4.700000

-0:62      array length (temp highp int)

-0:62        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:62          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:62          Constant:

-0:62            1 (const int)

-0:63      Pre-Increment (temp highp 4-component vector of float)

-0:63        's' (shared highp 4-component vector of float)

-0:84  Function Definition: qux( (global void)

-0:84    Function Parameters: 

-0:86    Sequence

-0:86      Sequence

-0:86        move second child to first child (temp highp int)

-0:86          'i' (temp highp int)

-0:86          Constant:

-0:86            4 (const int)

-0:87      imageAtomicCompSwap (global highp int)

-0:87        'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:87        Construct ivec2 (temp highp 2-component vector of int)

-0:87          'i' (temp highp int)

-0:87          'i' (temp highp int)

-0:87        'i' (temp highp int)

-0:87        'i' (temp highp int)

-0:88      imageAtomicAdd (global highp uint)

-0:88        'uimg2D' (layout(r32ui ) uniform highp uimage2D)

-0:88        Construct ivec2 (temp highp 2-component vector of int)

-0:88          'i' (temp highp int)

-0:88          'i' (temp highp int)

-0:88        Convert int to uint (temp highp uint)

-0:88          'i' (temp highp int)

-0:89      imageAtomicMin (global highp int)

-0:89        'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)

-0:89        Construct ivec2 (temp highp 2-component vector of int)

-0:89          'i' (temp highp int)

-0:89          'i' (temp highp int)

-0:89        'i' (temp highp int)

-0:90      Constant:

-0:90        0.000000

-0:91      Sequence

-0:91        move second child to first child (temp highp 4-component vector of int)

-0:91          'pos' (temp highp 4-component vector of int)

-0:91          imageLoad (global highp 4-component vector of int)

-0:91            'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:91            Construct ivec2 (temp highp 2-component vector of int)

-0:91              'i' (temp highp int)

-0:91              'i' (temp highp int)

-0:92      imageStore (global highp void)

-0:92        'ii2da' (writeonly uniform highp iimage2DArray)

-0:92        Construct ivec3 (temp 3-component vector of int)

-0:92          'i' (temp highp int)

-0:92          'i' (temp highp int)

-0:92          'i' (temp highp int)

-0:92        Constant:

-0:92          0 (const int)

-0:92          0 (const int)

-0:92          0 (const int)

-0:92          0 (const int)

-0:93      imageLoad (global highp 4-component vector of float)

-0:93        'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)

-0:93        Construct ivec2 (temp highp 2-component vector of int)

-0:93          'i' (temp highp int)

-0:93          'i' (temp highp int)

-0:94      imageLoad (global highp 4-component vector of int)

-0:94        'ii2da' (writeonly uniform highp iimage2DArray)

-0:94        Construct ivec3 (temp highp 3-component vector of int)

-0:94          'i' (temp highp int)

-0:94          'i' (temp highp int)

-0:94          'i' (temp highp int)

-0:100  Function Definition: passr(iI21; (global void)

-0:100    Function Parameters: 

-0:100      'image' (coherent readonly in highp iimage2D)

-0:107  Function Definition: passrc( (global void)

-0:107    Function Parameters: 

-0:109    Sequence

-0:109      Function Call: passr(iI21; (global void)

-0:109        'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)

-0:110      Function Call: passr(iI21; (global void)

-0:110        'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)

-0:111      Function Call: passr(iI21; (global void)

-0:111        'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:123  Function Definition: func(au1; (global highp uint)

-0:123    Function Parameters: 

-0:123      'c' (in highp atomic_uint)

-0:125    Sequence

-0:125      Branch: Return with expression

-0:125        AtomicCounterIncrement (global highp uint)

-0:125          'c' (in highp atomic_uint)

-0:128  Function Definition: func2(au1; (global highp uint)

-0:128    Function Parameters: 

-0:128      'c' (out highp atomic_uint)

-0:130    Sequence

-0:130      Branch: Return with expression

-0:130        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:131      Branch: Return with expression

-0:131        AtomicCounter (global highp uint)

-0:131          'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:134  Function Definition: mainAC( (global void)

-0:134    Function Parameters: 

-0:?     Sequence

-0:137      Sequence

-0:137        move second child to first child (temp highp uint)

-0:137          'val' (temp highp uint)

-0:137          AtomicCounter (global highp uint)

-0:137            'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:138      AtomicCounterDecrement (global highp uint)

-0:138        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:146  Function Definition: opac( (global void)

-0:146    Function Parameters: 

-0:?     Sequence

-0:149      indirect index (temp highp int)

-0:149        'a' (temp 3-element array of highp int)

-0:149        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:150      direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)

-0:150        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)

-0:150        Constant:

-0:150          2 (const int)

-0:151      indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)

-0:151        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)

-0:151        'i' (uniform highp int)

-0:157  Function Definition: atoms( (global void)

-0:157    Function Parameters: 

-0:159    Sequence

-0:159      Sequence

-0:159        move second child to first child (temp highp int)

-0:159          'origi' (temp highp int)

-0:159          AtomicAdd (global highp int)

-0:159            'atomi' (shared highp int)

-0:159            Constant:

-0:159              3 (const int)

-0:160      Sequence

-0:160        move second child to first child (temp highp uint)

-0:160          'origu' (temp highp uint)

-0:160          AtomicAnd (global highp uint)

-0:160            'atomu' (shared highp uint)

-0:160            Constant:

-0:160              7 (const uint)

-0:161      move second child to first child (temp highp int)

-0:161        'origi' (temp highp int)

-0:161        AtomicExchange (global highp int)

-0:161          'atomi' (shared highp int)

-0:161          Constant:

-0:161            4 (const int)

-0:162      move second child to first child (temp highp uint)

-0:162        'origu' (temp highp uint)

-0:162        AtomicCompSwap (global highp uint)

-0:162          'atomu' (shared highp uint)

-0:162          Constant:

-0:162            10 (const uint)

-0:162          Constant:

-0:162            8 (const uint)

-0:191  Function Definition: foowo( (global void)

-0:191    Function Parameters: 

-0:?     Sequence

-0:194      move second child to first child (temp highp float)

-0:194        'g' (temp highp float)

-0:194        direct index (layout(column_major shared ) temp highp float)

-0:194          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:194            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:194            Constant:

-0:194              1 (const int)

-0:194          Constant:

-0:194            2 (const int)

-0:195      Sequence

-0:195        move second child to first child (temp highp float)

-0:195          'f' (temp highp float)

-0:195          direct index (layout(column_major shared ) temp highp float)

-0:195            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:195              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:195              Constant:

-0:195                1 (const int)

-0:195            Constant:

-0:195              2 (const int)

-0:196      Pre-Increment (temp highp float)

-0:196        direct index (layout(column_major shared ) temp highp float)

-0:196          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:196            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:196            Constant:

-0:196              1 (const int)

-0:196          Constant:

-0:196            2 (const int)

-0:197      Post-Decrement (temp highp float)

-0:197        direct index (layout(column_major shared ) temp highp float)

-0:197          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:197            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:197            Constant:

-0:197              1 (const int)

-0:197          Constant:

-0:197            2 (const int)

-0:198      add (temp highp float)

-0:198        'f' (temp highp float)

-0:198        direct index (layout(column_major shared ) temp highp float)

-0:198          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:198            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:198            Constant:

-0:198              1 (const int)

-0:198          Constant:

-0:198            2 (const int)

-0:199      subtract (temp highp float)

-0:199        direct index (layout(column_major shared ) temp highp float)

-0:199          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:199            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:199            Constant:

-0:199              1 (const int)

-0:199          Constant:

-0:199            2 (const int)

-0:199        'f' (temp highp float)

-0:201      Test condition and select (temp highp float)

-0:201        Condition

-0:201        'b' (temp bool)

-0:201        true case

-0:201        'f' (temp highp float)

-0:201        false case

-0:201        direct index (layout(column_major shared ) temp highp float)

-0:201          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:201            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:201            Constant:

-0:201              1 (const int)

-0:201          Constant:

-0:201            2 (const int)

-0:202      Test condition and select (layout(column_major shared ) temp highp float)

-0:202        Condition

-0:202        'b' (temp bool)

-0:202        true case

-0:202        direct index (layout(column_major shared ) temp highp float)

-0:202          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:202            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:202            Constant:

-0:202              1 (const int)

-0:202          Constant:

-0:202            2 (const int)

-0:202        false case

-0:202        'f' (temp highp float)

-0:203      Test condition and select (temp void)

-0:203        Condition

-0:203        Compare Equal (temp bool)

-0:203          'f' (temp highp float)

-0:203          direct index (layout(column_major shared ) temp highp float)

-0:203            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:203              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:203              Constant:

-0:203                1 (const int)

-0:203            Constant:

-0:203              2 (const int)

-0:203        true case

-0:204        Pre-Increment (temp highp float)

-0:204          'f' (temp highp float)

-0:205      Test condition and select (temp void)

-0:205        Condition

-0:205        Compare Greater Than or Equal (temp bool)

-0:205          'f' (temp highp float)

-0:205          direct index (layout(column_major shared ) temp highp float)

-0:205            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:205              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:205              Constant:

-0:205                1 (const int)

-0:205            Constant:

-0:205              2 (const int)

-0:205        true case

-0:206        Pre-Increment (temp highp float)

-0:206          'f' (temp highp float)

-0:207      move second child to first child (temp highp float)

-0:207        'f' (temp highp float)

-0:207        direct index (temp highp float)

-0:207          Construct vec3 (temp highp 3-component vector of float)

-0:207            direct index (layout(column_major shared ) temp highp float)

-0:207              values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:207                'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:207                Constant:

-0:207                  1 (const int)

-0:207              Constant:

-0:207                2 (const int)

-0:207          Constant:

-0:207            0 (const int)

-0:208      Bitwise not (temp highp int)

-0:208        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:208          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:208          Constant:

-0:208            0 (const int)

-0:209      move second child to first child (temp highp float)

-0:209        direct index (layout(column_major shared ) temp highp float)

-0:209          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:209            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:209            Constant:

-0:209              1 (const int)

-0:209          Constant:

-0:209            2 (const int)

-0:209        Constant:

-0:209          3.400000

-0:218  Function Definition: foomultio( (global void)

-0:218    Function Parameters: 

-0:?     Sequence

-0:221      move second child to first child (temp highp float)

-0:221        'g' (temp highp float)

-0:221        direct index (layout(column_major shared ) temp highp float)

-0:221          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:221            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:221            Constant:

-0:221              1 (const int)

-0:221          Constant:

-0:221            2 (const int)

-0:222      Bitwise not (temp highp int)

-0:222        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:222          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:222          Constant:

-0:222            0 (const int)

-0:223      move second child to first child (temp highp float)

-0:223        direct index (layout(column_major shared ) temp highp float)

-0:223          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)

-0:223            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:223            Constant:

-0:223              1 (const int)

-0:223          Constant:

-0:223            2 (const int)

-0:223        Constant:

-0:223          3.400000

-0:224      move second child to first child (temp highp int)

-0:224        value: direct index for structure (layout(column_major shared ) buffer highp int)

-0:224          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:224          Constant:

-0:224            0 (const int)

-0:224        Constant:

-0:224          2 (const int)

-0:?   Linker Objects

-0:?     'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)

-0:?       2 (const uint)

-0:?       1 (const uint)

-0:?       4096 (const uint)

-0:?     'total' (const highp int)

-0:?       66592 (const int)

-0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of highp float values, layout(column_major shared ) buffer highp int value})

-0:?     'v3' (layout(location=2 ) in highp 3-component vector of float)

-0:?     'f' (in highp float)

-0:?     'fo' (out highp float)

-0:?     's' (shared highp 4-component vector of float)

-0:?     'sl' (layout(location=2 ) shared highp 4-component vector of float)

-0:?     'fs' (shared highp float)

-0:?     'arrX' (global 2-element array of highp int)

-0:?     'arrY' (global 1-element array of highp int)

-0:?     'arrZ' (global 4096-element array of highp int)

-0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:?     'v' (buffer highp 4-component vector of float)

-0:?     'us2dbad' (uniform mediump usampler2D)

-0:?     'us2d' (uniform highp usampler2D)

-0:?     'ii2dabad' (uniform highp iimage2DArray)

-0:?     'ii2da' (writeonly uniform highp iimage2DArray)

-0:?     'iimg2D' (layout(r32i ) uniform highp iimage2D)

-0:?     'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)

-0:?     'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)

-0:?     'uimg2D' (layout(r32ui ) uniform highp uimage2D)

-0:?     'vol' (volatile temp highp float)

-0:?     'vol2' (readonly temp highp int)

-0:?     'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)

-0:?     'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)

-0:?     'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)

-0:?     'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)

-0:?     'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)

-0:?     'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)

-0:?     'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)

-0:?     'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)

-0:?     'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)

-0:?     'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)

-0:?     'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)

-0:?     'i' (uniform highp int)

-0:?     'atomi' (shared highp int)

-0:?     'atomu' (shared highp uint)

-0:?     'pfoo' (temp highp int)

-0:?     'dm' (global 2X4 matrix of double)

-0:?     'sca' (uniform mediump samplerCubeArray)

-0:?     'i2dr' (uniform mediump iimage2DRect)

-0:?     'i2dms' (uniform lowp image2DMS)

-0:?     'u2dmsa' (uniform mediump uimage2DMSArray)

-0:?     'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)

-0:?     'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)

-0:?     'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)

-0:?     'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)

-0:?     'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)

-0:?     'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)

-0:?     'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)

-0:?     'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})

-0:?     'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})

-0:?     'inbi' (in block{in highp int a})

-0:?     'outbi' (out block{out highp int a})

-0:?     't__' (global highp float)

-0:?     'arr' (shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float)

-

+310.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'local_size' : cannot change previously set size 
+ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize 
+ERROR: 0:23: '' : array size required 
+ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader 
+ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
+ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader 
+ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader 
+ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable 
+ERROR: 0:44: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 
+ERROR: 0:45: 'shared' :  cannot initialize this type of qualifier  
+ERROR: 0:47: 'local_size' : can only apply to 'in' 
+ERROR: 0:47: 'local_size' : can only apply to 'in' 
+ERROR: 0:47: 'local_size' : can only apply to 'in' 
+ERROR: 0:61: 'assign' :  l-value required "ro" (can't modify a readonly buffer)
+ERROR: 0:66: 'buffer' : buffers can be declared only as blocks 
+ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:76: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:89: 'readonly' : argument cannot drop memory qualifier when passed to formal parameter 
+ERROR: 0:89: 'imageAtomicMin' : only supported on image with format r32i or r32ui 
+ERROR: 0:90: 'imageAtomicMax' : no matching overloaded function found 
+ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter 
+ERROR: 0:97: '' : memory qualifiers cannot be used on this type 
+ERROR: 0:98: '' : memory qualifiers cannot be used on this type 
+ERROR: 0:114: 'image load-store format' : not supported with this profile: es
+ERROR: 0:114: 'rg8i' : does not apply to unsigned integer images 
+ERROR: 0:115: 'rgba32i' : does not apply to floating point images 
+ERROR: 0:116: 'rgba32f' : does not apply to unsigned integer images 
+ERROR: 0:117: 'image load-store format' : not supported with this profile: es
+ERROR: 0:117: 'r8_snorm' : does not apply to signed integer images 
+ERROR: 0:118: 'rgba32ui' : does not apply to signed integer images 
+ERROR: 0:119: 'image load-store format' : not supported with this profile: es
+ERROR: 0:119: 'r8ui' : does not apply to signed integer images 
+ERROR: 0:128: 'atomic_uint' : samplers and atomic_uints cannot be output parameters 
+ERROR: 0:130: 'return' : type does not match, or is not convertible to, the function's return type 
+ERROR: 0:136: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter
+ERROR: 0:136: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:141: 'atomic_uint' : atomic counters can only be highp 
+ERROR: 0:141: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:143: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:149: '[]' : scalar integer expression required 
+ERROR: 0:166: 'precision' : can only apply highp to atomic_uint 
+ERROR: 0:168: 'precise' : Reserved word. 
+ERROR: 0:170: 'dmat2x4' : Reserved word. 
+ERROR: 0:170: 'double matrix' : not supported with this profile: es
+ERROR: 0:171: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:171: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:172: 'iimage2DRect' : Reserved word. 
+ERROR: 0:172: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:172: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:173: 'image2DMS' : Reserved word. 
+ERROR: 0:173: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:174: 'uimage2DMSArray' : Reserved word. 
+ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:174: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier 
+ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier 
+ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier 
+ERROR: 0:194: 'assign' : can't read from writeonly object:  wo
+ERROR: 0:195: 'initializer' : can't read from writeonly object:  wo
+ERROR: 0:196: '++' : can't read from writeonly object:  wo
+ERROR: 0:197: '--' : can't read from writeonly object:  wo
+ERROR: 0:198: '+' : can't read from writeonly object:  wo
+ERROR: 0:199: '-' : can't read from writeonly object:  wo
+ERROR: 0:201: ':' : can't read from writeonly object:  wo
+ERROR: 0:202: ':' : can't read from writeonly object:  wo
+ERROR: 0:203: '==' : can't read from writeonly object:  wo
+ERROR: 0:205: '>=' : can't read from writeonly object:  wo
+ERROR: 0:207: 'constructor' : can't read from writeonly object:  wo
+ERROR: 0:208: '~' : can't read from writeonly object:  wo
+ERROR: 0:221: 'assign' : can't read from writeonly object:  wo
+ERROR: 0:222: '~' : can't read from writeonly object:  wo
+ERROR: 0:227: 'input block' : not supported in this stage: compute
+ERROR: 0:231: 'output block' : not supported in this stage: compute
+WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D
+ERROR: 76 compilation errors.  No code generated.
+
+
+Shader version: 310
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( (global void)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Barrier (global void)
+0:30      MemoryBarrier (global void)
+0:31      MemoryBarrierAtomicCounter (global void)
+0:32      MemoryBarrierBuffer (global void)
+0:33      MemoryBarrierShared (global void)
+0:34      MemoryBarrierImage (global void)
+0:35      GroupMemoryBarrier (global void)
+0:36      move second child to first child (temp highp int)
+0:36        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36          Constant:
+0:36            0 (const uint)
+0:36        Convert float to int (temp highp int)
+0:36          indirect index (layout(column_major shared ) temp highp float)
+0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36              Constant:
+0:36                1 (const uint)
+0:36            'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)
+0:59  Function Definition: foo( (global void)
+0:59    Function Parameters: 
+0:61    Sequence
+0:61      move second child to first child (temp highp float)
+0:61        direct index (layout(column_major shared ) temp highp float)
+0:61          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:61            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:61            Constant:
+0:61              1 (const int)
+0:61          Constant:
+0:61            2 (const int)
+0:61        Constant:
+0:61          4.700000
+0:62      array length (temp highp int)
+0:62        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:62          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:62          Constant:
+0:62            1 (const int)
+0:63      Pre-Increment (temp highp 4-component vector of float)
+0:63        's' (shared highp 4-component vector of float)
+0:84  Function Definition: qux( (global void)
+0:84    Function Parameters: 
+0:86    Sequence
+0:86      Sequence
+0:86        move second child to first child (temp highp int)
+0:86          'i' (temp highp int)
+0:86          Constant:
+0:86            4 (const int)
+0:87      imageAtomicCompSwap (global highp int)
+0:87        'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:87        Construct ivec2 (temp highp 2-component vector of int)
+0:87          'i' (temp highp int)
+0:87          'i' (temp highp int)
+0:87        'i' (temp highp int)
+0:87        'i' (temp highp int)
+0:88      imageAtomicAdd (global highp uint)
+0:88        'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:88        Construct ivec2 (temp highp 2-component vector of int)
+0:88          'i' (temp highp int)
+0:88          'i' (temp highp int)
+0:88        Convert int to uint (temp highp uint)
+0:88          'i' (temp highp int)
+0:89      imageAtomicMin (global highp int)
+0:89        'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:89        Construct ivec2 (temp highp 2-component vector of int)
+0:89          'i' (temp highp int)
+0:89          'i' (temp highp int)
+0:89        'i' (temp highp int)
+0:90      Constant:
+0:90        0.000000
+0:91      Sequence
+0:91        move second child to first child (temp highp 4-component vector of int)
+0:91          'pos' (temp highp 4-component vector of int)
+0:91          imageLoad (global highp 4-component vector of int)
+0:91            'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:91            Construct ivec2 (temp highp 2-component vector of int)
+0:91              'i' (temp highp int)
+0:91              'i' (temp highp int)
+0:92      imageStore (global highp void)
+0:92        'ii2da' (writeonly uniform highp iimage2DArray)
+0:92        Construct ivec3 (temp 3-component vector of int)
+0:92          'i' (temp highp int)
+0:92          'i' (temp highp int)
+0:92          'i' (temp highp int)
+0:92        Constant:
+0:92          0 (const int)
+0:92          0 (const int)
+0:92          0 (const int)
+0:92          0 (const int)
+0:93      imageLoad (global highp 4-component vector of float)
+0:93        'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:93        Construct ivec2 (temp highp 2-component vector of int)
+0:93          'i' (temp highp int)
+0:93          'i' (temp highp int)
+0:94      imageLoad (global highp 4-component vector of int)
+0:94        'ii2da' (writeonly uniform highp iimage2DArray)
+0:94        Construct ivec3 (temp highp 3-component vector of int)
+0:94          'i' (temp highp int)
+0:94          'i' (temp highp int)
+0:94          'i' (temp highp int)
+0:100  Function Definition: passr(iI21; (global void)
+0:100    Function Parameters: 
+0:100      'image' (coherent readonly in highp iimage2D)
+0:107  Function Definition: passrc( (global void)
+0:107    Function Parameters: 
+0:109    Sequence
+0:109      Function Call: passr(iI21; (global void)
+0:109        'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:110      Function Call: passr(iI21; (global void)
+0:110        'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:111      Function Call: passr(iI21; (global void)
+0:111        'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:123  Function Definition: func(au1; (global highp uint)
+0:123    Function Parameters: 
+0:123      'c' (in highp atomic_uint)
+0:125    Sequence
+0:125      Branch: Return with expression
+0:125        AtomicCounterIncrement (global highp uint)
+0:125          'c' (in highp atomic_uint)
+0:128  Function Definition: func2(au1; (global highp uint)
+0:128    Function Parameters: 
+0:128      'c' (out highp atomic_uint)
+0:130    Sequence
+0:130      Branch: Return with expression
+0:130        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:131      Branch: Return with expression
+0:131        AtomicCounter (global highp uint)
+0:131          'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:134  Function Definition: mainAC( (global void)
+0:134    Function Parameters: 
+0:?     Sequence
+0:137      Sequence
+0:137        move second child to first child (temp highp uint)
+0:137          'val' (temp highp uint)
+0:137          AtomicCounter (global highp uint)
+0:137            'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:138      AtomicCounterDecrement (global highp uint)
+0:138        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:146  Function Definition: opac( (global void)
+0:146    Function Parameters: 
+0:?     Sequence
+0:149      indirect index (temp highp int)
+0:149        'a' (temp 3-element array of highp int)
+0:149        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:150      direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:150        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:150        Constant:
+0:150          2 (const int)
+0:151      indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:151        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:151        'i' (uniform highp int)
+0:157  Function Definition: atoms( (global void)
+0:157    Function Parameters: 
+0:159    Sequence
+0:159      Sequence
+0:159        move second child to first child (temp highp int)
+0:159          'origi' (temp highp int)
+0:159          AtomicAdd (global highp int)
+0:159            'atomi' (shared highp int)
+0:159            Constant:
+0:159              3 (const int)
+0:160      Sequence
+0:160        move second child to first child (temp highp uint)
+0:160          'origu' (temp highp uint)
+0:160          AtomicAnd (global highp uint)
+0:160            'atomu' (shared highp uint)
+0:160            Constant:
+0:160              7 (const uint)
+0:161      move second child to first child (temp highp int)
+0:161        'origi' (temp highp int)
+0:161        AtomicExchange (global highp int)
+0:161          'atomi' (shared highp int)
+0:161          Constant:
+0:161            4 (const int)
+0:162      move second child to first child (temp highp uint)
+0:162        'origu' (temp highp uint)
+0:162        AtomicCompSwap (global highp uint)
+0:162          'atomu' (shared highp uint)
+0:162          Constant:
+0:162            10 (const uint)
+0:162          Constant:
+0:162            8 (const uint)
+0:191  Function Definition: foowo( (global void)
+0:191    Function Parameters: 
+0:?     Sequence
+0:194      move second child to first child (temp highp float)
+0:194        'g' (temp highp float)
+0:194        direct index (layout(column_major shared ) temp highp float)
+0:194          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:194            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:194            Constant:
+0:194              1 (const int)
+0:194          Constant:
+0:194            2 (const int)
+0:195      Sequence
+0:195        move second child to first child (temp highp float)
+0:195          'f' (temp highp float)
+0:195          direct index (layout(column_major shared ) temp highp float)
+0:195            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:195              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:195              Constant:
+0:195                1 (const int)
+0:195            Constant:
+0:195              2 (const int)
+0:196      Pre-Increment (temp highp float)
+0:196        direct index (layout(column_major shared ) temp highp float)
+0:196          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:196            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:196            Constant:
+0:196              1 (const int)
+0:196          Constant:
+0:196            2 (const int)
+0:197      Post-Decrement (temp highp float)
+0:197        direct index (layout(column_major shared ) temp highp float)
+0:197          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:197            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:197            Constant:
+0:197              1 (const int)
+0:197          Constant:
+0:197            2 (const int)
+0:198      add (temp highp float)
+0:198        'f' (temp highp float)
+0:198        direct index (layout(column_major shared ) temp highp float)
+0:198          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:198            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:198            Constant:
+0:198              1 (const int)
+0:198          Constant:
+0:198            2 (const int)
+0:199      subtract (temp highp float)
+0:199        direct index (layout(column_major shared ) temp highp float)
+0:199          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:199            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:199            Constant:
+0:199              1 (const int)
+0:199          Constant:
+0:199            2 (const int)
+0:199        'f' (temp highp float)
+0:201      Test condition and select (temp highp float)
+0:201        Condition
+0:201        'b' (temp bool)
+0:201        true case
+0:201        'f' (temp highp float)
+0:201        false case
+0:201        direct index (layout(column_major shared ) temp highp float)
+0:201          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:201            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:201            Constant:
+0:201              1 (const int)
+0:201          Constant:
+0:201            2 (const int)
+0:202      Test condition and select (layout(column_major shared ) temp highp float)
+0:202        Condition
+0:202        'b' (temp bool)
+0:202        true case
+0:202        direct index (layout(column_major shared ) temp highp float)
+0:202          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:202            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:202            Constant:
+0:202              1 (const int)
+0:202          Constant:
+0:202            2 (const int)
+0:202        false case
+0:202        'f' (temp highp float)
+0:203      Test condition and select (temp void)
+0:203        Condition
+0:203        Compare Equal (temp bool)
+0:203          'f' (temp highp float)
+0:203          direct index (layout(column_major shared ) temp highp float)
+0:203            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:203              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:203              Constant:
+0:203                1 (const int)
+0:203            Constant:
+0:203              2 (const int)
+0:203        true case
+0:204        Pre-Increment (temp highp float)
+0:204          'f' (temp highp float)
+0:205      Test condition and select (temp void)
+0:205        Condition
+0:205        Compare Greater Than or Equal (temp bool)
+0:205          'f' (temp highp float)
+0:205          direct index (layout(column_major shared ) temp highp float)
+0:205            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:205              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:205              Constant:
+0:205                1 (const int)
+0:205            Constant:
+0:205              2 (const int)
+0:205        true case
+0:206        Pre-Increment (temp highp float)
+0:206          'f' (temp highp float)
+0:207      move second child to first child (temp highp float)
+0:207        'f' (temp highp float)
+0:207        direct index (temp highp float)
+0:207          Construct vec3 (temp highp 3-component vector of float)
+0:207            direct index (layout(column_major shared ) temp highp float)
+0:207              values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:207                'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:207                Constant:
+0:207                  1 (const int)
+0:207              Constant:
+0:207                2 (const int)
+0:207          Constant:
+0:207            0 (const int)
+0:208      Bitwise not (temp highp int)
+0:208        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:208          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:208          Constant:
+0:208            0 (const int)
+0:209      move second child to first child (temp highp float)
+0:209        direct index (layout(column_major shared ) temp highp float)
+0:209          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:209            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:209            Constant:
+0:209              1 (const int)
+0:209          Constant:
+0:209            2 (const int)
+0:209        Constant:
+0:209          3.400000
+0:218  Function Definition: foomultio( (global void)
+0:218    Function Parameters: 
+0:?     Sequence
+0:221      move second child to first child (temp highp float)
+0:221        'g' (temp highp float)
+0:221        direct index (layout(column_major shared ) temp highp float)
+0:221          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:221            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:221            Constant:
+0:221              1 (const int)
+0:221          Constant:
+0:221            2 (const int)
+0:222      Bitwise not (temp highp int)
+0:222        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:222          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:222          Constant:
+0:222            0 (const int)
+0:223      move second child to first child (temp highp float)
+0:223        direct index (layout(column_major shared ) temp highp float)
+0:223          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:223            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:223            Constant:
+0:223              1 (const int)
+0:223          Constant:
+0:223            2 (const int)
+0:223        Constant:
+0:223          3.400000
+0:224      move second child to first child (temp highp int)
+0:224        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:224          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:224          Constant:
+0:224            0 (const int)
+0:224        Constant:
+0:224          2 (const int)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)
+0:?       2 (const uint)
+0:?       1 (const uint)
+0:?       4096 (const uint)
+0:?     'total' (const highp int)
+0:?       66592 (const int)
+0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of highp float values, layout(column_major shared ) buffer highp int value})
+0:?     'v3' (layout(location=2 ) in highp 3-component vector of float)
+0:?     'f' (in highp float)
+0:?     'fo' (out highp float)
+0:?     's' (shared highp 4-component vector of float)
+0:?     'sl' (layout(location=2 ) shared highp 4-component vector of float)
+0:?     'fs' (shared highp float)
+0:?     'arrX' (global 2-element array of highp int)
+0:?     'arrY' (global 1-element array of highp int)
+0:?     'arrZ' (global 4096-element array of highp int)
+0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:?     'v' (buffer highp 4-component vector of float)
+0:?     'us2dbad' (uniform mediump usampler2D)
+0:?     'us2d' (uniform highp usampler2D)
+0:?     'ii2dabad' (uniform highp iimage2DArray)
+0:?     'ii2da' (writeonly uniform highp iimage2DArray)
+0:?     'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:?     'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:?     'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:?     'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:?     'vol' (volatile temp highp float)
+0:?     'vol2' (readonly temp highp int)
+0:?     'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:?     'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:?     'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
+0:?     'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
+0:?     'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
+0:?     'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
+0:?     'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
+0:?     'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)
+0:?     'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:?     'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)
+0:?     'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:?     'i' (uniform highp int)
+0:?     'atomi' (shared highp int)
+0:?     'atomu' (shared highp uint)
+0:?     'pfoo' (temp highp int)
+0:?     'dm' (global 2X4 matrix of double)
+0:?     'sca' (uniform mediump samplerCubeArray)
+0:?     'i2dr' (uniform mediump iimage2DRect)
+0:?     'i2dms' (uniform lowp image2DMS)
+0:?     'u2dmsa' (uniform mediump uimage2DMSArray)
+0:?     'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
+0:?     'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
+0:?     'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
+0:?     'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
+0:?     'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
+0:?     'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
+0:?     'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
+0:?     'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:?     'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})
+0:?     'inbi' (in block{in highp int a})
+0:?     'outbi' (out block{out highp int a})
+0:?     't__' (global highp float)
+0:?     'arr' (shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float)
+
+
+Linked compute stage:
+
+
+Shader version: 310
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( (global void)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Barrier (global void)
+0:30      MemoryBarrier (global void)
+0:31      MemoryBarrierAtomicCounter (global void)
+0:32      MemoryBarrierBuffer (global void)
+0:33      MemoryBarrierShared (global void)
+0:34      MemoryBarrierImage (global void)
+0:35      GroupMemoryBarrier (global void)
+0:36      move second child to first child (temp highp int)
+0:36        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36          Constant:
+0:36            0 (const uint)
+0:36        Convert float to int (temp highp int)
+0:36          indirect index (layout(column_major shared ) temp highp float)
+0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:36              Constant:
+0:36                1 (const uint)
+0:36            'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex)
+0:59  Function Definition: foo( (global void)
+0:59    Function Parameters: 
+0:61    Sequence
+0:61      move second child to first child (temp highp float)
+0:61        direct index (layout(column_major shared ) temp highp float)
+0:61          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:61            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:61            Constant:
+0:61              1 (const int)
+0:61          Constant:
+0:61            2 (const int)
+0:61        Constant:
+0:61          4.700000
+0:62      array length (temp highp int)
+0:62        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:62          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:62          Constant:
+0:62            1 (const int)
+0:63      Pre-Increment (temp highp 4-component vector of float)
+0:63        's' (shared highp 4-component vector of float)
+0:84  Function Definition: qux( (global void)
+0:84    Function Parameters: 
+0:86    Sequence
+0:86      Sequence
+0:86        move second child to first child (temp highp int)
+0:86          'i' (temp highp int)
+0:86          Constant:
+0:86            4 (const int)
+0:87      imageAtomicCompSwap (global highp int)
+0:87        'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:87        Construct ivec2 (temp highp 2-component vector of int)
+0:87          'i' (temp highp int)
+0:87          'i' (temp highp int)
+0:87        'i' (temp highp int)
+0:87        'i' (temp highp int)
+0:88      imageAtomicAdd (global highp uint)
+0:88        'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:88        Construct ivec2 (temp highp 2-component vector of int)
+0:88          'i' (temp highp int)
+0:88          'i' (temp highp int)
+0:88        Convert int to uint (temp highp uint)
+0:88          'i' (temp highp int)
+0:89      imageAtomicMin (global highp int)
+0:89        'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:89        Construct ivec2 (temp highp 2-component vector of int)
+0:89          'i' (temp highp int)
+0:89          'i' (temp highp int)
+0:89        'i' (temp highp int)
+0:90      Constant:
+0:90        0.000000
+0:91      Sequence
+0:91        move second child to first child (temp highp 4-component vector of int)
+0:91          'pos' (temp highp 4-component vector of int)
+0:91          imageLoad (global highp 4-component vector of int)
+0:91            'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:91            Construct ivec2 (temp highp 2-component vector of int)
+0:91              'i' (temp highp int)
+0:91              'i' (temp highp int)
+0:92      imageStore (global highp void)
+0:92        'ii2da' (writeonly uniform highp iimage2DArray)
+0:92        Construct ivec3 (temp 3-component vector of int)
+0:92          'i' (temp highp int)
+0:92          'i' (temp highp int)
+0:92          'i' (temp highp int)
+0:92        Constant:
+0:92          0 (const int)
+0:92          0 (const int)
+0:92          0 (const int)
+0:92          0 (const int)
+0:93      imageLoad (global highp 4-component vector of float)
+0:93        'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:93        Construct ivec2 (temp highp 2-component vector of int)
+0:93          'i' (temp highp int)
+0:93          'i' (temp highp int)
+0:94      imageLoad (global highp 4-component vector of int)
+0:94        'ii2da' (writeonly uniform highp iimage2DArray)
+0:94        Construct ivec3 (temp highp 3-component vector of int)
+0:94          'i' (temp highp int)
+0:94          'i' (temp highp int)
+0:94          'i' (temp highp int)
+0:100  Function Definition: passr(iI21; (global void)
+0:100    Function Parameters: 
+0:100      'image' (coherent readonly in highp iimage2D)
+0:107  Function Definition: passrc( (global void)
+0:107    Function Parameters: 
+0:109    Sequence
+0:109      Function Call: passr(iI21; (global void)
+0:109        'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:110      Function Call: passr(iI21; (global void)
+0:110        'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:111      Function Call: passr(iI21; (global void)
+0:111        'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:123  Function Definition: func(au1; (global highp uint)
+0:123    Function Parameters: 
+0:123      'c' (in highp atomic_uint)
+0:125    Sequence
+0:125      Branch: Return with expression
+0:125        AtomicCounterIncrement (global highp uint)
+0:125          'c' (in highp atomic_uint)
+0:128  Function Definition: func2(au1; (global highp uint)
+0:128    Function Parameters: 
+0:128      'c' (out highp atomic_uint)
+0:130    Sequence
+0:130      Branch: Return with expression
+0:130        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:131      Branch: Return with expression
+0:131        AtomicCounter (global highp uint)
+0:131          'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:134  Function Definition: mainAC( (global void)
+0:134    Function Parameters: 
+0:?     Sequence
+0:137      Sequence
+0:137        move second child to first child (temp highp uint)
+0:137          'val' (temp highp uint)
+0:137          AtomicCounter (global highp uint)
+0:137            'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:138      AtomicCounterDecrement (global highp uint)
+0:138        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:146  Function Definition: opac( (global void)
+0:146    Function Parameters: 
+0:?     Sequence
+0:149      indirect index (temp highp int)
+0:149        'a' (temp 3-element array of highp int)
+0:149        'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:150      direct index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:150        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:150        Constant:
+0:150          2 (const int)
+0:151      indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint)
+0:151        'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:151        'i' (uniform highp int)
+0:157  Function Definition: atoms( (global void)
+0:157    Function Parameters: 
+0:159    Sequence
+0:159      Sequence
+0:159        move second child to first child (temp highp int)
+0:159          'origi' (temp highp int)
+0:159          AtomicAdd (global highp int)
+0:159            'atomi' (shared highp int)
+0:159            Constant:
+0:159              3 (const int)
+0:160      Sequence
+0:160        move second child to first child (temp highp uint)
+0:160          'origu' (temp highp uint)
+0:160          AtomicAnd (global highp uint)
+0:160            'atomu' (shared highp uint)
+0:160            Constant:
+0:160              7 (const uint)
+0:161      move second child to first child (temp highp int)
+0:161        'origi' (temp highp int)
+0:161        AtomicExchange (global highp int)
+0:161          'atomi' (shared highp int)
+0:161          Constant:
+0:161            4 (const int)
+0:162      move second child to first child (temp highp uint)
+0:162        'origu' (temp highp uint)
+0:162        AtomicCompSwap (global highp uint)
+0:162          'atomu' (shared highp uint)
+0:162          Constant:
+0:162            10 (const uint)
+0:162          Constant:
+0:162            8 (const uint)
+0:191  Function Definition: foowo( (global void)
+0:191    Function Parameters: 
+0:?     Sequence
+0:194      move second child to first child (temp highp float)
+0:194        'g' (temp highp float)
+0:194        direct index (layout(column_major shared ) temp highp float)
+0:194          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:194            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:194            Constant:
+0:194              1 (const int)
+0:194          Constant:
+0:194            2 (const int)
+0:195      Sequence
+0:195        move second child to first child (temp highp float)
+0:195          'f' (temp highp float)
+0:195          direct index (layout(column_major shared ) temp highp float)
+0:195            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:195              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:195              Constant:
+0:195                1 (const int)
+0:195            Constant:
+0:195              2 (const int)
+0:196      Pre-Increment (temp highp float)
+0:196        direct index (layout(column_major shared ) temp highp float)
+0:196          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:196            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:196            Constant:
+0:196              1 (const int)
+0:196          Constant:
+0:196            2 (const int)
+0:197      Post-Decrement (temp highp float)
+0:197        direct index (layout(column_major shared ) temp highp float)
+0:197          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:197            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:197            Constant:
+0:197              1 (const int)
+0:197          Constant:
+0:197            2 (const int)
+0:198      add (temp highp float)
+0:198        'f' (temp highp float)
+0:198        direct index (layout(column_major shared ) temp highp float)
+0:198          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:198            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:198            Constant:
+0:198              1 (const int)
+0:198          Constant:
+0:198            2 (const int)
+0:199      subtract (temp highp float)
+0:199        direct index (layout(column_major shared ) temp highp float)
+0:199          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:199            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:199            Constant:
+0:199              1 (const int)
+0:199          Constant:
+0:199            2 (const int)
+0:199        'f' (temp highp float)
+0:201      Test condition and select (temp highp float)
+0:201        Condition
+0:201        'b' (temp bool)
+0:201        true case
+0:201        'f' (temp highp float)
+0:201        false case
+0:201        direct index (layout(column_major shared ) temp highp float)
+0:201          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:201            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:201            Constant:
+0:201              1 (const int)
+0:201          Constant:
+0:201            2 (const int)
+0:202      Test condition and select (layout(column_major shared ) temp highp float)
+0:202        Condition
+0:202        'b' (temp bool)
+0:202        true case
+0:202        direct index (layout(column_major shared ) temp highp float)
+0:202          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:202            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:202            Constant:
+0:202              1 (const int)
+0:202          Constant:
+0:202            2 (const int)
+0:202        false case
+0:202        'f' (temp highp float)
+0:203      Test condition and select (temp void)
+0:203        Condition
+0:203        Compare Equal (temp bool)
+0:203          'f' (temp highp float)
+0:203          direct index (layout(column_major shared ) temp highp float)
+0:203            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:203              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:203              Constant:
+0:203                1 (const int)
+0:203            Constant:
+0:203              2 (const int)
+0:203        true case
+0:204        Pre-Increment (temp highp float)
+0:204          'f' (temp highp float)
+0:205      Test condition and select (temp void)
+0:205        Condition
+0:205        Compare Greater Than or Equal (temp bool)
+0:205          'f' (temp highp float)
+0:205          direct index (layout(column_major shared ) temp highp float)
+0:205            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:205              'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:205              Constant:
+0:205                1 (const int)
+0:205            Constant:
+0:205              2 (const int)
+0:205        true case
+0:206        Pre-Increment (temp highp float)
+0:206          'f' (temp highp float)
+0:207      move second child to first child (temp highp float)
+0:207        'f' (temp highp float)
+0:207        direct index (temp highp float)
+0:207          Construct vec3 (temp highp 3-component vector of float)
+0:207            direct index (layout(column_major shared ) temp highp float)
+0:207              values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:207                'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:207                Constant:
+0:207                  1 (const int)
+0:207              Constant:
+0:207                2 (const int)
+0:207          Constant:
+0:207            0 (const int)
+0:208      Bitwise not (temp highp int)
+0:208        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:208          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:208          Constant:
+0:208            0 (const int)
+0:209      move second child to first child (temp highp float)
+0:209        direct index (layout(column_major shared ) temp highp float)
+0:209          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:209            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:209            Constant:
+0:209              1 (const int)
+0:209          Constant:
+0:209            2 (const int)
+0:209        Constant:
+0:209          3.400000
+0:218  Function Definition: foomultio( (global void)
+0:218    Function Parameters: 
+0:?     Sequence
+0:221      move second child to first child (temp highp float)
+0:221        'g' (temp highp float)
+0:221        direct index (layout(column_major shared ) temp highp float)
+0:221          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:221            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:221            Constant:
+0:221              1 (const int)
+0:221          Constant:
+0:221            2 (const int)
+0:222      Bitwise not (temp highp int)
+0:222        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:222          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:222          Constant:
+0:222            0 (const int)
+0:223      move second child to first child (temp highp float)
+0:223        direct index (layout(column_major shared ) temp highp float)
+0:223          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
+0:223            'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:223            Constant:
+0:223              1 (const int)
+0:223          Constant:
+0:223            2 (const int)
+0:223        Constant:
+0:223          3.400000
+0:224      move second child to first child (temp highp int)
+0:224        value: direct index for structure (layout(column_major shared ) buffer highp int)
+0:224          'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:224          Constant:
+0:224            0 (const int)
+0:224        Constant:
+0:224          2 (const int)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize)
+0:?       2 (const uint)
+0:?       1 (const uint)
+0:?       4096 (const uint)
+0:?     'total' (const highp int)
+0:?       66592 (const int)
+0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of highp float values, layout(column_major shared ) buffer highp int value})
+0:?     'v3' (layout(location=2 ) in highp 3-component vector of float)
+0:?     'f' (in highp float)
+0:?     'fo' (out highp float)
+0:?     's' (shared highp 4-component vector of float)
+0:?     'sl' (layout(location=2 ) shared highp 4-component vector of float)
+0:?     'fs' (shared highp float)
+0:?     'arrX' (global 2-element array of highp int)
+0:?     'arrY' (global 1-element array of highp int)
+0:?     'arrZ' (global 4096-element array of highp int)
+0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:?     'v' (buffer highp 4-component vector of float)
+0:?     'us2dbad' (uniform mediump usampler2D)
+0:?     'us2d' (uniform highp usampler2D)
+0:?     'ii2dabad' (uniform highp iimage2DArray)
+0:?     'ii2da' (writeonly uniform highp iimage2DArray)
+0:?     'iimg2D' (layout(r32i ) uniform highp iimage2D)
+0:?     'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
+0:?     'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
+0:?     'uimg2D' (layout(r32ui ) uniform highp uimage2D)
+0:?     'vol' (volatile temp highp float)
+0:?     'vol2' (readonly temp highp int)
+0:?     'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
+0:?     'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
+0:?     'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
+0:?     'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
+0:?     'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
+0:?     'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
+0:?     'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
+0:?     'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)
+0:?     'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
+0:?     'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)
+0:?     'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
+0:?     'i' (uniform highp int)
+0:?     'atomi' (shared highp int)
+0:?     'atomu' (shared highp uint)
+0:?     'pfoo' (temp highp int)
+0:?     'dm' (global 2X4 matrix of double)
+0:?     'sca' (uniform mediump samplerCubeArray)
+0:?     'i2dr' (uniform mediump iimage2DRect)
+0:?     'i2dms' (uniform lowp image2DMS)
+0:?     'u2dmsa' (uniform mediump uimage2DMSArray)
+0:?     'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
+0:?     'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
+0:?     'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
+0:?     'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
+0:?     'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
+0:?     'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
+0:?     'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
+0:?     'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
+0:?     'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})
+0:?     'inbi' (in block{in highp int a})
+0:?     'outbi' (out block{out highp int a})
+0:?     't__' (global highp float)
+0:?     'arr' (shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float)
+
diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out
index 9cfd0ef..f1dc4d0 100644
--- a/Test/baseResults/310.frag.out
+++ b/Test/baseResults/310.frag.out
@@ -1,1891 +1,1891 @@
-310.frag

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:2: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es

-ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es

-ERROR: 0:8: 'gl_FragCoord' : identifiers starting with "gl_" are reserved 

-ERROR: 0:11: 'location' : overlapping use of location 2

-ERROR: 0:15: 'usampler2DRect' : Reserved word. 

-ERROR: 0:15: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:23: 'variable indexing sampler array' : not supported for this version or the enabled extensions 

-ERROR: 0:27: 'textureGatherOffsets' : no matching overloaded function found 

-ERROR: 0:27: '=' :  cannot convert from 'const float' to 'temp mediump 4-component vector of uint'

-ERROR: 0:30: 'textureGatherOffset(...)' : must be a compile-time constant: component argument

-ERROR: 0:31: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument

-ERROR: 0:34: 'non-constant offset argument' : not supported for this version or the enabled extensions 

-ERROR: 0:42: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:66: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:67: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:68: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:69: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type 

-ERROR: 0:77: 'location' : location is too large 

-ERROR: 0:81: 'location' : too large for fragment output 

-ERROR: 0:82: 'location' : too large for fragment output 

-ERROR: 0:82: 'location' : overlapping use of location 40

-ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es

-ERROR: 0:83: 'layout-id value' : cannot be negative 

-ERROR: 0:110: 'out' : cannot be bool 

-ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut

-ERROR: 0:111: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:112: 'out' : cannot be a matrix 

-ERROR: 0:114: 'in' : cannot be bool 

-ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino

-ERROR: 0:117: 'fragment-shader array-of-array input' : not supported with this profile: es

-ERROR: 0:120: 'fragment-shader array-of-struct input' : not supported with this profile: es

-ERROR: 0:121: 'fragment-shader array-of-struct input' : not supported with this profile: es

-ERROR: 0:123: 'fragment-shader struct input containing an array' : not supported with this profile: es

-ERROR: 0:125: 'fragment-shader struct input containing structure' : not supported with this profile: es

-ERROR: 0:133: 'output block' : not supported in this stage: fragment

-ERROR: 0:138: '' : cannot nest a structure definition inside a structure or block 

-ERROR: 0:146: 'location' : overlapping use of location 13

-ERROR: 0:148: 'inbname2' : Cannot reuse block name within the same interface: in

-ERROR: 0:153: 'badmember' : nameless block contains a member that already has a name at global scope 

-ERROR: 0:157: 'inbname' : redefinition 

-ERROR: 0:159: 'vAnon' : redefinition 

-ERROR: 0:173: 'origin_upper_left' : not supported with this profile: es

-ERROR: 0:173: 'pixel_center_integer' : not supported with this profile: es

-ERROR: 0:173: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord

-ERROR: 0:177: 'depth layout qualifier' : not supported with this profile: es

-ERROR: 0:181: 'assign' :  l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests)

-ERROR: 0:182: 'gl_Layer' : required extension not requested: Possible extensions include:

-GL_EXT_geometry_shader

-GL_OES_geometry_shader

-ERROR: 0:183: 'gl_PrimitiveID' : required extension not requested: Possible extensions include:

-GL_EXT_geometry_shader

-GL_OES_geometry_shader

-ERROR: 0:209: 'precise' : Reserved word. 

-ERROR: 0:210: 'fma' : required extension not requested: Possible extensions include:

-GL_EXT_gpu_shader5

-GL_OES_gpu_shader5

-ERROR: 0:211: 'non-constant offset argument' : not supported for this version or the enabled extensions 

-ERROR: 0:212: 'textureGatherOffsets' : required extension not requested: Possible extensions include:

-GL_EXT_gpu_shader5

-GL_OES_gpu_shader5

-ERROR: 0:223: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument

-ERROR: 0:257: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables

-ERROR: 0:258: 'gl_SamplePosition' : required extension not requested: GL_OES_sample_variables

-ERROR: 0:259: 'gl_SampleMaskIn' : required extension not requested: GL_OES_sample_variables

-ERROR: 0:260: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables

-ERROR: 0:261: 'gl_NumSamples' : required extension not requested: GL_OES_sample_variables

-ERROR: 0:289: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:290: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:291: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:292: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:293: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:294: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:295: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:296: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:297: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:298: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:299: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:300: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:301: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:302: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:303: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:304: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:305: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic

-ERROR: 0:312: 'rgba32f' : format requires readonly or writeonly memory qualifier 

-ERROR: 0:313: 'rgba8ui' : format requires readonly or writeonly memory qualifier 

-ERROR: 0:314: 'rgba16i' : format requires readonly or writeonly memory qualifier 

-ERROR: 0:340: 'imageAtomicMax' : only supported on image with format r32i or r32ui 

-ERROR: 0:341: 'imageAtomicMax' : only supported on image with format r32i or r32ui 

-ERROR: 0:342: 'imageAtomicExchange' : only supported on image with format r32f 

-ERROR: 0:345: 'sample' : Reserved word. 

-ERROR: 0:346: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 

-ERROR: 0:347: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output 

-ERROR: 0:348: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output 

-ERROR: 0:349: 'noperspective' : Reserved word. 

-ERROR: 0:349: 'noperspective' : not supported with this profile: es

-ERROR: 0:349: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output 

-ERROR: 0:355: 'interpolateAtCentroid' : required extension not requested: GL_OES_shader_multisample_interpolation

-ERROR: 0:356: 'interpolateAtSample' : required extension not requested: GL_OES_shader_multisample_interpolation

-ERROR: 0:357: 'interpolateAtOffset' : required extension not requested: GL_OES_shader_multisample_interpolation

-ERROR: 0:365: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 

-ERROR: 0:380: 'interpolateAtCentroid' : no matching overloaded function found 

-ERROR: 0:380: 'assign' :  cannot convert from 'const float' to 'temp mediump 3-component vector of float'

-ERROR: 0:382: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:384: 'interpolateAtSample' : no matching overloaded function found 

-ERROR: 0:384: 'assign' :  cannot convert from 'const float' to 'temp mediump 3-component vector of float'

-ERROR: 0:386: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:389: 'interpolateAtOffset' : no matching overloaded function found 

-ERROR: 0:389: 'assign' :  cannot convert from 'const float' to 'temp mediump 3-component vector of float'

-ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:400: 'blend equation' : required extension not requested: GL_KHR_blend_equation_advanced

-ERROR: 0:423: 'blend equation' : can only apply to 'out' 

-ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier 

-ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier 

-ERROR: 0:426: 'blend equation' : can only apply to a standalone qualifier 

-ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier 

-ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier 

-ERROR: 0:429: 'blend_support' : unknown blend equation 

-ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es

-ERROR: 121 compilation errors.  No code generated.

-

-

-Shader version: 310

-Requested GL_EXT_shader_io_blocks

-Requested GL_EXT_texture_cube_map_array

-Requested GL_KHR_blend_equation_advanced

-Requested GL_OES_geometry_shader

-Requested GL_OES_gpu_shader5

-Requested GL_OES_sample_variables

-Requested GL_OES_shader_image_atomic

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_shader_multisample_interpolation

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-using early_fragment_tests

-using depth_any

-using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations

-ERROR: node is still EOpNull!

-0:21  Function Definition: main( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp highp 4-component vector of float)

-0:23          'v' (temp mediump 4-component vector of float)

-0:23          texture (global highp 4-component vector of float)

-0:23            indirect index (temp highp sampler2D)

-0:23              'arrayedSampler' (uniform 5-element array of highp sampler2D)

-0:23              'i' (uniform mediump int)

-0:23            'c2D' (smooth in mediump 2-component vector of float)

-0:28      Sequence

-0:28        move second child to first child (temp highp 4-component vector of float)

-0:28          'v4' (temp mediump 4-component vector of float)

-0:28          textureGather (global highp 4-component vector of float)

-0:28            direct index (temp highp sampler2D)

-0:28              'arrayedSampler' (uniform 5-element array of highp sampler2D)

-0:28              Constant:

-0:28                0 (const int)

-0:28            'c2D' (smooth in mediump 2-component vector of float)

-0:29      Sequence

-0:29        move second child to first child (temp mediump 4-component vector of int)

-0:29          'iv4' (temp mediump 4-component vector of int)

-0:29          textureGatherOffset (global mediump 4-component vector of int)

-0:29            'isamp2DA' (uniform highp isampler2DArray)

-0:29            Constant:

-0:29              0.100000

-0:29              0.100000

-0:29              0.100000

-0:29            Constant:

-0:29              1 (const int)

-0:29              1 (const int)

-0:29            Constant:

-0:29              3 (const int)

-0:30      move second child to first child (temp mediump 4-component vector of int)

-0:30        'iv4' (temp mediump 4-component vector of int)

-0:30        textureGatherOffset (global mediump 4-component vector of int)

-0:30          'isamp2DA' (uniform highp isampler2DArray)

-0:30          Constant:

-0:30            0.100000

-0:30            0.100000

-0:30            0.100000

-0:30          Constant:

-0:30            1 (const int)

-0:30            1 (const int)

-0:30          'i' (uniform mediump int)

-0:31      move second child to first child (temp mediump 4-component vector of int)

-0:31        'iv4' (temp mediump 4-component vector of int)

-0:31        textureGatherOffset (global mediump 4-component vector of int)

-0:31          'isamp2DA' (uniform highp isampler2DArray)

-0:31          Constant:

-0:31            0.100000

-0:31            0.100000

-0:31            0.100000

-0:31          Constant:

-0:31            1 (const int)

-0:31            1 (const int)

-0:31          Constant:

-0:31            4 (const int)

-0:32      move second child to first child (temp mediump 4-component vector of int)

-0:32        'iv4' (temp mediump 4-component vector of int)

-0:32        textureGatherOffset (global mediump 4-component vector of int)

-0:32          'isamp2DA' (uniform highp isampler2DArray)

-0:32          Constant:

-0:32            0.100000

-0:32            0.100000

-0:32            0.100000

-0:32          Constant:

-0:32            1 (const int)

-0:32            1 (const int)

-0:32          Constant:

-0:32            3 (const int)

-0:33      move second child to first child (temp mediump 4-component vector of int)

-0:33        'iv4' (temp mediump 4-component vector of int)

-0:33        textureGatherOffset (global mediump 4-component vector of int)

-0:33          'isamp2DA' (uniform highp isampler2DArray)

-0:33          Constant:

-0:33            0.100000

-0:33            0.100000

-0:33            0.100000

-0:33          Constant:

-0:33            0 (const int)

-0:33            0 (const int)

-0:34      move second child to first child (temp mediump 4-component vector of int)

-0:34        'iv4' (temp mediump 4-component vector of int)

-0:34        textureGatherOffset (global mediump 4-component vector of int)

-0:34          'isamp2DA' (uniform highp isampler2DArray)

-0:34          Constant:

-0:34            0.100000

-0:34            0.100000

-0:34            0.100000

-0:34          Construct ivec2 (temp mediump 2-component vector of int)

-0:34            'i' (uniform mediump int)

-0:38  Function Definition: foo23( (global void)

-0:38    Function Parameters: 

-0:?     Sequence

-0:42      textureProjGradOffset (global mediump 4-component vector of uint)

-0:42        'usamp2d' (uniform highp usampler2D)

-0:42        'outp' (out mediump 4-component vector of float)

-0:42        Constant:

-0:42          0.000000

-0:42          0.000000

-0:42        Constant:

-0:42          0.000000

-0:42          0.000000

-0:42        Convert float to int (temp mediump 2-component vector of int)

-0:42          'c2D' (smooth in mediump 2-component vector of float)

-0:43      textureProjGradOffset (global mediump 4-component vector of uint)

-0:43        'usamp2d' (uniform highp usampler2D)

-0:43        'outp' (out mediump 4-component vector of float)

-0:43        Constant:

-0:43          0.000000

-0:43          0.000000

-0:43        Constant:

-0:43          0.000000

-0:43          0.000000

-0:43        Constant:

-0:43          3 (const int)

-0:43          4 (const int)

-0:44      textureProjGradOffset (global mediump 4-component vector of uint)

-0:44        'usamp2d' (uniform highp usampler2D)

-0:44        'outp' (out mediump 4-component vector of float)

-0:44        Constant:

-0:44          0.000000

-0:44          0.000000

-0:44        Constant:

-0:44          0.000000

-0:44          0.000000

-0:44        Constant:

-0:44          15 (const int)

-0:44          16 (const int)

-0:45      textureProjGradOffset (global mediump 4-component vector of uint)

-0:45        'usamp2d' (uniform highp usampler2D)

-0:45        'outp' (out mediump 4-component vector of float)

-0:45        Constant:

-0:45          0.000000

-0:45          0.000000

-0:45        Constant:

-0:45          0.000000

-0:45          0.000000

-0:45        Constant:

-0:45          -10 (const int)

-0:45          20 (const int)

-0:47      Test condition and select (temp void)

-0:47        Condition

-0:47        'gl_HelperInvocation' (in bool HelperInvocation)

-0:47        true case

-0:48        Pre-Increment (temp mediump 4-component vector of float)

-0:48          'outp' (out mediump 4-component vector of float)

-0:50      Sequence

-0:50        move second child to first child (temp mediump int)

-0:50          'sum' (temp mediump int)

-0:50          Constant:

-0:50            32 (const int)

-0:58      move second child to first child (temp bool)

-0:58        'b1' (temp bool)

-0:58        mix (global bool)

-0:58          'b2' (temp bool)

-0:58          'b3' (temp bool)

-0:58          'b' (temp bool)

-0:59      Sequence

-0:59        move second child to first child (temp mediump 3-component vector of uint)

-0:59          'um3' (temp mediump 3-component vector of uint)

-0:59          mix (global mediump 3-component vector of uint)

-0:59            Construct uvec3 (temp mediump 3-component vector of uint)

-0:59              Convert int to uint (temp mediump uint)

-0:59                'i' (uniform mediump int)

-0:59            Construct uvec3 (temp mediump 3-component vector of uint)

-0:59              Convert int to uint (temp mediump uint)

-0:59                'i' (uniform mediump int)

-0:59            Construct bvec3 (temp 3-component vector of bool)

-0:59              'b' (temp bool)

-0:60      Sequence

-0:60        move second child to first child (temp mediump 4-component vector of int)

-0:60          'im4' (temp mediump 4-component vector of int)

-0:60          mix (global mediump 4-component vector of int)

-0:60            Construct ivec4 (temp mediump 4-component vector of int)

-0:60              'i' (uniform mediump int)

-0:60            Construct ivec4 (temp mediump 4-component vector of int)

-0:60              'i' (uniform mediump int)

-0:60            Construct bvec4 (temp 4-component vector of bool)

-0:60              'b' (temp bool)

-0:98  Function Definition: foots( (global void)

-0:98    Function Parameters: 

-0:100    Sequence

-0:100      Sequence

-0:100        move second child to first child (temp highp 2-component vector of int)

-0:100          'v2' (temp highp 2-component vector of int)

-0:100          textureSize (global highp 2-component vector of int)

-0:100            's1' (layout(binding=3 ) uniform highp sampler2D)

-0:100            Constant:

-0:100              2 (const int)

-0:101      Sequence

-0:101        move second child to first child (temp highp 3-component vector of int)

-0:101          'v3' (temp highp 3-component vector of int)

-0:101          textureSize (global highp 3-component vector of int)

-0:101            'isamp2DA' (uniform highp isampler2DArray)

-0:101            Constant:

-0:101              3 (const int)

-0:102      move second child to first child (temp highp 2-component vector of int)

-0:102        'v2' (temp highp 2-component vector of int)

-0:102        textureSize (global highp 2-component vector of int)

-0:102          's2dms' (uniform highp sampler2DMS)

-0:103      move second child to first child (temp highp 2-component vector of int)

-0:103        'v2' (temp highp 2-component vector of int)

-0:103        imageQuerySize (global highp 2-component vector of int)

-0:103          'i2D' (layout(binding=2 ) writeonly uniform highp image2D)

-0:104      move second child to first child (temp highp 3-component vector of int)

-0:104        'v3' (temp highp 3-component vector of int)

-0:104        imageQuerySize (global highp 3-component vector of int)

-0:104          'i3D' (layout(binding=4 ) readonly uniform mediump image3D)

-0:105      move second child to first child (temp highp 2-component vector of int)

-0:105        'v2' (temp highp 2-component vector of int)

-0:105        imageQuerySize (global highp 2-component vector of int)

-0:105          'iCube' (layout(binding=5 ) uniform lowp imageCube)

-0:106      move second child to first child (temp highp 3-component vector of int)

-0:106        'v3' (temp highp 3-component vector of int)

-0:106        imageQuerySize (global highp 3-component vector of int)

-0:106          'i2DA' (layout(binding=6 ) uniform mediump image2DArray)

-0:107      move second child to first child (temp highp 2-component vector of int)

-0:107        'v2' (temp highp 2-component vector of int)

-0:107        imageQuerySize (global highp 2-component vector of int)

-0:107          'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)

-0:165  Function Definition: fooIO( (global void)

-0:165    Function Parameters: 

-0:167    Sequence

-0:167      Sequence

-0:167        move second child to first child (temp mediump 4-component vector of float)

-0:167          'v' (temp mediump 4-component vector of float)

-0:167          add (temp mediump 4-component vector of float)

-0:167            v: direct index for structure (in mediump 4-component vector of float)

-0:167              'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})

-0:167              Constant:

-0:167                1 (const int)

-0:167            vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)

-0:167              'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})

-0:167              Constant:

-0:167                1 (const uint)

-0:168      vector scale second child into first child (temp mediump 4-component vector of float)

-0:168        'v' (temp mediump 4-component vector of float)

-0:168        f: direct index for structure (in mediump float)

-0:168          direct index (temp block{in mediump float f})

-0:168            'arrayedInst' (in 4-element array of block{in mediump float f})

-0:168            Constant:

-0:168              2 (const int)

-0:168          Constant:

-0:168            0 (const int)

-0:169      vector scale second child into first child (temp mediump 4-component vector of float)

-0:169        'v' (temp mediump 4-component vector of float)

-0:169        f: direct index for structure (in mediump float)

-0:169          indirect index (temp block{in mediump float f})

-0:169            'arrayedInst' (in 4-element array of block{in mediump float f})

-0:169            'i' (uniform mediump int)

-0:169          Constant:

-0:169            0 (const int)

-0:179  Function Definition: foo_IO( (global void)

-0:179    Function Parameters: 

-0:181    Sequence

-0:181      move second child to first child (temp highp float)

-0:181        'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:181        Constant:

-0:181          0.200000

-0:182      'gl_Layer' (flat in highp int Layer)

-0:183      'gl_PrimitiveID' (flat in highp int PrimitiveID)

-0:184      Sequence

-0:184        move second child to first child (temp bool)

-0:184          'f' (temp bool)

-0:184          'gl_FrontFacing' (gl_FrontFacing bool Face)

-0:191  Function Definition: foo_GS( (global void)

-0:191    Function Parameters: 

-0:193    Sequence

-0:193      Sequence

-0:193        move second child to first child (temp highp int)

-0:193          'l' (temp highp int)

-0:193          'gl_Layer' (flat in highp int Layer)

-0:194      Sequence

-0:194        move second child to first child (temp highp int)

-0:194          'p' (temp highp int)

-0:194          'gl_PrimitiveID' (flat in highp int PrimitiveID)

-0:207  Function Definition: pfooBad( (global void)

-0:207    Function Parameters: 

-0:?     Sequence

-0:210      move second child to first child (temp mediump 2-component vector of float)

-0:210        'h' (temp mediump 2-component vector of float)

-0:210        fma (global mediump 2-component vector of float)

-0:210          'inf' (smooth in mediump 2-component vector of float)

-0:210          'ing' (smooth in mediump 2-component vector of float)

-0:210          'h' (temp mediump 2-component vector of float)

-0:211      textureGatherOffset (global highp 4-component vector of float)

-0:211        direct index (temp highp sampler2D)

-0:211          'sArray' (uniform 4-element array of highp sampler2D)

-0:211          Constant:

-0:211            0 (const int)

-0:211        Constant:

-0:211          0.100000

-0:211          0.100000

-0:211        Convert float to int (temp highp 2-component vector of int)

-0:211          'inf' (smooth in mediump 2-component vector of float)

-0:212      textureGatherOffsets (global highp 4-component vector of float)

-0:212        direct index (temp highp sampler2D)

-0:212          'sArray' (uniform 4-element array of highp sampler2D)

-0:212          Constant:

-0:212            0 (const int)

-0:212        Constant:

-0:212          0.100000

-0:212          0.100000

-0:212        Constant:

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:217  Function Definition: pfoo( (global void)

-0:217    Function Parameters: 

-0:?     Sequence

-0:220      move second child to first child (temp mediump 2-component vector of float)

-0:220        'h' (temp mediump 2-component vector of float)

-0:220        fma (global mediump 2-component vector of float)

-0:220          'inf' (smooth in mediump 2-component vector of float)

-0:220          'ing' (smooth in mediump 2-component vector of float)

-0:220          'h' (temp mediump 2-component vector of float)

-0:221      textureGatherOffset (global highp 4-component vector of float)

-0:221        direct index (temp highp sampler2D)

-0:221          'sArray' (uniform 4-element array of highp sampler2D)

-0:221          Constant:

-0:221            0 (const int)

-0:221        Constant:

-0:221          0.100000

-0:221          0.100000

-0:221        Convert float to int (temp highp 2-component vector of int)

-0:221          'inf' (smooth in mediump 2-component vector of float)

-0:222      textureGatherOffsets (global highp 4-component vector of float)

-0:222        direct index (temp highp sampler2D)

-0:222          'sArray' (uniform 4-element array of highp sampler2D)

-0:222          Constant:

-0:222            0 (const int)

-0:222        Constant:

-0:222          0.100000

-0:222          0.100000

-0:222        Constant:

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:223      textureGatherOffsets (global highp 4-component vector of float)

-0:223        direct index (temp highp sampler2D)

-0:223          'sArray' (uniform 4-element array of highp sampler2D)

-0:223          Constant:

-0:223            0 (const int)

-0:223        Constant:

-0:223          0.100000

-0:223          0.100000

-0:223        'offsets' (uniform 4-element array of mediump 2-component vector of int)

-0:248  Function Definition: CAT( (global void)

-0:248    Function Parameters: 

-0:250    Sequence

-0:250      Sequence

-0:250        move second child to first child (temp highp 4-component vector of float)

-0:250          'b4' (temp highp 4-component vector of float)

-0:250          texture (global highp 4-component vector of float)

-0:250            'CA4' (uniform highp samplerCubeArray)

-0:250            Constant:

-0:250              0.500000

-0:250              0.500000

-0:250              0.500000

-0:250              0.500000

-0:250            Constant:

-0:250              0.240000

-0:251      Sequence

-0:251        move second child to first child (temp highp 4-component vector of int)

-0:251          'b6' (temp highp 4-component vector of int)

-0:251          texture (global mediump 4-component vector of int)

-0:251            'CA6' (uniform highp isamplerCubeArray)

-0:251            Constant:

-0:251              0.500000

-0:251              0.500000

-0:251              0.500000

-0:251              0.500000

-0:251            Constant:

-0:251              0.260000

-0:252      Sequence

-0:252        move second child to first child (temp highp 4-component vector of uint)

-0:252          'b7' (temp highp 4-component vector of uint)

-0:252          texture (global mediump 4-component vector of uint)

-0:252            'CA7' (uniform highp usamplerCubeArray)

-0:252            Constant:

-0:252              0.500000

-0:252              0.500000

-0:252              0.500000

-0:252              0.500000

-0:252            Constant:

-0:252              0.270000

-0:255  Function Definition: badSample( (global void)

-0:255    Function Parameters: 

-0:257    Sequence

-0:257      Sequence

-0:257        move second child to first child (temp lowp int)

-0:257          'a1' (temp lowp int)

-0:257          'gl_SampleID' (flat in lowp int SampleId)

-0:258      Sequence

-0:258        move second child to first child (temp mediump 2-component vector of float)

-0:258          'a2' (temp mediump 2-component vector of float)

-0:258          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)

-0:259      Sequence

-0:259        move second child to first child (temp highp int)

-0:259          'a3' (temp highp int)

-0:259          direct index (flat temp highp int SampleMaskIn)

-0:259            'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)

-0:259            Constant:

-0:259              0 (const int)

-0:260      move second child to first child (temp highp int)

-0:260        direct index (temp highp int SampleMaskIn)

-0:260          'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)

-0:260          Constant:

-0:260            0 (const int)

-0:260        'a3' (temp highp int)

-0:261      Sequence

-0:261        move second child to first child (temp mediump int)

-0:261          'n' (temp mediump int)

-0:261          'gl_NumSamples' (uniform lowp int)

-0:268  Function Definition: goodSample( (global void)

-0:268    Function Parameters: 

-0:270    Sequence

-0:270      Sequence

-0:270        move second child to first child (temp lowp int)

-0:270          'a1' (temp lowp int)

-0:270          'gl_SampleID' (flat in lowp int SampleId)

-0:271      Sequence

-0:271        move second child to first child (temp mediump 2-component vector of float)

-0:271          'a2' (temp mediump 2-component vector of float)

-0:271          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)

-0:272      Sequence

-0:272        move second child to first child (temp highp int)

-0:272          'a3' (temp highp int)

-0:272          direct index (flat temp highp int SampleMaskIn)

-0:272            'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)

-0:272            Constant:

-0:272              0 (const int)

-0:273      move second child to first child (temp highp int)

-0:273        direct index (temp highp int SampleMaskIn)

-0:273          'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)

-0:273          Constant:

-0:273            0 (const int)

-0:273        'a3' (temp highp int)

-0:274      Sequence

-0:274        move second child to first child (temp mediump int)

-0:274          'n1' (temp mediump int)

-0:274          Constant:

-0:274            4 (const int)

-0:275      Sequence

-0:275        move second child to first child (temp mediump int)

-0:275          'n2' (temp mediump int)

-0:275          'gl_NumSamples' (uniform lowp int)

-0:283  Function Definition: badImageAtom( (global void)

-0:283    Function Parameters: 

-0:?     Sequence

-0:289      imageAtomicAdd (global mediump int)

-0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:289        'P' (uniform mediump 2-component vector of int)

-0:289        'dati' (temp mediump int)

-0:290      imageAtomicAdd (global mediump uint)

-0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:290        'P' (uniform mediump 2-component vector of int)

-0:290        'datu' (temp mediump uint)

-0:291      imageAtomicMin (global mediump int)

-0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:291        'P' (uniform mediump 2-component vector of int)

-0:291        'dati' (temp mediump int)

-0:292      imageAtomicMin (global mediump uint)

-0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:292        'P' (uniform mediump 2-component vector of int)

-0:292        'datu' (temp mediump uint)

-0:293      imageAtomicMax (global mediump int)

-0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:293        'P' (uniform mediump 2-component vector of int)

-0:293        'dati' (temp mediump int)

-0:294      imageAtomicMax (global mediump uint)

-0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:294        'P' (uniform mediump 2-component vector of int)

-0:294        'datu' (temp mediump uint)

-0:295      imageAtomicAnd (global mediump int)

-0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:295        'P' (uniform mediump 2-component vector of int)

-0:295        'dati' (temp mediump int)

-0:296      imageAtomicAnd (global mediump uint)

-0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:296        'P' (uniform mediump 2-component vector of int)

-0:296        'datu' (temp mediump uint)

-0:297      imageAtomicOr (global mediump int)

-0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:297        'P' (uniform mediump 2-component vector of int)

-0:297        'dati' (temp mediump int)

-0:298      imageAtomicOr (global mediump uint)

-0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:298        'P' (uniform mediump 2-component vector of int)

-0:298        'datu' (temp mediump uint)

-0:299      imageAtomicXor (global mediump int)

-0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:299        'P' (uniform mediump 2-component vector of int)

-0:299        'dati' (temp mediump int)

-0:300      imageAtomicXor (global mediump uint)

-0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:300        'P' (uniform mediump 2-component vector of int)

-0:300        'datu' (temp mediump uint)

-0:301      imageAtomicExchange (global mediump int)

-0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:301        'P' (uniform mediump 2-component vector of int)

-0:301        'dati' (temp mediump int)

-0:302      imageAtomicExchange (global mediump uint)

-0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:302        'P' (uniform mediump 2-component vector of int)

-0:302        'datu' (temp mediump uint)

-0:303      imageAtomicExchange (global highp float)

-0:303        'im2Df' (layout(r32f ) uniform highp image2D)

-0:303        'P' (uniform mediump 2-component vector of int)

-0:303        'datf' (temp mediump float)

-0:304      imageAtomicCompSwap (global mediump int)

-0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:304        'P' (uniform mediump 2-component vector of int)

-0:304        Constant:

-0:304          3 (const int)

-0:304        'dati' (temp mediump int)

-0:305      imageAtomicCompSwap (global mediump uint)

-0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:305        'P' (uniform mediump 2-component vector of int)

-0:305        Constant:

-0:305          5 (const uint)

-0:305        'datu' (temp mediump uint)

-0:316  Function Definition: goodImageAtom( (global void)

-0:316    Function Parameters: 

-0:?     Sequence

-0:322      imageAtomicAdd (global mediump int)

-0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:322        'P' (uniform mediump 2-component vector of int)

-0:322        'dati' (temp mediump int)

-0:323      imageAtomicAdd (global mediump uint)

-0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:323        'P' (uniform mediump 2-component vector of int)

-0:323        'datu' (temp mediump uint)

-0:324      imageAtomicMin (global mediump int)

-0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:324        'P' (uniform mediump 2-component vector of int)

-0:324        'dati' (temp mediump int)

-0:325      imageAtomicMin (global mediump uint)

-0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:325        'P' (uniform mediump 2-component vector of int)

-0:325        'datu' (temp mediump uint)

-0:326      imageAtomicMax (global mediump int)

-0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:326        'P' (uniform mediump 2-component vector of int)

-0:326        'dati' (temp mediump int)

-0:327      imageAtomicMax (global mediump uint)

-0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:327        'P' (uniform mediump 2-component vector of int)

-0:327        'datu' (temp mediump uint)

-0:328      imageAtomicAnd (global mediump int)

-0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:328        'P' (uniform mediump 2-component vector of int)

-0:328        'dati' (temp mediump int)

-0:329      imageAtomicAnd (global mediump uint)

-0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:329        'P' (uniform mediump 2-component vector of int)

-0:329        'datu' (temp mediump uint)

-0:330      imageAtomicOr (global mediump int)

-0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:330        'P' (uniform mediump 2-component vector of int)

-0:330        'dati' (temp mediump int)

-0:331      imageAtomicOr (global mediump uint)

-0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:331        'P' (uniform mediump 2-component vector of int)

-0:331        'datu' (temp mediump uint)

-0:332      imageAtomicXor (global mediump int)

-0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:332        'P' (uniform mediump 2-component vector of int)

-0:332        'dati' (temp mediump int)

-0:333      imageAtomicXor (global mediump uint)

-0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:333        'P' (uniform mediump 2-component vector of int)

-0:333        'datu' (temp mediump uint)

-0:334      imageAtomicExchange (global mediump int)

-0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:334        'P' (uniform mediump 2-component vector of int)

-0:334        'dati' (temp mediump int)

-0:335      imageAtomicExchange (global mediump uint)

-0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:335        'P' (uniform mediump 2-component vector of int)

-0:335        'datu' (temp mediump uint)

-0:336      imageAtomicExchange (global highp float)

-0:336        'im2Df' (layout(r32f ) uniform highp image2D)

-0:336        'P' (uniform mediump 2-component vector of int)

-0:336        'datf' (temp mediump float)

-0:337      imageAtomicCompSwap (global mediump int)

-0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:337        'P' (uniform mediump 2-component vector of int)

-0:337        Constant:

-0:337          3 (const int)

-0:337        'dati' (temp mediump int)

-0:338      imageAtomicCompSwap (global mediump uint)

-0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:338        'P' (uniform mediump 2-component vector of int)

-0:338        Constant:

-0:338          5 (const uint)

-0:338        'datu' (temp mediump uint)

-0:340      imageAtomicMax (global mediump int)

-0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)

-0:340        'P' (uniform mediump 2-component vector of int)

-0:340        'dati' (temp mediump int)

-0:341      imageAtomicMax (global mediump uint)

-0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)

-0:341        'P' (uniform mediump 2-component vector of int)

-0:341        'datu' (temp mediump uint)

-0:342      imageAtomicExchange (global highp float)

-0:342        'badIm2Df' (layout(rgba32f ) uniform highp image2D)

-0:342        'P' (uniform mediump 2-component vector of int)

-0:342        'datf' (temp mediump float)

-0:353  Function Definition: badInterp( (global void)

-0:353    Function Parameters: 

-0:355    Sequence

-0:355      interpolateAtCentroid (global mediump 2-component vector of float)

-0:355        'colorfc' (centroid flat in mediump 2-component vector of float)

-0:356      interpolateAtSample (global mediump 2-component vector of float)

-0:356        'colorfc' (centroid flat in mediump 2-component vector of float)

-0:356        Constant:

-0:356          1 (const int)

-0:357      interpolateAtOffset (global mediump 2-component vector of float)

-0:357        'colorfc' (centroid flat in mediump 2-component vector of float)

-0:357        Constant:

-0:357          0.200000

-0:357          0.200000

-0:369  Function Definition: interp( (global void)

-0:369    Function Parameters: 

-0:?     Sequence

-0:376      move second child to first child (temp mediump 2-component vector of float)

-0:376        'res2' (temp mediump 2-component vector of float)

-0:376        interpolateAtCentroid (global mediump 2-component vector of float)

-0:376          'colorfc' (centroid flat in mediump 2-component vector of float)

-0:377      move second child to first child (temp mediump 4-component vector of float)

-0:377        'res4' (temp mediump 4-component vector of float)

-0:377        interpolateAtCentroid (global mediump 4-component vector of float)

-0:377          'colorSampIn' (smooth sample in mediump 4-component vector of float)

-0:378      move second child to first child (temp mediump 4-component vector of float)

-0:378        'res4' (temp mediump 4-component vector of float)

-0:378        interpolateAtCentroid (global mediump 4-component vector of float)

-0:378          'colorfsi' (flat sample in mediump 4-component vector of float)

-0:379      move second child to first child (temp mediump float)

-0:379        'res' (temp mediump float)

-0:379        interpolateAtCentroid (global mediump float)

-0:379          'scalarIn' (smooth in mediump float)

-0:380      'res3' (temp mediump 3-component vector of float)

-0:381      move second child to first child (temp mediump 3-component vector of float)

-0:381        'res3' (temp mediump 3-component vector of float)

-0:381        interpolateAtCentroid (global mediump 3-component vector of float)

-0:381          direct index (smooth sample temp mediump 3-component vector of float)

-0:381            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:381            Constant:

-0:381              2 (const int)

-0:382      move second child to first child (temp mediump 2-component vector of float)

-0:382        'res2' (temp mediump 2-component vector of float)

-0:382        interpolateAtCentroid (global mediump 2-component vector of float)

-0:382          vector swizzle (temp mediump 2-component vector of float)

-0:382            direct index (smooth sample temp mediump 3-component vector of float)

-0:382              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:382              Constant:

-0:382                2 (const int)

-0:382            Sequence

-0:382              Constant:

-0:382                0 (const int)

-0:382              Constant:

-0:382                1 (const int)

-0:384      'res3' (temp mediump 3-component vector of float)

-0:385      move second child to first child (temp mediump 3-component vector of float)

-0:385        'res3' (temp mediump 3-component vector of float)

-0:385        interpolateAtSample (global mediump 3-component vector of float)

-0:385          indirect index (smooth sample temp mediump 3-component vector of float)

-0:385            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:385            'i' (uniform mediump int)

-0:385          Constant:

-0:385            0 (const int)

-0:386      move second child to first child (temp mediump 2-component vector of float)

-0:386        'res2' (temp mediump 2-component vector of float)

-0:386        interpolateAtSample (global mediump 2-component vector of float)

-0:386          vector swizzle (temp mediump 2-component vector of float)

-0:386            direct index (smooth sample temp mediump 3-component vector of float)

-0:386              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:386              Constant:

-0:386                2 (const int)

-0:386            Sequence

-0:386              Constant:

-0:386                0 (const int)

-0:386              Constant:

-0:386                1 (const int)

-0:386          Constant:

-0:386            2 (const int)

-0:387      move second child to first child (temp mediump float)

-0:387        'res' (temp mediump float)

-0:387        interpolateAtSample (global mediump float)

-0:387          'scalarIn' (smooth in mediump float)

-0:387          Constant:

-0:387            1 (const int)

-0:389      'res3' (temp mediump 3-component vector of float)

-0:390      move second child to first child (temp mediump 3-component vector of float)

-0:390        'res3' (temp mediump 3-component vector of float)

-0:390        interpolateAtOffset (global mediump 3-component vector of float)

-0:390          direct index (smooth sample temp mediump 3-component vector of float)

-0:390            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:390            Constant:

-0:390              2 (const int)

-0:390          Constant:

-0:390            0.200000

-0:390            0.200000

-0:391      move second child to first child (temp mediump 2-component vector of float)

-0:391        'res2' (temp mediump 2-component vector of float)

-0:391        interpolateAtOffset (global mediump 2-component vector of float)

-0:391          vector swizzle (temp mediump 2-component vector of float)

-0:391            direct index (smooth sample temp mediump 3-component vector of float)

-0:391              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:391              Constant:

-0:391                2 (const int)

-0:391            Sequence

-0:391              Constant:

-0:391                0 (const int)

-0:391              Constant:

-0:391                1 (const int)

-0:391          Constant:

-0:391            0.200000

-0:391            0.200000

-0:392      move second child to first child (temp mediump float)

-0:392        'res' (temp mediump float)

-0:392        interpolateAtOffset (global mediump float)

-0:392          add (temp mediump float)

-0:392            'scalarIn' (smooth in mediump float)

-0:392            'scalarIn' (smooth in mediump float)

-0:392          Constant:

-0:392            0.200000

-0:392            0.200000

-0:393      move second child to first child (temp mediump float)

-0:393        'res' (temp mediump float)

-0:393        interpolateAtOffset (global mediump float)

-0:393          'scalarIn' (smooth in mediump float)

-0:393          Constant:

-0:393            0.200000

-0:393            0.200000

-0:396      move second child to first child (temp mediump float)

-0:396        'res' (temp mediump float)

-0:396        interpolateAtCentroid (global mediump float)

-0:396          'f' (temp mediump float)

-0:397      move second child to first child (temp mediump 4-component vector of float)

-0:397        'res4' (temp mediump 4-component vector of float)

-0:397        interpolateAtSample (global mediump 4-component vector of float)

-0:397          'outp' (out mediump 4-component vector of float)

-0:397          Constant:

-0:397            0 (const int)

-0:427  Function Definition: blendFoo( (temp void)

-0:427    Function Parameters: 

-0:428  Function Definition: blendFoo(vf3; (global void)

-0:428    Function Parameters: 

-0:428      'v' (in mediump 3-component vector of float)

-0:?   Linker Objects

-0:?     'gl_FragCoord' (smooth in mediump 4-component vector of float)

-0:?     'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)

-0:?     'yi' (layout(location=2 ) smooth in mediump 4X4 matrix of float)

-0:?     'arrayedSampler' (uniform 5-element array of highp sampler2D)

-0:?     'usamp2d' (uniform highp usampler2D)

-0:?     'samp2dr' (uniform mediump usampler2DRect)

-0:?     'isamp2DA' (uniform highp isampler2DArray)

-0:?     'c2D' (smooth in mediump 2-component vector of float)

-0:?     'i' (uniform mediump int)

-0:?     'outp' (out mediump 4-component vector of float)

-0:?     's1' (layout(binding=3 ) uniform highp sampler2D)

-0:?     's2' (layout(binding=3 ) uniform highp sampler2D)

-0:?     'i2D' (layout(binding=2 ) writeonly uniform highp image2D)

-0:?     'i3D' (layout(binding=4 ) readonly uniform mediump image3D)

-0:?     'iCube' (layout(binding=5 ) uniform lowp imageCube)

-0:?     'i2DA' (layout(binding=6 ) uniform mediump image2DArray)

-0:?     'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)

-0:?     'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})

-0:?     'centroidIn' (centroid smooth in mediump 4-component vector of float)

-0:?     'bigl' (uniform mediump 4-component vector of float)

-0:?     'bigout1' (layout(location=40 ) out mediump 4-component vector of float)

-0:?     'bigout2' (layout(location=40 ) out mediump 4-component vector of float)

-0:?     'neg' (out mediump 4-component vector of float)

-0:?     'b430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer mediump int i})

-0:?     'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})

-0:?     'smoothIn' (smooth in mediump 4-component vector of float)

-0:?     'flatIn' (flat in mediump int)

-0:?     's2dms' (uniform highp sampler2DMS)

-0:?     'bout' (out bool)

-0:?     'imageOut' (out highp image2D)

-0:?     'mout' (out mediump 2X3 matrix of float)

-0:?     'inb' (smooth in bool)

-0:?     'ino' (smooth in highp sampler2D)

-0:?     'ina' (smooth in 4-element array of mediump float)

-0:?     'inaa' (smooth in 4-element array of 2-element array of mediump float)

-0:?     'ins' (smooth in structure{global mediump float f})

-0:?     'inasa' (smooth in 4-element array of structure{global mediump float f})

-0:?     'insa' (smooth in 4-element array of structure{global mediump float f})

-0:?     'inSA' (smooth in structure{global 4-element array of mediump float f})

-0:?     'inSS' (smooth in structure{global mediump float f, global structure{global mediump float f} s})

-0:?     'outbinst' (out block{out mediump int a})

-0:?     'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})

-0:?     'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})

-0:?     'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)

-0:?     'arrayedInst' (in 4-element array of block{in mediump float f})

-0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:?     'inf' (smooth in mediump 2-component vector of float)

-0:?     'ing' (smooth in mediump 2-component vector of float)

-0:?     'offsets' (uniform 4-element array of mediump 2-component vector of int)

-0:?     'sArray' (uniform 4-element array of highp sampler2D)

-0:?     'sIndex' (uniform mediump int)

-0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)

-0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump int i})

-0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer mediump int i})

-0:?     'iArray' (writeonly uniform 5-element array of highp image2D)

-0:?     'constOffsets' (const 4-element array of mediump 2-component vector of int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?     'CA1' (writeonly uniform highp imageCubeArray)

-0:?     'CA2' (writeonly uniform highp iimageCubeArray)

-0:?     'CA3' (writeonly uniform highp uimageCubeArray)

-0:?     'CA4' (uniform highp samplerCubeArray)

-0:?     'CA5' (uniform highp samplerCubeArrayShadow)

-0:?     'CA6' (uniform highp isamplerCubeArray)

-0:?     'CA7' (uniform highp usamplerCubeArray)

-0:?     'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)

-0:?     'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)

-0:?     'im2Df' (layout(r32f ) uniform highp image2D)

-0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:?     'P' (uniform mediump 2-component vector of int)

-0:?     'badIm2Df' (layout(rgba32f ) uniform highp image2D)

-0:?     'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)

-0:?     'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)

-0:?     'colorSampInBad' (smooth sample in mediump 4-component vector of float)

-0:?     'colorCentroidBad' (centroid out mediump 4-component vector of float)

-0:?     'colorBadFlat' (flat out mediump 4-component vector of float)

-0:?     'colorBadSmooth' (smooth out mediump 4-component vector of float)

-0:?     'colorBadNo' (noperspective out mediump 4-component vector of float)

-0:?     'colorfc' (centroid flat in mediump 2-component vector of float)

-0:?     'scalarIn' (smooth in mediump float)

-0:?     'colorSampIn' (smooth sample in mediump 4-component vector of float)

-0:?     'colorSampleBad' (sample out mediump 4-component vector of float)

-0:?     'colorfsi' (flat sample in mediump 4-component vector of float)

-0:?     'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:?     'badout' (out mediump 4-component vector of float)

-0:?     'outAA' (out 2-element array of 2-element array of mediump 4-component vector of float)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers

-

-Shader version: 310

-Requested GL_EXT_shader_io_blocks

-Requested GL_EXT_texture_cube_map_array

-Requested GL_KHR_blend_equation_advanced

-Requested GL_OES_geometry_shader

-Requested GL_OES_gpu_shader5

-Requested GL_OES_sample_variables

-Requested GL_OES_shader_image_atomic

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_shader_multisample_interpolation

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-using early_fragment_tests

-using depth_any

-using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations

-ERROR: node is still EOpNull!

-0:21  Function Definition: main( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp highp 4-component vector of float)

-0:23          'v' (temp mediump 4-component vector of float)

-0:23          texture (global highp 4-component vector of float)

-0:23            indirect index (temp highp sampler2D)

-0:23              'arrayedSampler' (uniform 5-element array of highp sampler2D)

-0:23              'i' (uniform mediump int)

-0:23            'c2D' (smooth in mediump 2-component vector of float)

-0:28      Sequence

-0:28        move second child to first child (temp highp 4-component vector of float)

-0:28          'v4' (temp mediump 4-component vector of float)

-0:28          textureGather (global highp 4-component vector of float)

-0:28            direct index (temp highp sampler2D)

-0:28              'arrayedSampler' (uniform 5-element array of highp sampler2D)

-0:28              Constant:

-0:28                0 (const int)

-0:28            'c2D' (smooth in mediump 2-component vector of float)

-0:29      Sequence

-0:29        move second child to first child (temp mediump 4-component vector of int)

-0:29          'iv4' (temp mediump 4-component vector of int)

-0:29          textureGatherOffset (global mediump 4-component vector of int)

-0:29            'isamp2DA' (uniform highp isampler2DArray)

-0:29            Constant:

-0:29              0.100000

-0:29              0.100000

-0:29              0.100000

-0:29            Constant:

-0:29              1 (const int)

-0:29              1 (const int)

-0:29            Constant:

-0:29              3 (const int)

-0:30      move second child to first child (temp mediump 4-component vector of int)

-0:30        'iv4' (temp mediump 4-component vector of int)

-0:30        textureGatherOffset (global mediump 4-component vector of int)

-0:30          'isamp2DA' (uniform highp isampler2DArray)

-0:30          Constant:

-0:30            0.100000

-0:30            0.100000

-0:30            0.100000

-0:30          Constant:

-0:30            1 (const int)

-0:30            1 (const int)

-0:30          'i' (uniform mediump int)

-0:31      move second child to first child (temp mediump 4-component vector of int)

-0:31        'iv4' (temp mediump 4-component vector of int)

-0:31        textureGatherOffset (global mediump 4-component vector of int)

-0:31          'isamp2DA' (uniform highp isampler2DArray)

-0:31          Constant:

-0:31            0.100000

-0:31            0.100000

-0:31            0.100000

-0:31          Constant:

-0:31            1 (const int)

-0:31            1 (const int)

-0:31          Constant:

-0:31            4 (const int)

-0:32      move second child to first child (temp mediump 4-component vector of int)

-0:32        'iv4' (temp mediump 4-component vector of int)

-0:32        textureGatherOffset (global mediump 4-component vector of int)

-0:32          'isamp2DA' (uniform highp isampler2DArray)

-0:32          Constant:

-0:32            0.100000

-0:32            0.100000

-0:32            0.100000

-0:32          Constant:

-0:32            1 (const int)

-0:32            1 (const int)

-0:32          Constant:

-0:32            3 (const int)

-0:33      move second child to first child (temp mediump 4-component vector of int)

-0:33        'iv4' (temp mediump 4-component vector of int)

-0:33        textureGatherOffset (global mediump 4-component vector of int)

-0:33          'isamp2DA' (uniform highp isampler2DArray)

-0:33          Constant:

-0:33            0.100000

-0:33            0.100000

-0:33            0.100000

-0:33          Constant:

-0:33            0 (const int)

-0:33            0 (const int)

-0:34      move second child to first child (temp mediump 4-component vector of int)

-0:34        'iv4' (temp mediump 4-component vector of int)

-0:34        textureGatherOffset (global mediump 4-component vector of int)

-0:34          'isamp2DA' (uniform highp isampler2DArray)

-0:34          Constant:

-0:34            0.100000

-0:34            0.100000

-0:34            0.100000

-0:34          Construct ivec2 (temp mediump 2-component vector of int)

-0:34            'i' (uniform mediump int)

-0:38  Function Definition: foo23( (global void)

-0:38    Function Parameters: 

-0:?     Sequence

-0:42      textureProjGradOffset (global mediump 4-component vector of uint)

-0:42        'usamp2d' (uniform highp usampler2D)

-0:42        'outp' (out mediump 4-component vector of float)

-0:42        Constant:

-0:42          0.000000

-0:42          0.000000

-0:42        Constant:

-0:42          0.000000

-0:42          0.000000

-0:42        Convert float to int (temp mediump 2-component vector of int)

-0:42          'c2D' (smooth in mediump 2-component vector of float)

-0:43      textureProjGradOffset (global mediump 4-component vector of uint)

-0:43        'usamp2d' (uniform highp usampler2D)

-0:43        'outp' (out mediump 4-component vector of float)

-0:43        Constant:

-0:43          0.000000

-0:43          0.000000

-0:43        Constant:

-0:43          0.000000

-0:43          0.000000

-0:43        Constant:

-0:43          3 (const int)

-0:43          4 (const int)

-0:44      textureProjGradOffset (global mediump 4-component vector of uint)

-0:44        'usamp2d' (uniform highp usampler2D)

-0:44        'outp' (out mediump 4-component vector of float)

-0:44        Constant:

-0:44          0.000000

-0:44          0.000000

-0:44        Constant:

-0:44          0.000000

-0:44          0.000000

-0:44        Constant:

-0:44          15 (const int)

-0:44          16 (const int)

-0:45      textureProjGradOffset (global mediump 4-component vector of uint)

-0:45        'usamp2d' (uniform highp usampler2D)

-0:45        'outp' (out mediump 4-component vector of float)

-0:45        Constant:

-0:45          0.000000

-0:45          0.000000

-0:45        Constant:

-0:45          0.000000

-0:45          0.000000

-0:45        Constant:

-0:45          -10 (const int)

-0:45          20 (const int)

-0:47      Test condition and select (temp void)

-0:47        Condition

-0:47        'gl_HelperInvocation' (in bool HelperInvocation)

-0:47        true case

-0:48        Pre-Increment (temp mediump 4-component vector of float)

-0:48          'outp' (out mediump 4-component vector of float)

-0:50      Sequence

-0:50        move second child to first child (temp mediump int)

-0:50          'sum' (temp mediump int)

-0:50          Constant:

-0:50            32 (const int)

-0:58      move second child to first child (temp bool)

-0:58        'b1' (temp bool)

-0:58        mix (global bool)

-0:58          'b2' (temp bool)

-0:58          'b3' (temp bool)

-0:58          'b' (temp bool)

-0:59      Sequence

-0:59        move second child to first child (temp mediump 3-component vector of uint)

-0:59          'um3' (temp mediump 3-component vector of uint)

-0:59          mix (global mediump 3-component vector of uint)

-0:59            Construct uvec3 (temp mediump 3-component vector of uint)

-0:59              Convert int to uint (temp mediump uint)

-0:59                'i' (uniform mediump int)

-0:59            Construct uvec3 (temp mediump 3-component vector of uint)

-0:59              Convert int to uint (temp mediump uint)

-0:59                'i' (uniform mediump int)

-0:59            Construct bvec3 (temp 3-component vector of bool)

-0:59              'b' (temp bool)

-0:60      Sequence

-0:60        move second child to first child (temp mediump 4-component vector of int)

-0:60          'im4' (temp mediump 4-component vector of int)

-0:60          mix (global mediump 4-component vector of int)

-0:60            Construct ivec4 (temp mediump 4-component vector of int)

-0:60              'i' (uniform mediump int)

-0:60            Construct ivec4 (temp mediump 4-component vector of int)

-0:60              'i' (uniform mediump int)

-0:60            Construct bvec4 (temp 4-component vector of bool)

-0:60              'b' (temp bool)

-0:98  Function Definition: foots( (global void)

-0:98    Function Parameters: 

-0:100    Sequence

-0:100      Sequence

-0:100        move second child to first child (temp highp 2-component vector of int)

-0:100          'v2' (temp highp 2-component vector of int)

-0:100          textureSize (global highp 2-component vector of int)

-0:100            's1' (layout(binding=3 ) uniform highp sampler2D)

-0:100            Constant:

-0:100              2 (const int)

-0:101      Sequence

-0:101        move second child to first child (temp highp 3-component vector of int)

-0:101          'v3' (temp highp 3-component vector of int)

-0:101          textureSize (global highp 3-component vector of int)

-0:101            'isamp2DA' (uniform highp isampler2DArray)

-0:101            Constant:

-0:101              3 (const int)

-0:102      move second child to first child (temp highp 2-component vector of int)

-0:102        'v2' (temp highp 2-component vector of int)

-0:102        textureSize (global highp 2-component vector of int)

-0:102          's2dms' (uniform highp sampler2DMS)

-0:103      move second child to first child (temp highp 2-component vector of int)

-0:103        'v2' (temp highp 2-component vector of int)

-0:103        imageQuerySize (global highp 2-component vector of int)

-0:103          'i2D' (layout(binding=2 ) writeonly uniform highp image2D)

-0:104      move second child to first child (temp highp 3-component vector of int)

-0:104        'v3' (temp highp 3-component vector of int)

-0:104        imageQuerySize (global highp 3-component vector of int)

-0:104          'i3D' (layout(binding=4 ) readonly uniform mediump image3D)

-0:105      move second child to first child (temp highp 2-component vector of int)

-0:105        'v2' (temp highp 2-component vector of int)

-0:105        imageQuerySize (global highp 2-component vector of int)

-0:105          'iCube' (layout(binding=5 ) uniform lowp imageCube)

-0:106      move second child to first child (temp highp 3-component vector of int)

-0:106        'v3' (temp highp 3-component vector of int)

-0:106        imageQuerySize (global highp 3-component vector of int)

-0:106          'i2DA' (layout(binding=6 ) uniform mediump image2DArray)

-0:107      move second child to first child (temp highp 2-component vector of int)

-0:107        'v2' (temp highp 2-component vector of int)

-0:107        imageQuerySize (global highp 2-component vector of int)

-0:107          'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)

-0:165  Function Definition: fooIO( (global void)

-0:165    Function Parameters: 

-0:167    Sequence

-0:167      Sequence

-0:167        move second child to first child (temp mediump 4-component vector of float)

-0:167          'v' (temp mediump 4-component vector of float)

-0:167          add (temp mediump 4-component vector of float)

-0:167            v: direct index for structure (in mediump 4-component vector of float)

-0:167              'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})

-0:167              Constant:

-0:167                1 (const int)

-0:167            vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)

-0:167              'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})

-0:167              Constant:

-0:167                1 (const uint)

-0:168      vector scale second child into first child (temp mediump 4-component vector of float)

-0:168        'v' (temp mediump 4-component vector of float)

-0:168        f: direct index for structure (in mediump float)

-0:168          direct index (temp block{in mediump float f})

-0:168            'arrayedInst' (in 4-element array of block{in mediump float f})

-0:168            Constant:

-0:168              2 (const int)

-0:168          Constant:

-0:168            0 (const int)

-0:169      vector scale second child into first child (temp mediump 4-component vector of float)

-0:169        'v' (temp mediump 4-component vector of float)

-0:169        f: direct index for structure (in mediump float)

-0:169          indirect index (temp block{in mediump float f})

-0:169            'arrayedInst' (in 4-element array of block{in mediump float f})

-0:169            'i' (uniform mediump int)

-0:169          Constant:

-0:169            0 (const int)

-0:179  Function Definition: foo_IO( (global void)

-0:179    Function Parameters: 

-0:181    Sequence

-0:181      move second child to first child (temp highp float)

-0:181        'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:181        Constant:

-0:181          0.200000

-0:182      'gl_Layer' (flat in highp int Layer)

-0:183      'gl_PrimitiveID' (flat in highp int PrimitiveID)

-0:184      Sequence

-0:184        move second child to first child (temp bool)

-0:184          'f' (temp bool)

-0:184          'gl_FrontFacing' (gl_FrontFacing bool Face)

-0:191  Function Definition: foo_GS( (global void)

-0:191    Function Parameters: 

-0:193    Sequence

-0:193      Sequence

-0:193        move second child to first child (temp highp int)

-0:193          'l' (temp highp int)

-0:193          'gl_Layer' (flat in highp int Layer)

-0:194      Sequence

-0:194        move second child to first child (temp highp int)

-0:194          'p' (temp highp int)

-0:194          'gl_PrimitiveID' (flat in highp int PrimitiveID)

-0:207  Function Definition: pfooBad( (global void)

-0:207    Function Parameters: 

-0:?     Sequence

-0:210      move second child to first child (temp mediump 2-component vector of float)

-0:210        'h' (temp mediump 2-component vector of float)

-0:210        fma (global mediump 2-component vector of float)

-0:210          'inf' (smooth in mediump 2-component vector of float)

-0:210          'ing' (smooth in mediump 2-component vector of float)

-0:210          'h' (temp mediump 2-component vector of float)

-0:211      textureGatherOffset (global highp 4-component vector of float)

-0:211        direct index (temp highp sampler2D)

-0:211          'sArray' (uniform 4-element array of highp sampler2D)

-0:211          Constant:

-0:211            0 (const int)

-0:211        Constant:

-0:211          0.100000

-0:211          0.100000

-0:211        Convert float to int (temp highp 2-component vector of int)

-0:211          'inf' (smooth in mediump 2-component vector of float)

-0:212      textureGatherOffsets (global highp 4-component vector of float)

-0:212        direct index (temp highp sampler2D)

-0:212          'sArray' (uniform 4-element array of highp sampler2D)

-0:212          Constant:

-0:212            0 (const int)

-0:212        Constant:

-0:212          0.100000

-0:212          0.100000

-0:212        Constant:

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:212          0 (const int)

-0:217  Function Definition: pfoo( (global void)

-0:217    Function Parameters: 

-0:?     Sequence

-0:220      move second child to first child (temp mediump 2-component vector of float)

-0:220        'h' (temp mediump 2-component vector of float)

-0:220        fma (global mediump 2-component vector of float)

-0:220          'inf' (smooth in mediump 2-component vector of float)

-0:220          'ing' (smooth in mediump 2-component vector of float)

-0:220          'h' (temp mediump 2-component vector of float)

-0:221      textureGatherOffset (global highp 4-component vector of float)

-0:221        direct index (temp highp sampler2D)

-0:221          'sArray' (uniform 4-element array of highp sampler2D)

-0:221          Constant:

-0:221            0 (const int)

-0:221        Constant:

-0:221          0.100000

-0:221          0.100000

-0:221        Convert float to int (temp highp 2-component vector of int)

-0:221          'inf' (smooth in mediump 2-component vector of float)

-0:222      textureGatherOffsets (global highp 4-component vector of float)

-0:222        direct index (temp highp sampler2D)

-0:222          'sArray' (uniform 4-element array of highp sampler2D)

-0:222          Constant:

-0:222            0 (const int)

-0:222        Constant:

-0:222          0.100000

-0:222          0.100000

-0:222        Constant:

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:222          0 (const int)

-0:223      textureGatherOffsets (global highp 4-component vector of float)

-0:223        direct index (temp highp sampler2D)

-0:223          'sArray' (uniform 4-element array of highp sampler2D)

-0:223          Constant:

-0:223            0 (const int)

-0:223        Constant:

-0:223          0.100000

-0:223          0.100000

-0:223        'offsets' (uniform 4-element array of mediump 2-component vector of int)

-0:248  Function Definition: CAT( (global void)

-0:248    Function Parameters: 

-0:250    Sequence

-0:250      Sequence

-0:250        move second child to first child (temp highp 4-component vector of float)

-0:250          'b4' (temp highp 4-component vector of float)

-0:250          texture (global highp 4-component vector of float)

-0:250            'CA4' (uniform highp samplerCubeArray)

-0:250            Constant:

-0:250              0.500000

-0:250              0.500000

-0:250              0.500000

-0:250              0.500000

-0:250            Constant:

-0:250              0.240000

-0:251      Sequence

-0:251        move second child to first child (temp highp 4-component vector of int)

-0:251          'b6' (temp highp 4-component vector of int)

-0:251          texture (global mediump 4-component vector of int)

-0:251            'CA6' (uniform highp isamplerCubeArray)

-0:251            Constant:

-0:251              0.500000

-0:251              0.500000

-0:251              0.500000

-0:251              0.500000

-0:251            Constant:

-0:251              0.260000

-0:252      Sequence

-0:252        move second child to first child (temp highp 4-component vector of uint)

-0:252          'b7' (temp highp 4-component vector of uint)

-0:252          texture (global mediump 4-component vector of uint)

-0:252            'CA7' (uniform highp usamplerCubeArray)

-0:252            Constant:

-0:252              0.500000

-0:252              0.500000

-0:252              0.500000

-0:252              0.500000

-0:252            Constant:

-0:252              0.270000

-0:255  Function Definition: badSample( (global void)

-0:255    Function Parameters: 

-0:257    Sequence

-0:257      Sequence

-0:257        move second child to first child (temp lowp int)

-0:257          'a1' (temp lowp int)

-0:257          'gl_SampleID' (flat in lowp int SampleId)

-0:258      Sequence

-0:258        move second child to first child (temp mediump 2-component vector of float)

-0:258          'a2' (temp mediump 2-component vector of float)

-0:258          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)

-0:259      Sequence

-0:259        move second child to first child (temp highp int)

-0:259          'a3' (temp highp int)

-0:259          direct index (flat temp highp int SampleMaskIn)

-0:259            'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)

-0:259            Constant:

-0:259              0 (const int)

-0:260      move second child to first child (temp highp int)

-0:260        direct index (temp highp int SampleMaskIn)

-0:260          'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)

-0:260          Constant:

-0:260            0 (const int)

-0:260        'a3' (temp highp int)

-0:261      Sequence

-0:261        move second child to first child (temp mediump int)

-0:261          'n' (temp mediump int)

-0:261          'gl_NumSamples' (uniform lowp int)

-0:268  Function Definition: goodSample( (global void)

-0:268    Function Parameters: 

-0:270    Sequence

-0:270      Sequence

-0:270        move second child to first child (temp lowp int)

-0:270          'a1' (temp lowp int)

-0:270          'gl_SampleID' (flat in lowp int SampleId)

-0:271      Sequence

-0:271        move second child to first child (temp mediump 2-component vector of float)

-0:271          'a2' (temp mediump 2-component vector of float)

-0:271          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)

-0:272      Sequence

-0:272        move second child to first child (temp highp int)

-0:272          'a3' (temp highp int)

-0:272          direct index (flat temp highp int SampleMaskIn)

-0:272            'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)

-0:272            Constant:

-0:272              0 (const int)

-0:273      move second child to first child (temp highp int)

-0:273        direct index (temp highp int SampleMaskIn)

-0:273          'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)

-0:273          Constant:

-0:273            0 (const int)

-0:273        'a3' (temp highp int)

-0:274      Sequence

-0:274        move second child to first child (temp mediump int)

-0:274          'n1' (temp mediump int)

-0:274          Constant:

-0:274            4 (const int)

-0:275      Sequence

-0:275        move second child to first child (temp mediump int)

-0:275          'n2' (temp mediump int)

-0:275          'gl_NumSamples' (uniform lowp int)

-0:283  Function Definition: badImageAtom( (global void)

-0:283    Function Parameters: 

-0:?     Sequence

-0:289      imageAtomicAdd (global mediump int)

-0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:289        'P' (uniform mediump 2-component vector of int)

-0:289        'dati' (temp mediump int)

-0:290      imageAtomicAdd (global mediump uint)

-0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:290        'P' (uniform mediump 2-component vector of int)

-0:290        'datu' (temp mediump uint)

-0:291      imageAtomicMin (global mediump int)

-0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:291        'P' (uniform mediump 2-component vector of int)

-0:291        'dati' (temp mediump int)

-0:292      imageAtomicMin (global mediump uint)

-0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:292        'P' (uniform mediump 2-component vector of int)

-0:292        'datu' (temp mediump uint)

-0:293      imageAtomicMax (global mediump int)

-0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:293        'P' (uniform mediump 2-component vector of int)

-0:293        'dati' (temp mediump int)

-0:294      imageAtomicMax (global mediump uint)

-0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:294        'P' (uniform mediump 2-component vector of int)

-0:294        'datu' (temp mediump uint)

-0:295      imageAtomicAnd (global mediump int)

-0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:295        'P' (uniform mediump 2-component vector of int)

-0:295        'dati' (temp mediump int)

-0:296      imageAtomicAnd (global mediump uint)

-0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:296        'P' (uniform mediump 2-component vector of int)

-0:296        'datu' (temp mediump uint)

-0:297      imageAtomicOr (global mediump int)

-0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:297        'P' (uniform mediump 2-component vector of int)

-0:297        'dati' (temp mediump int)

-0:298      imageAtomicOr (global mediump uint)

-0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:298        'P' (uniform mediump 2-component vector of int)

-0:298        'datu' (temp mediump uint)

-0:299      imageAtomicXor (global mediump int)

-0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:299        'P' (uniform mediump 2-component vector of int)

-0:299        'dati' (temp mediump int)

-0:300      imageAtomicXor (global mediump uint)

-0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:300        'P' (uniform mediump 2-component vector of int)

-0:300        'datu' (temp mediump uint)

-0:301      imageAtomicExchange (global mediump int)

-0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:301        'P' (uniform mediump 2-component vector of int)

-0:301        'dati' (temp mediump int)

-0:302      imageAtomicExchange (global mediump uint)

-0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:302        'P' (uniform mediump 2-component vector of int)

-0:302        'datu' (temp mediump uint)

-0:303      imageAtomicExchange (global highp float)

-0:303        'im2Df' (layout(r32f ) uniform highp image2D)

-0:303        'P' (uniform mediump 2-component vector of int)

-0:303        'datf' (temp mediump float)

-0:304      imageAtomicCompSwap (global mediump int)

-0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:304        'P' (uniform mediump 2-component vector of int)

-0:304        Constant:

-0:304          3 (const int)

-0:304        'dati' (temp mediump int)

-0:305      imageAtomicCompSwap (global mediump uint)

-0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:305        'P' (uniform mediump 2-component vector of int)

-0:305        Constant:

-0:305          5 (const uint)

-0:305        'datu' (temp mediump uint)

-0:316  Function Definition: goodImageAtom( (global void)

-0:316    Function Parameters: 

-0:?     Sequence

-0:322      imageAtomicAdd (global mediump int)

-0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:322        'P' (uniform mediump 2-component vector of int)

-0:322        'dati' (temp mediump int)

-0:323      imageAtomicAdd (global mediump uint)

-0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:323        'P' (uniform mediump 2-component vector of int)

-0:323        'datu' (temp mediump uint)

-0:324      imageAtomicMin (global mediump int)

-0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:324        'P' (uniform mediump 2-component vector of int)

-0:324        'dati' (temp mediump int)

-0:325      imageAtomicMin (global mediump uint)

-0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:325        'P' (uniform mediump 2-component vector of int)

-0:325        'datu' (temp mediump uint)

-0:326      imageAtomicMax (global mediump int)

-0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:326        'P' (uniform mediump 2-component vector of int)

-0:326        'dati' (temp mediump int)

-0:327      imageAtomicMax (global mediump uint)

-0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:327        'P' (uniform mediump 2-component vector of int)

-0:327        'datu' (temp mediump uint)

-0:328      imageAtomicAnd (global mediump int)

-0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:328        'P' (uniform mediump 2-component vector of int)

-0:328        'dati' (temp mediump int)

-0:329      imageAtomicAnd (global mediump uint)

-0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:329        'P' (uniform mediump 2-component vector of int)

-0:329        'datu' (temp mediump uint)

-0:330      imageAtomicOr (global mediump int)

-0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:330        'P' (uniform mediump 2-component vector of int)

-0:330        'dati' (temp mediump int)

-0:331      imageAtomicOr (global mediump uint)

-0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:331        'P' (uniform mediump 2-component vector of int)

-0:331        'datu' (temp mediump uint)

-0:332      imageAtomicXor (global mediump int)

-0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:332        'P' (uniform mediump 2-component vector of int)

-0:332        'dati' (temp mediump int)

-0:333      imageAtomicXor (global mediump uint)

-0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:333        'P' (uniform mediump 2-component vector of int)

-0:333        'datu' (temp mediump uint)

-0:334      imageAtomicExchange (global mediump int)

-0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:334        'P' (uniform mediump 2-component vector of int)

-0:334        'dati' (temp mediump int)

-0:335      imageAtomicExchange (global mediump uint)

-0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:335        'P' (uniform mediump 2-component vector of int)

-0:335        'datu' (temp mediump uint)

-0:336      imageAtomicExchange (global highp float)

-0:336        'im2Df' (layout(r32f ) uniform highp image2D)

-0:336        'P' (uniform mediump 2-component vector of int)

-0:336        'datf' (temp mediump float)

-0:337      imageAtomicCompSwap (global mediump int)

-0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:337        'P' (uniform mediump 2-component vector of int)

-0:337        Constant:

-0:337          3 (const int)

-0:337        'dati' (temp mediump int)

-0:338      imageAtomicCompSwap (global mediump uint)

-0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:338        'P' (uniform mediump 2-component vector of int)

-0:338        Constant:

-0:338          5 (const uint)

-0:338        'datu' (temp mediump uint)

-0:340      imageAtomicMax (global mediump int)

-0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)

-0:340        'P' (uniform mediump 2-component vector of int)

-0:340        'dati' (temp mediump int)

-0:341      imageAtomicMax (global mediump uint)

-0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)

-0:341        'P' (uniform mediump 2-component vector of int)

-0:341        'datu' (temp mediump uint)

-0:342      imageAtomicExchange (global highp float)

-0:342        'badIm2Df' (layout(rgba32f ) uniform highp image2D)

-0:342        'P' (uniform mediump 2-component vector of int)

-0:342        'datf' (temp mediump float)

-0:353  Function Definition: badInterp( (global void)

-0:353    Function Parameters: 

-0:355    Sequence

-0:355      interpolateAtCentroid (global mediump 2-component vector of float)

-0:355        'colorfc' (centroid flat in mediump 2-component vector of float)

-0:356      interpolateAtSample (global mediump 2-component vector of float)

-0:356        'colorfc' (centroid flat in mediump 2-component vector of float)

-0:356        Constant:

-0:356          1 (const int)

-0:357      interpolateAtOffset (global mediump 2-component vector of float)

-0:357        'colorfc' (centroid flat in mediump 2-component vector of float)

-0:357        Constant:

-0:357          0.200000

-0:357          0.200000

-0:369  Function Definition: interp( (global void)

-0:369    Function Parameters: 

-0:?     Sequence

-0:376      move second child to first child (temp mediump 2-component vector of float)

-0:376        'res2' (temp mediump 2-component vector of float)

-0:376        interpolateAtCentroid (global mediump 2-component vector of float)

-0:376          'colorfc' (centroid flat in mediump 2-component vector of float)

-0:377      move second child to first child (temp mediump 4-component vector of float)

-0:377        'res4' (temp mediump 4-component vector of float)

-0:377        interpolateAtCentroid (global mediump 4-component vector of float)

-0:377          'colorSampIn' (smooth sample in mediump 4-component vector of float)

-0:378      move second child to first child (temp mediump 4-component vector of float)

-0:378        'res4' (temp mediump 4-component vector of float)

-0:378        interpolateAtCentroid (global mediump 4-component vector of float)

-0:378          'colorfsi' (flat sample in mediump 4-component vector of float)

-0:379      move second child to first child (temp mediump float)

-0:379        'res' (temp mediump float)

-0:379        interpolateAtCentroid (global mediump float)

-0:379          'scalarIn' (smooth in mediump float)

-0:380      'res3' (temp mediump 3-component vector of float)

-0:381      move second child to first child (temp mediump 3-component vector of float)

-0:381        'res3' (temp mediump 3-component vector of float)

-0:381        interpolateAtCentroid (global mediump 3-component vector of float)

-0:381          direct index (smooth sample temp mediump 3-component vector of float)

-0:381            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:381            Constant:

-0:381              2 (const int)

-0:382      move second child to first child (temp mediump 2-component vector of float)

-0:382        'res2' (temp mediump 2-component vector of float)

-0:382        interpolateAtCentroid (global mediump 2-component vector of float)

-0:382          vector swizzle (temp mediump 2-component vector of float)

-0:382            direct index (smooth sample temp mediump 3-component vector of float)

-0:382              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:382              Constant:

-0:382                2 (const int)

-0:382            Sequence

-0:382              Constant:

-0:382                0 (const int)

-0:382              Constant:

-0:382                1 (const int)

-0:384      'res3' (temp mediump 3-component vector of float)

-0:385      move second child to first child (temp mediump 3-component vector of float)

-0:385        'res3' (temp mediump 3-component vector of float)

-0:385        interpolateAtSample (global mediump 3-component vector of float)

-0:385          indirect index (smooth sample temp mediump 3-component vector of float)

-0:385            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:385            'i' (uniform mediump int)

-0:385          Constant:

-0:385            0 (const int)

-0:386      move second child to first child (temp mediump 2-component vector of float)

-0:386        'res2' (temp mediump 2-component vector of float)

-0:386        interpolateAtSample (global mediump 2-component vector of float)

-0:386          vector swizzle (temp mediump 2-component vector of float)

-0:386            direct index (smooth sample temp mediump 3-component vector of float)

-0:386              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:386              Constant:

-0:386                2 (const int)

-0:386            Sequence

-0:386              Constant:

-0:386                0 (const int)

-0:386              Constant:

-0:386                1 (const int)

-0:386          Constant:

-0:386            2 (const int)

-0:387      move second child to first child (temp mediump float)

-0:387        'res' (temp mediump float)

-0:387        interpolateAtSample (global mediump float)

-0:387          'scalarIn' (smooth in mediump float)

-0:387          Constant:

-0:387            1 (const int)

-0:389      'res3' (temp mediump 3-component vector of float)

-0:390      move second child to first child (temp mediump 3-component vector of float)

-0:390        'res3' (temp mediump 3-component vector of float)

-0:390        interpolateAtOffset (global mediump 3-component vector of float)

-0:390          direct index (smooth sample temp mediump 3-component vector of float)

-0:390            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:390            Constant:

-0:390              2 (const int)

-0:390          Constant:

-0:390            0.200000

-0:390            0.200000

-0:391      move second child to first child (temp mediump 2-component vector of float)

-0:391        'res2' (temp mediump 2-component vector of float)

-0:391        interpolateAtOffset (global mediump 2-component vector of float)

-0:391          vector swizzle (temp mediump 2-component vector of float)

-0:391            direct index (smooth sample temp mediump 3-component vector of float)

-0:391              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:391              Constant:

-0:391                2 (const int)

-0:391            Sequence

-0:391              Constant:

-0:391                0 (const int)

-0:391              Constant:

-0:391                1 (const int)

-0:391          Constant:

-0:391            0.200000

-0:391            0.200000

-0:392      move second child to first child (temp mediump float)

-0:392        'res' (temp mediump float)

-0:392        interpolateAtOffset (global mediump float)

-0:392          add (temp mediump float)

-0:392            'scalarIn' (smooth in mediump float)

-0:392            'scalarIn' (smooth in mediump float)

-0:392          Constant:

-0:392            0.200000

-0:392            0.200000

-0:393      move second child to first child (temp mediump float)

-0:393        'res' (temp mediump float)

-0:393        interpolateAtOffset (global mediump float)

-0:393          'scalarIn' (smooth in mediump float)

-0:393          Constant:

-0:393            0.200000

-0:393            0.200000

-0:396      move second child to first child (temp mediump float)

-0:396        'res' (temp mediump float)

-0:396        interpolateAtCentroid (global mediump float)

-0:396          'f' (temp mediump float)

-0:397      move second child to first child (temp mediump 4-component vector of float)

-0:397        'res4' (temp mediump 4-component vector of float)

-0:397        interpolateAtSample (global mediump 4-component vector of float)

-0:397          'outp' (out mediump 4-component vector of float)

-0:397          Constant:

-0:397            0 (const int)

-0:427  Function Definition: blendFoo( (temp void)

-0:427    Function Parameters: 

-0:428  Function Definition: blendFoo(vf3; (global void)

-0:428    Function Parameters: 

-0:428      'v' (in mediump 3-component vector of float)

-0:?   Linker Objects

-0:?     'gl_FragCoord' (smooth in mediump 4-component vector of float)

-0:?     'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)

-0:?     'yi' (layout(location=2 ) smooth in mediump 4X4 matrix of float)

-0:?     'arrayedSampler' (uniform 5-element array of highp sampler2D)

-0:?     'usamp2d' (uniform highp usampler2D)

-0:?     'samp2dr' (uniform mediump usampler2DRect)

-0:?     'isamp2DA' (uniform highp isampler2DArray)

-0:?     'c2D' (smooth in mediump 2-component vector of float)

-0:?     'i' (uniform mediump int)

-0:?     'outp' (out mediump 4-component vector of float)

-0:?     's1' (layout(binding=3 ) uniform highp sampler2D)

-0:?     's2' (layout(binding=3 ) uniform highp sampler2D)

-0:?     'i2D' (layout(binding=2 ) writeonly uniform highp image2D)

-0:?     'i3D' (layout(binding=4 ) readonly uniform mediump image3D)

-0:?     'iCube' (layout(binding=5 ) uniform lowp imageCube)

-0:?     'i2DA' (layout(binding=6 ) uniform mediump image2DArray)

-0:?     'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)

-0:?     'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})

-0:?     'centroidIn' (centroid smooth in mediump 4-component vector of float)

-0:?     'bigl' (uniform mediump 4-component vector of float)

-0:?     'bigout1' (layout(location=40 ) out mediump 4-component vector of float)

-0:?     'bigout2' (layout(location=40 ) out mediump 4-component vector of float)

-0:?     'neg' (out mediump 4-component vector of float)

-0:?     'b430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer mediump int i})

-0:?     'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})

-0:?     'smoothIn' (smooth in mediump 4-component vector of float)

-0:?     'flatIn' (flat in mediump int)

-0:?     's2dms' (uniform highp sampler2DMS)

-0:?     'bout' (out bool)

-0:?     'imageOut' (out highp image2D)

-0:?     'mout' (out mediump 2X3 matrix of float)

-0:?     'inb' (smooth in bool)

-0:?     'ino' (smooth in highp sampler2D)

-0:?     'ina' (smooth in 4-element array of mediump float)

-0:?     'inaa' (smooth in 4-element array of 2-element array of mediump float)

-0:?     'ins' (smooth in structure{global mediump float f})

-0:?     'inasa' (smooth in 4-element array of structure{global mediump float f})

-0:?     'insa' (smooth in 4-element array of structure{global mediump float f})

-0:?     'inSA' (smooth in structure{global 4-element array of mediump float f})

-0:?     'inSS' (smooth in structure{global mediump float f, global structure{global mediump float f} s})

-0:?     'outbinst' (out block{out mediump int a})

-0:?     'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})

-0:?     'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})

-0:?     'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)

-0:?     'arrayedInst' (in 4-element array of block{in mediump float f})

-0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)

-0:?     'inf' (smooth in mediump 2-component vector of float)

-0:?     'ing' (smooth in mediump 2-component vector of float)

-0:?     'offsets' (uniform 4-element array of mediump 2-component vector of int)

-0:?     'sArray' (uniform 4-element array of highp sampler2D)

-0:?     'sIndex' (uniform mediump int)

-0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)

-0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump int i})

-0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer mediump int i})

-0:?     'iArray' (writeonly uniform 5-element array of highp image2D)

-0:?     'constOffsets' (const 4-element array of mediump 2-component vector of int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?     'CA1' (writeonly uniform highp imageCubeArray)

-0:?     'CA2' (writeonly uniform highp iimageCubeArray)

-0:?     'CA3' (writeonly uniform highp uimageCubeArray)

-0:?     'CA4' (uniform highp samplerCubeArray)

-0:?     'CA5' (uniform highp samplerCubeArrayShadow)

-0:?     'CA6' (uniform highp isamplerCubeArray)

-0:?     'CA7' (uniform highp usamplerCubeArray)

-0:?     'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)

-0:?     'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)

-0:?     'im2Df' (layout(r32f ) uniform highp image2D)

-0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:?     'P' (uniform mediump 2-component vector of int)

-0:?     'badIm2Df' (layout(rgba32f ) uniform highp image2D)

-0:?     'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)

-0:?     'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)

-0:?     'colorSampInBad' (smooth sample in mediump 4-component vector of float)

-0:?     'colorCentroidBad' (centroid out mediump 4-component vector of float)

-0:?     'colorBadFlat' (flat out mediump 4-component vector of float)

-0:?     'colorBadSmooth' (smooth out mediump 4-component vector of float)

-0:?     'colorBadNo' (noperspective out mediump 4-component vector of float)

-0:?     'colorfc' (centroid flat in mediump 2-component vector of float)

-0:?     'scalarIn' (smooth in mediump float)

-0:?     'colorSampIn' (smooth sample in mediump 4-component vector of float)

-0:?     'colorSampleBad' (sample out mediump 4-component vector of float)

-0:?     'colorfsi' (flat sample in mediump 4-component vector of float)

-0:?     'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)

-0:?     'badout' (out mediump 4-component vector of float)

-0:?     'outAA' (out 2-element array of 2-element array of mediump 4-component vector of float)

-

+310.frag
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:2: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es
+ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es
+ERROR: 0:8: 'gl_FragCoord' : identifiers starting with "gl_" are reserved 
+ERROR: 0:11: 'location' : overlapping use of location 2
+ERROR: 0:15: 'usampler2DRect' : Reserved word. 
+ERROR: 0:15: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:23: 'variable indexing sampler array' : not supported for this version or the enabled extensions 
+ERROR: 0:27: 'textureGatherOffsets' : no matching overloaded function found 
+ERROR: 0:27: '=' :  cannot convert from 'const float' to 'temp mediump 4-component vector of uint'
+ERROR: 0:30: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
+ERROR: 0:31: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
+ERROR: 0:34: 'non-constant offset argument' : not supported for this version or the enabled extensions 
+ERROR: 0:42: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:66: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:67: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:68: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:69: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type 
+ERROR: 0:77: 'location' : location is too large 
+ERROR: 0:81: 'location' : too large for fragment output 
+ERROR: 0:82: 'location' : too large for fragment output 
+ERROR: 0:82: 'location' : overlapping use of location 40
+ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es
+ERROR: 0:83: 'layout-id value' : cannot be negative 
+ERROR: 0:110: 'out' : cannot be bool 
+ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut
+ERROR: 0:111: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:112: 'out' : cannot be a matrix 
+ERROR: 0:114: 'in' : cannot be bool 
+ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino
+ERROR: 0:117: 'fragment-shader array-of-array input' : not supported with this profile: es
+ERROR: 0:120: 'fragment-shader array-of-struct input' : not supported with this profile: es
+ERROR: 0:121: 'fragment-shader array-of-struct input' : not supported with this profile: es
+ERROR: 0:123: 'fragment-shader struct input containing an array' : not supported with this profile: es
+ERROR: 0:125: 'fragment-shader struct input containing structure' : not supported with this profile: es
+ERROR: 0:133: 'output block' : not supported in this stage: fragment
+ERROR: 0:138: '' : cannot nest a structure definition inside a structure or block 
+ERROR: 0:146: 'location' : overlapping use of location 13
+ERROR: 0:148: 'inbname2' : Cannot reuse block name within the same interface: in
+ERROR: 0:153: 'badmember' : nameless block contains a member that already has a name at global scope 
+ERROR: 0:157: 'inbname' : redefinition 
+ERROR: 0:159: 'vAnon' : redefinition 
+ERROR: 0:173: 'origin_upper_left' : not supported with this profile: es
+ERROR: 0:173: 'pixel_center_integer' : not supported with this profile: es
+ERROR: 0:173: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:177: 'depth layout qualifier' : not supported with this profile: es
+ERROR: 0:181: 'assign' :  l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests)
+ERROR: 0:182: 'gl_Layer' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_shader
+GL_OES_geometry_shader
+ERROR: 0:183: 'gl_PrimitiveID' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_shader
+GL_OES_geometry_shader
+ERROR: 0:209: 'precise' : Reserved word. 
+ERROR: 0:210: 'fma' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:211: 'non-constant offset argument' : not supported for this version or the enabled extensions 
+ERROR: 0:212: 'textureGatherOffsets' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:223: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:257: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:258: 'gl_SamplePosition' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:259: 'gl_SampleMaskIn' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:260: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:261: 'gl_NumSamples' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:289: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:290: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:291: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:292: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:293: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:294: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:295: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:296: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:297: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:298: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:299: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:300: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:301: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:302: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:303: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:304: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:305: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic
+ERROR: 0:312: 'rgba32f' : format requires readonly or writeonly memory qualifier 
+ERROR: 0:313: 'rgba8ui' : format requires readonly or writeonly memory qualifier 
+ERROR: 0:314: 'rgba16i' : format requires readonly or writeonly memory qualifier 
+ERROR: 0:340: 'imageAtomicMax' : only supported on image with format r32i or r32ui 
+ERROR: 0:341: 'imageAtomicMax' : only supported on image with format r32i or r32ui 
+ERROR: 0:342: 'imageAtomicExchange' : only supported on image with format r32f 
+ERROR: 0:345: 'sample' : Reserved word. 
+ERROR: 0:346: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
+ERROR: 0:347: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output 
+ERROR: 0:348: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output 
+ERROR: 0:349: 'noperspective' : Reserved word. 
+ERROR: 0:349: 'noperspective' : not supported with this profile: es
+ERROR: 0:349: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output 
+ERROR: 0:355: 'interpolateAtCentroid' : required extension not requested: GL_OES_shader_multisample_interpolation
+ERROR: 0:356: 'interpolateAtSample' : required extension not requested: GL_OES_shader_multisample_interpolation
+ERROR: 0:357: 'interpolateAtOffset' : required extension not requested: GL_OES_shader_multisample_interpolation
+ERROR: 0:365: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
+ERROR: 0:380: 'interpolateAtCentroid' : no matching overloaded function found 
+ERROR: 0:380: 'assign' :  cannot convert from 'const float' to 'temp mediump 3-component vector of float'
+ERROR: 0:382: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:384: 'interpolateAtSample' : no matching overloaded function found 
+ERROR: 0:384: 'assign' :  cannot convert from 'const float' to 'temp mediump 3-component vector of float'
+ERROR: 0:386: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:389: 'interpolateAtOffset' : no matching overloaded function found 
+ERROR: 0:389: 'assign' :  cannot convert from 'const float' to 'temp mediump 3-component vector of float'
+ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:400: 'blend equation' : required extension not requested: GL_KHR_blend_equation_advanced
+ERROR: 0:423: 'blend equation' : can only apply to 'out' 
+ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier 
+ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier 
+ERROR: 0:426: 'blend equation' : can only apply to a standalone qualifier 
+ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier 
+ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier 
+ERROR: 0:429: 'blend_support' : unknown blend equation 
+ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es
+ERROR: 121 compilation errors.  No code generated.
+
+
+Shader version: 310
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_texture_cube_map_array
+Requested GL_KHR_blend_equation_advanced
+Requested GL_OES_geometry_shader
+Requested GL_OES_gpu_shader5
+Requested GL_OES_sample_variables
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_any
+using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
+ERROR: node is still EOpNull!
+0:21  Function Definition: main( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp highp 4-component vector of float)
+0:23          'v' (temp mediump 4-component vector of float)
+0:23          texture (global highp 4-component vector of float)
+0:23            indirect index (temp highp sampler2D)
+0:23              'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:23              'i' (uniform mediump int)
+0:23            'c2D' (smooth in mediump 2-component vector of float)
+0:28      Sequence
+0:28        move second child to first child (temp highp 4-component vector of float)
+0:28          'v4' (temp mediump 4-component vector of float)
+0:28          textureGather (global highp 4-component vector of float)
+0:28            direct index (temp highp sampler2D)
+0:28              'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:28              Constant:
+0:28                0 (const int)
+0:28            'c2D' (smooth in mediump 2-component vector of float)
+0:29      Sequence
+0:29        move second child to first child (temp mediump 4-component vector of int)
+0:29          'iv4' (temp mediump 4-component vector of int)
+0:29          textureGatherOffset (global mediump 4-component vector of int)
+0:29            'isamp2DA' (uniform highp isampler2DArray)
+0:29            Constant:
+0:29              0.100000
+0:29              0.100000
+0:29              0.100000
+0:29            Constant:
+0:29              1 (const int)
+0:29              1 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:30      move second child to first child (temp mediump 4-component vector of int)
+0:30        'iv4' (temp mediump 4-component vector of int)
+0:30        textureGatherOffset (global mediump 4-component vector of int)
+0:30          'isamp2DA' (uniform highp isampler2DArray)
+0:30          Constant:
+0:30            0.100000
+0:30            0.100000
+0:30            0.100000
+0:30          Constant:
+0:30            1 (const int)
+0:30            1 (const int)
+0:30          'i' (uniform mediump int)
+0:31      move second child to first child (temp mediump 4-component vector of int)
+0:31        'iv4' (temp mediump 4-component vector of int)
+0:31        textureGatherOffset (global mediump 4-component vector of int)
+0:31          'isamp2DA' (uniform highp isampler2DArray)
+0:31          Constant:
+0:31            0.100000
+0:31            0.100000
+0:31            0.100000
+0:31          Constant:
+0:31            1 (const int)
+0:31            1 (const int)
+0:31          Constant:
+0:31            4 (const int)
+0:32      move second child to first child (temp mediump 4-component vector of int)
+0:32        'iv4' (temp mediump 4-component vector of int)
+0:32        textureGatherOffset (global mediump 4-component vector of int)
+0:32          'isamp2DA' (uniform highp isampler2DArray)
+0:32          Constant:
+0:32            0.100000
+0:32            0.100000
+0:32            0.100000
+0:32          Constant:
+0:32            1 (const int)
+0:32            1 (const int)
+0:32          Constant:
+0:32            3 (const int)
+0:33      move second child to first child (temp mediump 4-component vector of int)
+0:33        'iv4' (temp mediump 4-component vector of int)
+0:33        textureGatherOffset (global mediump 4-component vector of int)
+0:33          'isamp2DA' (uniform highp isampler2DArray)
+0:33          Constant:
+0:33            0.100000
+0:33            0.100000
+0:33            0.100000
+0:33          Constant:
+0:33            0 (const int)
+0:33            0 (const int)
+0:34      move second child to first child (temp mediump 4-component vector of int)
+0:34        'iv4' (temp mediump 4-component vector of int)
+0:34        textureGatherOffset (global mediump 4-component vector of int)
+0:34          'isamp2DA' (uniform highp isampler2DArray)
+0:34          Constant:
+0:34            0.100000
+0:34            0.100000
+0:34            0.100000
+0:34          Construct ivec2 (temp mediump 2-component vector of int)
+0:34            'i' (uniform mediump int)
+0:38  Function Definition: foo23( (global void)
+0:38    Function Parameters: 
+0:?     Sequence
+0:42      textureProjGradOffset (global mediump 4-component vector of uint)
+0:42        'usamp2d' (uniform highp usampler2D)
+0:42        'outp' (out mediump 4-component vector of float)
+0:42        Constant:
+0:42          0.000000
+0:42          0.000000
+0:42        Constant:
+0:42          0.000000
+0:42          0.000000
+0:42        Convert float to int (temp mediump 2-component vector of int)
+0:42          'c2D' (smooth in mediump 2-component vector of float)
+0:43      textureProjGradOffset (global mediump 4-component vector of uint)
+0:43        'usamp2d' (uniform highp usampler2D)
+0:43        'outp' (out mediump 4-component vector of float)
+0:43        Constant:
+0:43          0.000000
+0:43          0.000000
+0:43        Constant:
+0:43          0.000000
+0:43          0.000000
+0:43        Constant:
+0:43          3 (const int)
+0:43          4 (const int)
+0:44      textureProjGradOffset (global mediump 4-component vector of uint)
+0:44        'usamp2d' (uniform highp usampler2D)
+0:44        'outp' (out mediump 4-component vector of float)
+0:44        Constant:
+0:44          0.000000
+0:44          0.000000
+0:44        Constant:
+0:44          0.000000
+0:44          0.000000
+0:44        Constant:
+0:44          15 (const int)
+0:44          16 (const int)
+0:45      textureProjGradOffset (global mediump 4-component vector of uint)
+0:45        'usamp2d' (uniform highp usampler2D)
+0:45        'outp' (out mediump 4-component vector of float)
+0:45        Constant:
+0:45          0.000000
+0:45          0.000000
+0:45        Constant:
+0:45          0.000000
+0:45          0.000000
+0:45        Constant:
+0:45          -10 (const int)
+0:45          20 (const int)
+0:47      Test condition and select (temp void)
+0:47        Condition
+0:47        'gl_HelperInvocation' (in bool HelperInvocation)
+0:47        true case
+0:48        Pre-Increment (temp mediump 4-component vector of float)
+0:48          'outp' (out mediump 4-component vector of float)
+0:50      Sequence
+0:50        move second child to first child (temp mediump int)
+0:50          'sum' (temp mediump int)
+0:50          Constant:
+0:50            32 (const int)
+0:58      move second child to first child (temp bool)
+0:58        'b1' (temp bool)
+0:58        mix (global bool)
+0:58          'b2' (temp bool)
+0:58          'b3' (temp bool)
+0:58          'b' (temp bool)
+0:59      Sequence
+0:59        move second child to first child (temp mediump 3-component vector of uint)
+0:59          'um3' (temp mediump 3-component vector of uint)
+0:59          mix (global mediump 3-component vector of uint)
+0:59            Construct uvec3 (temp mediump 3-component vector of uint)
+0:59              Convert int to uint (temp mediump uint)
+0:59                'i' (uniform mediump int)
+0:59            Construct uvec3 (temp mediump 3-component vector of uint)
+0:59              Convert int to uint (temp mediump uint)
+0:59                'i' (uniform mediump int)
+0:59            Construct bvec3 (temp 3-component vector of bool)
+0:59              'b' (temp bool)
+0:60      Sequence
+0:60        move second child to first child (temp mediump 4-component vector of int)
+0:60          'im4' (temp mediump 4-component vector of int)
+0:60          mix (global mediump 4-component vector of int)
+0:60            Construct ivec4 (temp mediump 4-component vector of int)
+0:60              'i' (uniform mediump int)
+0:60            Construct ivec4 (temp mediump 4-component vector of int)
+0:60              'i' (uniform mediump int)
+0:60            Construct bvec4 (temp 4-component vector of bool)
+0:60              'b' (temp bool)
+0:98  Function Definition: foots( (global void)
+0:98    Function Parameters: 
+0:100    Sequence
+0:100      Sequence
+0:100        move second child to first child (temp highp 2-component vector of int)
+0:100          'v2' (temp highp 2-component vector of int)
+0:100          textureSize (global highp 2-component vector of int)
+0:100            's1' (layout(binding=3 ) uniform highp sampler2D)
+0:100            Constant:
+0:100              2 (const int)
+0:101      Sequence
+0:101        move second child to first child (temp highp 3-component vector of int)
+0:101          'v3' (temp highp 3-component vector of int)
+0:101          textureSize (global highp 3-component vector of int)
+0:101            'isamp2DA' (uniform highp isampler2DArray)
+0:101            Constant:
+0:101              3 (const int)
+0:102      move second child to first child (temp highp 2-component vector of int)
+0:102        'v2' (temp highp 2-component vector of int)
+0:102        textureSize (global highp 2-component vector of int)
+0:102          's2dms' (uniform highp sampler2DMS)
+0:103      move second child to first child (temp highp 2-component vector of int)
+0:103        'v2' (temp highp 2-component vector of int)
+0:103        imageQuerySize (global highp 2-component vector of int)
+0:103          'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:104      move second child to first child (temp highp 3-component vector of int)
+0:104        'v3' (temp highp 3-component vector of int)
+0:104        imageQuerySize (global highp 3-component vector of int)
+0:104          'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:105      move second child to first child (temp highp 2-component vector of int)
+0:105        'v2' (temp highp 2-component vector of int)
+0:105        imageQuerySize (global highp 2-component vector of int)
+0:105          'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:106      move second child to first child (temp highp 3-component vector of int)
+0:106        'v3' (temp highp 3-component vector of int)
+0:106        imageQuerySize (global highp 3-component vector of int)
+0:106          'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:107      move second child to first child (temp highp 2-component vector of int)
+0:107        'v2' (temp highp 2-component vector of int)
+0:107        imageQuerySize (global highp 2-component vector of int)
+0:107          'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:165  Function Definition: fooIO( (global void)
+0:165    Function Parameters: 
+0:167    Sequence
+0:167      Sequence
+0:167        move second child to first child (temp mediump 4-component vector of float)
+0:167          'v' (temp mediump 4-component vector of float)
+0:167          add (temp mediump 4-component vector of float)
+0:167            v: direct index for structure (in mediump 4-component vector of float)
+0:167              'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:167              Constant:
+0:167                1 (const int)
+0:167            vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)
+0:167              'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:167              Constant:
+0:167                1 (const uint)
+0:168      vector scale second child into first child (temp mediump 4-component vector of float)
+0:168        'v' (temp mediump 4-component vector of float)
+0:168        f: direct index for structure (in mediump float)
+0:168          direct index (temp block{in mediump float f})
+0:168            'arrayedInst' (in 4-element array of block{in mediump float f})
+0:168            Constant:
+0:168              2 (const int)
+0:168          Constant:
+0:168            0 (const int)
+0:169      vector scale second child into first child (temp mediump 4-component vector of float)
+0:169        'v' (temp mediump 4-component vector of float)
+0:169        f: direct index for structure (in mediump float)
+0:169          indirect index (temp block{in mediump float f})
+0:169            'arrayedInst' (in 4-element array of block{in mediump float f})
+0:169            'i' (uniform mediump int)
+0:169          Constant:
+0:169            0 (const int)
+0:179  Function Definition: foo_IO( (global void)
+0:179    Function Parameters: 
+0:181    Sequence
+0:181      move second child to first child (temp highp float)
+0:181        'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:181        Constant:
+0:181          0.200000
+0:182      'gl_Layer' (flat in highp int Layer)
+0:183      'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:184      Sequence
+0:184        move second child to first child (temp bool)
+0:184          'f' (temp bool)
+0:184          'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:191  Function Definition: foo_GS( (global void)
+0:191    Function Parameters: 
+0:193    Sequence
+0:193      Sequence
+0:193        move second child to first child (temp highp int)
+0:193          'l' (temp highp int)
+0:193          'gl_Layer' (flat in highp int Layer)
+0:194      Sequence
+0:194        move second child to first child (temp highp int)
+0:194          'p' (temp highp int)
+0:194          'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:207  Function Definition: pfooBad( (global void)
+0:207    Function Parameters: 
+0:?     Sequence
+0:210      move second child to first child (temp mediump 2-component vector of float)
+0:210        'h' (temp mediump 2-component vector of float)
+0:210        fma (global mediump 2-component vector of float)
+0:210          'inf' (smooth in mediump 2-component vector of float)
+0:210          'ing' (smooth in mediump 2-component vector of float)
+0:210          'h' (temp mediump 2-component vector of float)
+0:211      textureGatherOffset (global highp 4-component vector of float)
+0:211        direct index (temp highp sampler2D)
+0:211          'sArray' (uniform 4-element array of highp sampler2D)
+0:211          Constant:
+0:211            0 (const int)
+0:211        Constant:
+0:211          0.100000
+0:211          0.100000
+0:211        Convert float to int (temp highp 2-component vector of int)
+0:211          'inf' (smooth in mediump 2-component vector of float)
+0:212      textureGatherOffsets (global highp 4-component vector of float)
+0:212        direct index (temp highp sampler2D)
+0:212          'sArray' (uniform 4-element array of highp sampler2D)
+0:212          Constant:
+0:212            0 (const int)
+0:212        Constant:
+0:212          0.100000
+0:212          0.100000
+0:212        Constant:
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:217  Function Definition: pfoo( (global void)
+0:217    Function Parameters: 
+0:?     Sequence
+0:220      move second child to first child (temp mediump 2-component vector of float)
+0:220        'h' (temp mediump 2-component vector of float)
+0:220        fma (global mediump 2-component vector of float)
+0:220          'inf' (smooth in mediump 2-component vector of float)
+0:220          'ing' (smooth in mediump 2-component vector of float)
+0:220          'h' (temp mediump 2-component vector of float)
+0:221      textureGatherOffset (global highp 4-component vector of float)
+0:221        direct index (temp highp sampler2D)
+0:221          'sArray' (uniform 4-element array of highp sampler2D)
+0:221          Constant:
+0:221            0 (const int)
+0:221        Constant:
+0:221          0.100000
+0:221          0.100000
+0:221        Convert float to int (temp highp 2-component vector of int)
+0:221          'inf' (smooth in mediump 2-component vector of float)
+0:222      textureGatherOffsets (global highp 4-component vector of float)
+0:222        direct index (temp highp sampler2D)
+0:222          'sArray' (uniform 4-element array of highp sampler2D)
+0:222          Constant:
+0:222            0 (const int)
+0:222        Constant:
+0:222          0.100000
+0:222          0.100000
+0:222        Constant:
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:223      textureGatherOffsets (global highp 4-component vector of float)
+0:223        direct index (temp highp sampler2D)
+0:223          'sArray' (uniform 4-element array of highp sampler2D)
+0:223          Constant:
+0:223            0 (const int)
+0:223        Constant:
+0:223          0.100000
+0:223          0.100000
+0:223        'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:248  Function Definition: CAT( (global void)
+0:248    Function Parameters: 
+0:250    Sequence
+0:250      Sequence
+0:250        move second child to first child (temp highp 4-component vector of float)
+0:250          'b4' (temp highp 4-component vector of float)
+0:250          texture (global highp 4-component vector of float)
+0:250            'CA4' (uniform highp samplerCubeArray)
+0:250            Constant:
+0:250              0.500000
+0:250              0.500000
+0:250              0.500000
+0:250              0.500000
+0:250            Constant:
+0:250              0.240000
+0:251      Sequence
+0:251        move second child to first child (temp highp 4-component vector of int)
+0:251          'b6' (temp highp 4-component vector of int)
+0:251          texture (global mediump 4-component vector of int)
+0:251            'CA6' (uniform highp isamplerCubeArray)
+0:251            Constant:
+0:251              0.500000
+0:251              0.500000
+0:251              0.500000
+0:251              0.500000
+0:251            Constant:
+0:251              0.260000
+0:252      Sequence
+0:252        move second child to first child (temp highp 4-component vector of uint)
+0:252          'b7' (temp highp 4-component vector of uint)
+0:252          texture (global mediump 4-component vector of uint)
+0:252            'CA7' (uniform highp usamplerCubeArray)
+0:252            Constant:
+0:252              0.500000
+0:252              0.500000
+0:252              0.500000
+0:252              0.500000
+0:252            Constant:
+0:252              0.270000
+0:255  Function Definition: badSample( (global void)
+0:255    Function Parameters: 
+0:257    Sequence
+0:257      Sequence
+0:257        move second child to first child (temp lowp int)
+0:257          'a1' (temp lowp int)
+0:257          'gl_SampleID' (flat in lowp int SampleId)
+0:258      Sequence
+0:258        move second child to first child (temp mediump 2-component vector of float)
+0:258          'a2' (temp mediump 2-component vector of float)
+0:258          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:259      Sequence
+0:259        move second child to first child (temp highp int)
+0:259          'a3' (temp highp int)
+0:259          direct index (flat temp highp int SampleMaskIn)
+0:259            'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)
+0:259            Constant:
+0:259              0 (const int)
+0:260      move second child to first child (temp highp int)
+0:260        direct index (temp highp int SampleMaskIn)
+0:260          'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)
+0:260          Constant:
+0:260            0 (const int)
+0:260        'a3' (temp highp int)
+0:261      Sequence
+0:261        move second child to first child (temp mediump int)
+0:261          'n' (temp mediump int)
+0:261          'gl_NumSamples' (uniform lowp int)
+0:268  Function Definition: goodSample( (global void)
+0:268    Function Parameters: 
+0:270    Sequence
+0:270      Sequence
+0:270        move second child to first child (temp lowp int)
+0:270          'a1' (temp lowp int)
+0:270          'gl_SampleID' (flat in lowp int SampleId)
+0:271      Sequence
+0:271        move second child to first child (temp mediump 2-component vector of float)
+0:271          'a2' (temp mediump 2-component vector of float)
+0:271          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:272      Sequence
+0:272        move second child to first child (temp highp int)
+0:272          'a3' (temp highp int)
+0:272          direct index (flat temp highp int SampleMaskIn)
+0:272            'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)
+0:272            Constant:
+0:272              0 (const int)
+0:273      move second child to first child (temp highp int)
+0:273        direct index (temp highp int SampleMaskIn)
+0:273          'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)
+0:273          Constant:
+0:273            0 (const int)
+0:273        'a3' (temp highp int)
+0:274      Sequence
+0:274        move second child to first child (temp mediump int)
+0:274          'n1' (temp mediump int)
+0:274          Constant:
+0:274            4 (const int)
+0:275      Sequence
+0:275        move second child to first child (temp mediump int)
+0:275          'n2' (temp mediump int)
+0:275          'gl_NumSamples' (uniform lowp int)
+0:283  Function Definition: badImageAtom( (global void)
+0:283    Function Parameters: 
+0:?     Sequence
+0:289      imageAtomicAdd (global mediump int)
+0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:289        'P' (uniform mediump 2-component vector of int)
+0:289        'dati' (temp mediump int)
+0:290      imageAtomicAdd (global mediump uint)
+0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:290        'P' (uniform mediump 2-component vector of int)
+0:290        'datu' (temp mediump uint)
+0:291      imageAtomicMin (global mediump int)
+0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:291        'P' (uniform mediump 2-component vector of int)
+0:291        'dati' (temp mediump int)
+0:292      imageAtomicMin (global mediump uint)
+0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:292        'P' (uniform mediump 2-component vector of int)
+0:292        'datu' (temp mediump uint)
+0:293      imageAtomicMax (global mediump int)
+0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:293        'P' (uniform mediump 2-component vector of int)
+0:293        'dati' (temp mediump int)
+0:294      imageAtomicMax (global mediump uint)
+0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:294        'P' (uniform mediump 2-component vector of int)
+0:294        'datu' (temp mediump uint)
+0:295      imageAtomicAnd (global mediump int)
+0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:295        'P' (uniform mediump 2-component vector of int)
+0:295        'dati' (temp mediump int)
+0:296      imageAtomicAnd (global mediump uint)
+0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:296        'P' (uniform mediump 2-component vector of int)
+0:296        'datu' (temp mediump uint)
+0:297      imageAtomicOr (global mediump int)
+0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:297        'P' (uniform mediump 2-component vector of int)
+0:297        'dati' (temp mediump int)
+0:298      imageAtomicOr (global mediump uint)
+0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:298        'P' (uniform mediump 2-component vector of int)
+0:298        'datu' (temp mediump uint)
+0:299      imageAtomicXor (global mediump int)
+0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:299        'P' (uniform mediump 2-component vector of int)
+0:299        'dati' (temp mediump int)
+0:300      imageAtomicXor (global mediump uint)
+0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:300        'P' (uniform mediump 2-component vector of int)
+0:300        'datu' (temp mediump uint)
+0:301      imageAtomicExchange (global mediump int)
+0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:301        'P' (uniform mediump 2-component vector of int)
+0:301        'dati' (temp mediump int)
+0:302      imageAtomicExchange (global mediump uint)
+0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:302        'P' (uniform mediump 2-component vector of int)
+0:302        'datu' (temp mediump uint)
+0:303      imageAtomicExchange (global highp float)
+0:303        'im2Df' (layout(r32f ) uniform highp image2D)
+0:303        'P' (uniform mediump 2-component vector of int)
+0:303        'datf' (temp mediump float)
+0:304      imageAtomicCompSwap (global mediump int)
+0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:304        'P' (uniform mediump 2-component vector of int)
+0:304        Constant:
+0:304          3 (const int)
+0:304        'dati' (temp mediump int)
+0:305      imageAtomicCompSwap (global mediump uint)
+0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:305        'P' (uniform mediump 2-component vector of int)
+0:305        Constant:
+0:305          5 (const uint)
+0:305        'datu' (temp mediump uint)
+0:316  Function Definition: goodImageAtom( (global void)
+0:316    Function Parameters: 
+0:?     Sequence
+0:322      imageAtomicAdd (global mediump int)
+0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:322        'P' (uniform mediump 2-component vector of int)
+0:322        'dati' (temp mediump int)
+0:323      imageAtomicAdd (global mediump uint)
+0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:323        'P' (uniform mediump 2-component vector of int)
+0:323        'datu' (temp mediump uint)
+0:324      imageAtomicMin (global mediump int)
+0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:324        'P' (uniform mediump 2-component vector of int)
+0:324        'dati' (temp mediump int)
+0:325      imageAtomicMin (global mediump uint)
+0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:325        'P' (uniform mediump 2-component vector of int)
+0:325        'datu' (temp mediump uint)
+0:326      imageAtomicMax (global mediump int)
+0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:326        'P' (uniform mediump 2-component vector of int)
+0:326        'dati' (temp mediump int)
+0:327      imageAtomicMax (global mediump uint)
+0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:327        'P' (uniform mediump 2-component vector of int)
+0:327        'datu' (temp mediump uint)
+0:328      imageAtomicAnd (global mediump int)
+0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:328        'P' (uniform mediump 2-component vector of int)
+0:328        'dati' (temp mediump int)
+0:329      imageAtomicAnd (global mediump uint)
+0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:329        'P' (uniform mediump 2-component vector of int)
+0:329        'datu' (temp mediump uint)
+0:330      imageAtomicOr (global mediump int)
+0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:330        'P' (uniform mediump 2-component vector of int)
+0:330        'dati' (temp mediump int)
+0:331      imageAtomicOr (global mediump uint)
+0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:331        'P' (uniform mediump 2-component vector of int)
+0:331        'datu' (temp mediump uint)
+0:332      imageAtomicXor (global mediump int)
+0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:332        'P' (uniform mediump 2-component vector of int)
+0:332        'dati' (temp mediump int)
+0:333      imageAtomicXor (global mediump uint)
+0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:333        'P' (uniform mediump 2-component vector of int)
+0:333        'datu' (temp mediump uint)
+0:334      imageAtomicExchange (global mediump int)
+0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:334        'P' (uniform mediump 2-component vector of int)
+0:334        'dati' (temp mediump int)
+0:335      imageAtomicExchange (global mediump uint)
+0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:335        'P' (uniform mediump 2-component vector of int)
+0:335        'datu' (temp mediump uint)
+0:336      imageAtomicExchange (global highp float)
+0:336        'im2Df' (layout(r32f ) uniform highp image2D)
+0:336        'P' (uniform mediump 2-component vector of int)
+0:336        'datf' (temp mediump float)
+0:337      imageAtomicCompSwap (global mediump int)
+0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:337        'P' (uniform mediump 2-component vector of int)
+0:337        Constant:
+0:337          3 (const int)
+0:337        'dati' (temp mediump int)
+0:338      imageAtomicCompSwap (global mediump uint)
+0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:338        'P' (uniform mediump 2-component vector of int)
+0:338        Constant:
+0:338          5 (const uint)
+0:338        'datu' (temp mediump uint)
+0:340      imageAtomicMax (global mediump int)
+0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:340        'P' (uniform mediump 2-component vector of int)
+0:340        'dati' (temp mediump int)
+0:341      imageAtomicMax (global mediump uint)
+0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:341        'P' (uniform mediump 2-component vector of int)
+0:341        'datu' (temp mediump uint)
+0:342      imageAtomicExchange (global highp float)
+0:342        'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:342        'P' (uniform mediump 2-component vector of int)
+0:342        'datf' (temp mediump float)
+0:353  Function Definition: badInterp( (global void)
+0:353    Function Parameters: 
+0:355    Sequence
+0:355      interpolateAtCentroid (global mediump 2-component vector of float)
+0:355        'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356      interpolateAtSample (global mediump 2-component vector of float)
+0:356        'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356        Constant:
+0:356          1 (const int)
+0:357      interpolateAtOffset (global mediump 2-component vector of float)
+0:357        'colorfc' (centroid flat in mediump 2-component vector of float)
+0:357        Constant:
+0:357          0.200000
+0:357          0.200000
+0:369  Function Definition: interp( (global void)
+0:369    Function Parameters: 
+0:?     Sequence
+0:376      move second child to first child (temp mediump 2-component vector of float)
+0:376        'res2' (temp mediump 2-component vector of float)
+0:376        interpolateAtCentroid (global mediump 2-component vector of float)
+0:376          'colorfc' (centroid flat in mediump 2-component vector of float)
+0:377      move second child to first child (temp mediump 4-component vector of float)
+0:377        'res4' (temp mediump 4-component vector of float)
+0:377        interpolateAtCentroid (global mediump 4-component vector of float)
+0:377          'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:378      move second child to first child (temp mediump 4-component vector of float)
+0:378        'res4' (temp mediump 4-component vector of float)
+0:378        interpolateAtCentroid (global mediump 4-component vector of float)
+0:378          'colorfsi' (flat sample in mediump 4-component vector of float)
+0:379      move second child to first child (temp mediump float)
+0:379        'res' (temp mediump float)
+0:379        interpolateAtCentroid (global mediump float)
+0:379          'scalarIn' (smooth in mediump float)
+0:380      'res3' (temp mediump 3-component vector of float)
+0:381      move second child to first child (temp mediump 3-component vector of float)
+0:381        'res3' (temp mediump 3-component vector of float)
+0:381        interpolateAtCentroid (global mediump 3-component vector of float)
+0:381          direct index (smooth sample temp mediump 3-component vector of float)
+0:381            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:381            Constant:
+0:381              2 (const int)
+0:382      move second child to first child (temp mediump 2-component vector of float)
+0:382        'res2' (temp mediump 2-component vector of float)
+0:382        interpolateAtCentroid (global mediump 2-component vector of float)
+0:382          vector swizzle (temp mediump 2-component vector of float)
+0:382            direct index (smooth sample temp mediump 3-component vector of float)
+0:382              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:382              Constant:
+0:382                2 (const int)
+0:382            Sequence
+0:382              Constant:
+0:382                0 (const int)
+0:382              Constant:
+0:382                1 (const int)
+0:384      'res3' (temp mediump 3-component vector of float)
+0:385      move second child to first child (temp mediump 3-component vector of float)
+0:385        'res3' (temp mediump 3-component vector of float)
+0:385        interpolateAtSample (global mediump 3-component vector of float)
+0:385          indirect index (smooth sample temp mediump 3-component vector of float)
+0:385            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:385            'i' (uniform mediump int)
+0:385          Constant:
+0:385            0 (const int)
+0:386      move second child to first child (temp mediump 2-component vector of float)
+0:386        'res2' (temp mediump 2-component vector of float)
+0:386        interpolateAtSample (global mediump 2-component vector of float)
+0:386          vector swizzle (temp mediump 2-component vector of float)
+0:386            direct index (smooth sample temp mediump 3-component vector of float)
+0:386              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:386              Constant:
+0:386                2 (const int)
+0:386            Sequence
+0:386              Constant:
+0:386                0 (const int)
+0:386              Constant:
+0:386                1 (const int)
+0:386          Constant:
+0:386            2 (const int)
+0:387      move second child to first child (temp mediump float)
+0:387        'res' (temp mediump float)
+0:387        interpolateAtSample (global mediump float)
+0:387          'scalarIn' (smooth in mediump float)
+0:387          Constant:
+0:387            1 (const int)
+0:389      'res3' (temp mediump 3-component vector of float)
+0:390      move second child to first child (temp mediump 3-component vector of float)
+0:390        'res3' (temp mediump 3-component vector of float)
+0:390        interpolateAtOffset (global mediump 3-component vector of float)
+0:390          direct index (smooth sample temp mediump 3-component vector of float)
+0:390            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:390            Constant:
+0:390              2 (const int)
+0:390          Constant:
+0:390            0.200000
+0:390            0.200000
+0:391      move second child to first child (temp mediump 2-component vector of float)
+0:391        'res2' (temp mediump 2-component vector of float)
+0:391        interpolateAtOffset (global mediump 2-component vector of float)
+0:391          vector swizzle (temp mediump 2-component vector of float)
+0:391            direct index (smooth sample temp mediump 3-component vector of float)
+0:391              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:391              Constant:
+0:391                2 (const int)
+0:391            Sequence
+0:391              Constant:
+0:391                0 (const int)
+0:391              Constant:
+0:391                1 (const int)
+0:391          Constant:
+0:391            0.200000
+0:391            0.200000
+0:392      move second child to first child (temp mediump float)
+0:392        'res' (temp mediump float)
+0:392        interpolateAtOffset (global mediump float)
+0:392          add (temp mediump float)
+0:392            'scalarIn' (smooth in mediump float)
+0:392            'scalarIn' (smooth in mediump float)
+0:392          Constant:
+0:392            0.200000
+0:392            0.200000
+0:393      move second child to first child (temp mediump float)
+0:393        'res' (temp mediump float)
+0:393        interpolateAtOffset (global mediump float)
+0:393          'scalarIn' (smooth in mediump float)
+0:393          Constant:
+0:393            0.200000
+0:393            0.200000
+0:396      move second child to first child (temp mediump float)
+0:396        'res' (temp mediump float)
+0:396        interpolateAtCentroid (global mediump float)
+0:396          'f' (temp mediump float)
+0:397      move second child to first child (temp mediump 4-component vector of float)
+0:397        'res4' (temp mediump 4-component vector of float)
+0:397        interpolateAtSample (global mediump 4-component vector of float)
+0:397          'outp' (out mediump 4-component vector of float)
+0:397          Constant:
+0:397            0 (const int)
+0:427  Function Definition: blendFoo( (temp void)
+0:427    Function Parameters: 
+0:428  Function Definition: blendFoo(vf3; (global void)
+0:428    Function Parameters: 
+0:428      'v' (in mediump 3-component vector of float)
+0:?   Linker Objects
+0:?     'gl_FragCoord' (smooth in mediump 4-component vector of float)
+0:?     'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)
+0:?     'yi' (layout(location=2 ) smooth in mediump 4X4 matrix of float)
+0:?     'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:?     'usamp2d' (uniform highp usampler2D)
+0:?     'samp2dr' (uniform mediump usampler2DRect)
+0:?     'isamp2DA' (uniform highp isampler2DArray)
+0:?     'c2D' (smooth in mediump 2-component vector of float)
+0:?     'i' (uniform mediump int)
+0:?     'outp' (out mediump 4-component vector of float)
+0:?     's1' (layout(binding=3 ) uniform highp sampler2D)
+0:?     's2' (layout(binding=3 ) uniform highp sampler2D)
+0:?     'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:?     'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:?     'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:?     'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:?     'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:?     'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})
+0:?     'centroidIn' (centroid smooth in mediump 4-component vector of float)
+0:?     'bigl' (uniform mediump 4-component vector of float)
+0:?     'bigout1' (layout(location=40 ) out mediump 4-component vector of float)
+0:?     'bigout2' (layout(location=40 ) out mediump 4-component vector of float)
+0:?     'neg' (out mediump 4-component vector of float)
+0:?     'b430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer mediump int i})
+0:?     'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})
+0:?     'smoothIn' (smooth in mediump 4-component vector of float)
+0:?     'flatIn' (flat in mediump int)
+0:?     's2dms' (uniform highp sampler2DMS)
+0:?     'bout' (out bool)
+0:?     'imageOut' (out highp image2D)
+0:?     'mout' (out mediump 2X3 matrix of float)
+0:?     'inb' (smooth in bool)
+0:?     'ino' (smooth in highp sampler2D)
+0:?     'ina' (smooth in 4-element array of mediump float)
+0:?     'inaa' (smooth in 4-element array of 2-element array of mediump float)
+0:?     'ins' (smooth in structure{global mediump float f})
+0:?     'inasa' (smooth in 4-element array of structure{global mediump float f})
+0:?     'insa' (smooth in 4-element array of structure{global mediump float f})
+0:?     'inSA' (smooth in structure{global 4-element array of mediump float f})
+0:?     'inSS' (smooth in structure{global mediump float f, global structure{global mediump float f} s})
+0:?     'outbinst' (out block{out mediump int a})
+0:?     'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:?     'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:?     'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)
+0:?     'arrayedInst' (in 4-element array of block{in mediump float f})
+0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:?     'inf' (smooth in mediump 2-component vector of float)
+0:?     'ing' (smooth in mediump 2-component vector of float)
+0:?     'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:?     'sArray' (uniform 4-element array of highp sampler2D)
+0:?     'sIndex' (uniform mediump int)
+0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump int i})
+0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer mediump int i})
+0:?     'iArray' (writeonly uniform 5-element array of highp image2D)
+0:?     'constOffsets' (const 4-element array of mediump 2-component vector of int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?     'CA1' (writeonly uniform highp imageCubeArray)
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)
+0:?     'CA4' (uniform highp samplerCubeArray)
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)
+0:?     'CA6' (uniform highp isamplerCubeArray)
+0:?     'CA7' (uniform highp usamplerCubeArray)
+0:?     'gl_SampleMaskIn' (flat in implicitly-sized array of highp int SampleMaskIn)
+0:?     'gl_SampleMask' (out implicitly-sized array of highp int SampleMaskIn)
+0:?     'im2Df' (layout(r32f ) uniform highp image2D)
+0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:?     'P' (uniform mediump 2-component vector of int)
+0:?     'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:?     'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:?     'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:?     'colorSampInBad' (smooth sample in mediump 4-component vector of float)
+0:?     'colorCentroidBad' (centroid out mediump 4-component vector of float)
+0:?     'colorBadFlat' (flat out mediump 4-component vector of float)
+0:?     'colorBadSmooth' (smooth out mediump 4-component vector of float)
+0:?     'colorBadNo' (noperspective out mediump 4-component vector of float)
+0:?     'colorfc' (centroid flat in mediump 2-component vector of float)
+0:?     'scalarIn' (smooth in mediump float)
+0:?     'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:?     'colorSampleBad' (sample out mediump 4-component vector of float)
+0:?     'colorfsi' (flat sample in mediump 4-component vector of float)
+0:?     'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:?     'badout' (out mediump 4-component vector of float)
+0:?     'outAA' (out 2-element array of 2-element array of mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
+
+Shader version: 310
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_texture_cube_map_array
+Requested GL_KHR_blend_equation_advanced
+Requested GL_OES_geometry_shader
+Requested GL_OES_gpu_shader5
+Requested GL_OES_sample_variables
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_any
+using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
+ERROR: node is still EOpNull!
+0:21  Function Definition: main( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp highp 4-component vector of float)
+0:23          'v' (temp mediump 4-component vector of float)
+0:23          texture (global highp 4-component vector of float)
+0:23            indirect index (temp highp sampler2D)
+0:23              'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:23              'i' (uniform mediump int)
+0:23            'c2D' (smooth in mediump 2-component vector of float)
+0:28      Sequence
+0:28        move second child to first child (temp highp 4-component vector of float)
+0:28          'v4' (temp mediump 4-component vector of float)
+0:28          textureGather (global highp 4-component vector of float)
+0:28            direct index (temp highp sampler2D)
+0:28              'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:28              Constant:
+0:28                0 (const int)
+0:28            'c2D' (smooth in mediump 2-component vector of float)
+0:29      Sequence
+0:29        move second child to first child (temp mediump 4-component vector of int)
+0:29          'iv4' (temp mediump 4-component vector of int)
+0:29          textureGatherOffset (global mediump 4-component vector of int)
+0:29            'isamp2DA' (uniform highp isampler2DArray)
+0:29            Constant:
+0:29              0.100000
+0:29              0.100000
+0:29              0.100000
+0:29            Constant:
+0:29              1 (const int)
+0:29              1 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:30      move second child to first child (temp mediump 4-component vector of int)
+0:30        'iv4' (temp mediump 4-component vector of int)
+0:30        textureGatherOffset (global mediump 4-component vector of int)
+0:30          'isamp2DA' (uniform highp isampler2DArray)
+0:30          Constant:
+0:30            0.100000
+0:30            0.100000
+0:30            0.100000
+0:30          Constant:
+0:30            1 (const int)
+0:30            1 (const int)
+0:30          'i' (uniform mediump int)
+0:31      move second child to first child (temp mediump 4-component vector of int)
+0:31        'iv4' (temp mediump 4-component vector of int)
+0:31        textureGatherOffset (global mediump 4-component vector of int)
+0:31          'isamp2DA' (uniform highp isampler2DArray)
+0:31          Constant:
+0:31            0.100000
+0:31            0.100000
+0:31            0.100000
+0:31          Constant:
+0:31            1 (const int)
+0:31            1 (const int)
+0:31          Constant:
+0:31            4 (const int)
+0:32      move second child to first child (temp mediump 4-component vector of int)
+0:32        'iv4' (temp mediump 4-component vector of int)
+0:32        textureGatherOffset (global mediump 4-component vector of int)
+0:32          'isamp2DA' (uniform highp isampler2DArray)
+0:32          Constant:
+0:32            0.100000
+0:32            0.100000
+0:32            0.100000
+0:32          Constant:
+0:32            1 (const int)
+0:32            1 (const int)
+0:32          Constant:
+0:32            3 (const int)
+0:33      move second child to first child (temp mediump 4-component vector of int)
+0:33        'iv4' (temp mediump 4-component vector of int)
+0:33        textureGatherOffset (global mediump 4-component vector of int)
+0:33          'isamp2DA' (uniform highp isampler2DArray)
+0:33          Constant:
+0:33            0.100000
+0:33            0.100000
+0:33            0.100000
+0:33          Constant:
+0:33            0 (const int)
+0:33            0 (const int)
+0:34      move second child to first child (temp mediump 4-component vector of int)
+0:34        'iv4' (temp mediump 4-component vector of int)
+0:34        textureGatherOffset (global mediump 4-component vector of int)
+0:34          'isamp2DA' (uniform highp isampler2DArray)
+0:34          Constant:
+0:34            0.100000
+0:34            0.100000
+0:34            0.100000
+0:34          Construct ivec2 (temp mediump 2-component vector of int)
+0:34            'i' (uniform mediump int)
+0:38  Function Definition: foo23( (global void)
+0:38    Function Parameters: 
+0:?     Sequence
+0:42      textureProjGradOffset (global mediump 4-component vector of uint)
+0:42        'usamp2d' (uniform highp usampler2D)
+0:42        'outp' (out mediump 4-component vector of float)
+0:42        Constant:
+0:42          0.000000
+0:42          0.000000
+0:42        Constant:
+0:42          0.000000
+0:42          0.000000
+0:42        Convert float to int (temp mediump 2-component vector of int)
+0:42          'c2D' (smooth in mediump 2-component vector of float)
+0:43      textureProjGradOffset (global mediump 4-component vector of uint)
+0:43        'usamp2d' (uniform highp usampler2D)
+0:43        'outp' (out mediump 4-component vector of float)
+0:43        Constant:
+0:43          0.000000
+0:43          0.000000
+0:43        Constant:
+0:43          0.000000
+0:43          0.000000
+0:43        Constant:
+0:43          3 (const int)
+0:43          4 (const int)
+0:44      textureProjGradOffset (global mediump 4-component vector of uint)
+0:44        'usamp2d' (uniform highp usampler2D)
+0:44        'outp' (out mediump 4-component vector of float)
+0:44        Constant:
+0:44          0.000000
+0:44          0.000000
+0:44        Constant:
+0:44          0.000000
+0:44          0.000000
+0:44        Constant:
+0:44          15 (const int)
+0:44          16 (const int)
+0:45      textureProjGradOffset (global mediump 4-component vector of uint)
+0:45        'usamp2d' (uniform highp usampler2D)
+0:45        'outp' (out mediump 4-component vector of float)
+0:45        Constant:
+0:45          0.000000
+0:45          0.000000
+0:45        Constant:
+0:45          0.000000
+0:45          0.000000
+0:45        Constant:
+0:45          -10 (const int)
+0:45          20 (const int)
+0:47      Test condition and select (temp void)
+0:47        Condition
+0:47        'gl_HelperInvocation' (in bool HelperInvocation)
+0:47        true case
+0:48        Pre-Increment (temp mediump 4-component vector of float)
+0:48          'outp' (out mediump 4-component vector of float)
+0:50      Sequence
+0:50        move second child to first child (temp mediump int)
+0:50          'sum' (temp mediump int)
+0:50          Constant:
+0:50            32 (const int)
+0:58      move second child to first child (temp bool)
+0:58        'b1' (temp bool)
+0:58        mix (global bool)
+0:58          'b2' (temp bool)
+0:58          'b3' (temp bool)
+0:58          'b' (temp bool)
+0:59      Sequence
+0:59        move second child to first child (temp mediump 3-component vector of uint)
+0:59          'um3' (temp mediump 3-component vector of uint)
+0:59          mix (global mediump 3-component vector of uint)
+0:59            Construct uvec3 (temp mediump 3-component vector of uint)
+0:59              Convert int to uint (temp mediump uint)
+0:59                'i' (uniform mediump int)
+0:59            Construct uvec3 (temp mediump 3-component vector of uint)
+0:59              Convert int to uint (temp mediump uint)
+0:59                'i' (uniform mediump int)
+0:59            Construct bvec3 (temp 3-component vector of bool)
+0:59              'b' (temp bool)
+0:60      Sequence
+0:60        move second child to first child (temp mediump 4-component vector of int)
+0:60          'im4' (temp mediump 4-component vector of int)
+0:60          mix (global mediump 4-component vector of int)
+0:60            Construct ivec4 (temp mediump 4-component vector of int)
+0:60              'i' (uniform mediump int)
+0:60            Construct ivec4 (temp mediump 4-component vector of int)
+0:60              'i' (uniform mediump int)
+0:60            Construct bvec4 (temp 4-component vector of bool)
+0:60              'b' (temp bool)
+0:98  Function Definition: foots( (global void)
+0:98    Function Parameters: 
+0:100    Sequence
+0:100      Sequence
+0:100        move second child to first child (temp highp 2-component vector of int)
+0:100          'v2' (temp highp 2-component vector of int)
+0:100          textureSize (global highp 2-component vector of int)
+0:100            's1' (layout(binding=3 ) uniform highp sampler2D)
+0:100            Constant:
+0:100              2 (const int)
+0:101      Sequence
+0:101        move second child to first child (temp highp 3-component vector of int)
+0:101          'v3' (temp highp 3-component vector of int)
+0:101          textureSize (global highp 3-component vector of int)
+0:101            'isamp2DA' (uniform highp isampler2DArray)
+0:101            Constant:
+0:101              3 (const int)
+0:102      move second child to first child (temp highp 2-component vector of int)
+0:102        'v2' (temp highp 2-component vector of int)
+0:102        textureSize (global highp 2-component vector of int)
+0:102          's2dms' (uniform highp sampler2DMS)
+0:103      move second child to first child (temp highp 2-component vector of int)
+0:103        'v2' (temp highp 2-component vector of int)
+0:103        imageQuerySize (global highp 2-component vector of int)
+0:103          'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:104      move second child to first child (temp highp 3-component vector of int)
+0:104        'v3' (temp highp 3-component vector of int)
+0:104        imageQuerySize (global highp 3-component vector of int)
+0:104          'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:105      move second child to first child (temp highp 2-component vector of int)
+0:105        'v2' (temp highp 2-component vector of int)
+0:105        imageQuerySize (global highp 2-component vector of int)
+0:105          'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:106      move second child to first child (temp highp 3-component vector of int)
+0:106        'v3' (temp highp 3-component vector of int)
+0:106        imageQuerySize (global highp 3-component vector of int)
+0:106          'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:107      move second child to first child (temp highp 2-component vector of int)
+0:107        'v2' (temp highp 2-component vector of int)
+0:107        imageQuerySize (global highp 2-component vector of int)
+0:107          'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:165  Function Definition: fooIO( (global void)
+0:165    Function Parameters: 
+0:167    Sequence
+0:167      Sequence
+0:167        move second child to first child (temp mediump 4-component vector of float)
+0:167          'v' (temp mediump 4-component vector of float)
+0:167          add (temp mediump 4-component vector of float)
+0:167            v: direct index for structure (in mediump 4-component vector of float)
+0:167              'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:167              Constant:
+0:167                1 (const int)
+0:167            vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float)
+0:167              'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:167              Constant:
+0:167                1 (const uint)
+0:168      vector scale second child into first child (temp mediump 4-component vector of float)
+0:168        'v' (temp mediump 4-component vector of float)
+0:168        f: direct index for structure (in mediump float)
+0:168          direct index (temp block{in mediump float f})
+0:168            'arrayedInst' (in 4-element array of block{in mediump float f})
+0:168            Constant:
+0:168              2 (const int)
+0:168          Constant:
+0:168            0 (const int)
+0:169      vector scale second child into first child (temp mediump 4-component vector of float)
+0:169        'v' (temp mediump 4-component vector of float)
+0:169        f: direct index for structure (in mediump float)
+0:169          indirect index (temp block{in mediump float f})
+0:169            'arrayedInst' (in 4-element array of block{in mediump float f})
+0:169            'i' (uniform mediump int)
+0:169          Constant:
+0:169            0 (const int)
+0:179  Function Definition: foo_IO( (global void)
+0:179    Function Parameters: 
+0:181    Sequence
+0:181      move second child to first child (temp highp float)
+0:181        'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:181        Constant:
+0:181          0.200000
+0:182      'gl_Layer' (flat in highp int Layer)
+0:183      'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:184      Sequence
+0:184        move second child to first child (temp bool)
+0:184          'f' (temp bool)
+0:184          'gl_FrontFacing' (gl_FrontFacing bool Face)
+0:191  Function Definition: foo_GS( (global void)
+0:191    Function Parameters: 
+0:193    Sequence
+0:193      Sequence
+0:193        move second child to first child (temp highp int)
+0:193          'l' (temp highp int)
+0:193          'gl_Layer' (flat in highp int Layer)
+0:194      Sequence
+0:194        move second child to first child (temp highp int)
+0:194          'p' (temp highp int)
+0:194          'gl_PrimitiveID' (flat in highp int PrimitiveID)
+0:207  Function Definition: pfooBad( (global void)
+0:207    Function Parameters: 
+0:?     Sequence
+0:210      move second child to first child (temp mediump 2-component vector of float)
+0:210        'h' (temp mediump 2-component vector of float)
+0:210        fma (global mediump 2-component vector of float)
+0:210          'inf' (smooth in mediump 2-component vector of float)
+0:210          'ing' (smooth in mediump 2-component vector of float)
+0:210          'h' (temp mediump 2-component vector of float)
+0:211      textureGatherOffset (global highp 4-component vector of float)
+0:211        direct index (temp highp sampler2D)
+0:211          'sArray' (uniform 4-element array of highp sampler2D)
+0:211          Constant:
+0:211            0 (const int)
+0:211        Constant:
+0:211          0.100000
+0:211          0.100000
+0:211        Convert float to int (temp highp 2-component vector of int)
+0:211          'inf' (smooth in mediump 2-component vector of float)
+0:212      textureGatherOffsets (global highp 4-component vector of float)
+0:212        direct index (temp highp sampler2D)
+0:212          'sArray' (uniform 4-element array of highp sampler2D)
+0:212          Constant:
+0:212            0 (const int)
+0:212        Constant:
+0:212          0.100000
+0:212          0.100000
+0:212        Constant:
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:212          0 (const int)
+0:217  Function Definition: pfoo( (global void)
+0:217    Function Parameters: 
+0:?     Sequence
+0:220      move second child to first child (temp mediump 2-component vector of float)
+0:220        'h' (temp mediump 2-component vector of float)
+0:220        fma (global mediump 2-component vector of float)
+0:220          'inf' (smooth in mediump 2-component vector of float)
+0:220          'ing' (smooth in mediump 2-component vector of float)
+0:220          'h' (temp mediump 2-component vector of float)
+0:221      textureGatherOffset (global highp 4-component vector of float)
+0:221        direct index (temp highp sampler2D)
+0:221          'sArray' (uniform 4-element array of highp sampler2D)
+0:221          Constant:
+0:221            0 (const int)
+0:221        Constant:
+0:221          0.100000
+0:221          0.100000
+0:221        Convert float to int (temp highp 2-component vector of int)
+0:221          'inf' (smooth in mediump 2-component vector of float)
+0:222      textureGatherOffsets (global highp 4-component vector of float)
+0:222        direct index (temp highp sampler2D)
+0:222          'sArray' (uniform 4-element array of highp sampler2D)
+0:222          Constant:
+0:222            0 (const int)
+0:222        Constant:
+0:222          0.100000
+0:222          0.100000
+0:222        Constant:
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:222          0 (const int)
+0:223      textureGatherOffsets (global highp 4-component vector of float)
+0:223        direct index (temp highp sampler2D)
+0:223          'sArray' (uniform 4-element array of highp sampler2D)
+0:223          Constant:
+0:223            0 (const int)
+0:223        Constant:
+0:223          0.100000
+0:223          0.100000
+0:223        'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:248  Function Definition: CAT( (global void)
+0:248    Function Parameters: 
+0:250    Sequence
+0:250      Sequence
+0:250        move second child to first child (temp highp 4-component vector of float)
+0:250          'b4' (temp highp 4-component vector of float)
+0:250          texture (global highp 4-component vector of float)
+0:250            'CA4' (uniform highp samplerCubeArray)
+0:250            Constant:
+0:250              0.500000
+0:250              0.500000
+0:250              0.500000
+0:250              0.500000
+0:250            Constant:
+0:250              0.240000
+0:251      Sequence
+0:251        move second child to first child (temp highp 4-component vector of int)
+0:251          'b6' (temp highp 4-component vector of int)
+0:251          texture (global mediump 4-component vector of int)
+0:251            'CA6' (uniform highp isamplerCubeArray)
+0:251            Constant:
+0:251              0.500000
+0:251              0.500000
+0:251              0.500000
+0:251              0.500000
+0:251            Constant:
+0:251              0.260000
+0:252      Sequence
+0:252        move second child to first child (temp highp 4-component vector of uint)
+0:252          'b7' (temp highp 4-component vector of uint)
+0:252          texture (global mediump 4-component vector of uint)
+0:252            'CA7' (uniform highp usamplerCubeArray)
+0:252            Constant:
+0:252              0.500000
+0:252              0.500000
+0:252              0.500000
+0:252              0.500000
+0:252            Constant:
+0:252              0.270000
+0:255  Function Definition: badSample( (global void)
+0:255    Function Parameters: 
+0:257    Sequence
+0:257      Sequence
+0:257        move second child to first child (temp lowp int)
+0:257          'a1' (temp lowp int)
+0:257          'gl_SampleID' (flat in lowp int SampleId)
+0:258      Sequence
+0:258        move second child to first child (temp mediump 2-component vector of float)
+0:258          'a2' (temp mediump 2-component vector of float)
+0:258          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:259      Sequence
+0:259        move second child to first child (temp highp int)
+0:259          'a3' (temp highp int)
+0:259          direct index (flat temp highp int SampleMaskIn)
+0:259            'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
+0:259            Constant:
+0:259              0 (const int)
+0:260      move second child to first child (temp highp int)
+0:260        direct index (temp highp int SampleMaskIn)
+0:260          'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
+0:260          Constant:
+0:260            0 (const int)
+0:260        'a3' (temp highp int)
+0:261      Sequence
+0:261        move second child to first child (temp mediump int)
+0:261          'n' (temp mediump int)
+0:261          'gl_NumSamples' (uniform lowp int)
+0:268  Function Definition: goodSample( (global void)
+0:268    Function Parameters: 
+0:270    Sequence
+0:270      Sequence
+0:270        move second child to first child (temp lowp int)
+0:270          'a1' (temp lowp int)
+0:270          'gl_SampleID' (flat in lowp int SampleId)
+0:271      Sequence
+0:271        move second child to first child (temp mediump 2-component vector of float)
+0:271          'a2' (temp mediump 2-component vector of float)
+0:271          'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition)
+0:272      Sequence
+0:272        move second child to first child (temp highp int)
+0:272          'a3' (temp highp int)
+0:272          direct index (flat temp highp int SampleMaskIn)
+0:272            'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
+0:272            Constant:
+0:272              0 (const int)
+0:273      move second child to first child (temp highp int)
+0:273        direct index (temp highp int SampleMaskIn)
+0:273          'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
+0:273          Constant:
+0:273            0 (const int)
+0:273        'a3' (temp highp int)
+0:274      Sequence
+0:274        move second child to first child (temp mediump int)
+0:274          'n1' (temp mediump int)
+0:274          Constant:
+0:274            4 (const int)
+0:275      Sequence
+0:275        move second child to first child (temp mediump int)
+0:275          'n2' (temp mediump int)
+0:275          'gl_NumSamples' (uniform lowp int)
+0:283  Function Definition: badImageAtom( (global void)
+0:283    Function Parameters: 
+0:?     Sequence
+0:289      imageAtomicAdd (global mediump int)
+0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:289        'P' (uniform mediump 2-component vector of int)
+0:289        'dati' (temp mediump int)
+0:290      imageAtomicAdd (global mediump uint)
+0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:290        'P' (uniform mediump 2-component vector of int)
+0:290        'datu' (temp mediump uint)
+0:291      imageAtomicMin (global mediump int)
+0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:291        'P' (uniform mediump 2-component vector of int)
+0:291        'dati' (temp mediump int)
+0:292      imageAtomicMin (global mediump uint)
+0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:292        'P' (uniform mediump 2-component vector of int)
+0:292        'datu' (temp mediump uint)
+0:293      imageAtomicMax (global mediump int)
+0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:293        'P' (uniform mediump 2-component vector of int)
+0:293        'dati' (temp mediump int)
+0:294      imageAtomicMax (global mediump uint)
+0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:294        'P' (uniform mediump 2-component vector of int)
+0:294        'datu' (temp mediump uint)
+0:295      imageAtomicAnd (global mediump int)
+0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:295        'P' (uniform mediump 2-component vector of int)
+0:295        'dati' (temp mediump int)
+0:296      imageAtomicAnd (global mediump uint)
+0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:296        'P' (uniform mediump 2-component vector of int)
+0:296        'datu' (temp mediump uint)
+0:297      imageAtomicOr (global mediump int)
+0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:297        'P' (uniform mediump 2-component vector of int)
+0:297        'dati' (temp mediump int)
+0:298      imageAtomicOr (global mediump uint)
+0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:298        'P' (uniform mediump 2-component vector of int)
+0:298        'datu' (temp mediump uint)
+0:299      imageAtomicXor (global mediump int)
+0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:299        'P' (uniform mediump 2-component vector of int)
+0:299        'dati' (temp mediump int)
+0:300      imageAtomicXor (global mediump uint)
+0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:300        'P' (uniform mediump 2-component vector of int)
+0:300        'datu' (temp mediump uint)
+0:301      imageAtomicExchange (global mediump int)
+0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:301        'P' (uniform mediump 2-component vector of int)
+0:301        'dati' (temp mediump int)
+0:302      imageAtomicExchange (global mediump uint)
+0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:302        'P' (uniform mediump 2-component vector of int)
+0:302        'datu' (temp mediump uint)
+0:303      imageAtomicExchange (global highp float)
+0:303        'im2Df' (layout(r32f ) uniform highp image2D)
+0:303        'P' (uniform mediump 2-component vector of int)
+0:303        'datf' (temp mediump float)
+0:304      imageAtomicCompSwap (global mediump int)
+0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:304        'P' (uniform mediump 2-component vector of int)
+0:304        Constant:
+0:304          3 (const int)
+0:304        'dati' (temp mediump int)
+0:305      imageAtomicCompSwap (global mediump uint)
+0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:305        'P' (uniform mediump 2-component vector of int)
+0:305        Constant:
+0:305          5 (const uint)
+0:305        'datu' (temp mediump uint)
+0:316  Function Definition: goodImageAtom( (global void)
+0:316    Function Parameters: 
+0:?     Sequence
+0:322      imageAtomicAdd (global mediump int)
+0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:322        'P' (uniform mediump 2-component vector of int)
+0:322        'dati' (temp mediump int)
+0:323      imageAtomicAdd (global mediump uint)
+0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:323        'P' (uniform mediump 2-component vector of int)
+0:323        'datu' (temp mediump uint)
+0:324      imageAtomicMin (global mediump int)
+0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:324        'P' (uniform mediump 2-component vector of int)
+0:324        'dati' (temp mediump int)
+0:325      imageAtomicMin (global mediump uint)
+0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:325        'P' (uniform mediump 2-component vector of int)
+0:325        'datu' (temp mediump uint)
+0:326      imageAtomicMax (global mediump int)
+0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:326        'P' (uniform mediump 2-component vector of int)
+0:326        'dati' (temp mediump int)
+0:327      imageAtomicMax (global mediump uint)
+0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:327        'P' (uniform mediump 2-component vector of int)
+0:327        'datu' (temp mediump uint)
+0:328      imageAtomicAnd (global mediump int)
+0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:328        'P' (uniform mediump 2-component vector of int)
+0:328        'dati' (temp mediump int)
+0:329      imageAtomicAnd (global mediump uint)
+0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:329        'P' (uniform mediump 2-component vector of int)
+0:329        'datu' (temp mediump uint)
+0:330      imageAtomicOr (global mediump int)
+0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:330        'P' (uniform mediump 2-component vector of int)
+0:330        'dati' (temp mediump int)
+0:331      imageAtomicOr (global mediump uint)
+0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:331        'P' (uniform mediump 2-component vector of int)
+0:331        'datu' (temp mediump uint)
+0:332      imageAtomicXor (global mediump int)
+0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:332        'P' (uniform mediump 2-component vector of int)
+0:332        'dati' (temp mediump int)
+0:333      imageAtomicXor (global mediump uint)
+0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:333        'P' (uniform mediump 2-component vector of int)
+0:333        'datu' (temp mediump uint)
+0:334      imageAtomicExchange (global mediump int)
+0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:334        'P' (uniform mediump 2-component vector of int)
+0:334        'dati' (temp mediump int)
+0:335      imageAtomicExchange (global mediump uint)
+0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:335        'P' (uniform mediump 2-component vector of int)
+0:335        'datu' (temp mediump uint)
+0:336      imageAtomicExchange (global highp float)
+0:336        'im2Df' (layout(r32f ) uniform highp image2D)
+0:336        'P' (uniform mediump 2-component vector of int)
+0:336        'datf' (temp mediump float)
+0:337      imageAtomicCompSwap (global mediump int)
+0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:337        'P' (uniform mediump 2-component vector of int)
+0:337        Constant:
+0:337          3 (const int)
+0:337        'dati' (temp mediump int)
+0:338      imageAtomicCompSwap (global mediump uint)
+0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:338        'P' (uniform mediump 2-component vector of int)
+0:338        Constant:
+0:338          5 (const uint)
+0:338        'datu' (temp mediump uint)
+0:340      imageAtomicMax (global mediump int)
+0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:340        'P' (uniform mediump 2-component vector of int)
+0:340        'dati' (temp mediump int)
+0:341      imageAtomicMax (global mediump uint)
+0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:341        'P' (uniform mediump 2-component vector of int)
+0:341        'datu' (temp mediump uint)
+0:342      imageAtomicExchange (global highp float)
+0:342        'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:342        'P' (uniform mediump 2-component vector of int)
+0:342        'datf' (temp mediump float)
+0:353  Function Definition: badInterp( (global void)
+0:353    Function Parameters: 
+0:355    Sequence
+0:355      interpolateAtCentroid (global mediump 2-component vector of float)
+0:355        'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356      interpolateAtSample (global mediump 2-component vector of float)
+0:356        'colorfc' (centroid flat in mediump 2-component vector of float)
+0:356        Constant:
+0:356          1 (const int)
+0:357      interpolateAtOffset (global mediump 2-component vector of float)
+0:357        'colorfc' (centroid flat in mediump 2-component vector of float)
+0:357        Constant:
+0:357          0.200000
+0:357          0.200000
+0:369  Function Definition: interp( (global void)
+0:369    Function Parameters: 
+0:?     Sequence
+0:376      move second child to first child (temp mediump 2-component vector of float)
+0:376        'res2' (temp mediump 2-component vector of float)
+0:376        interpolateAtCentroid (global mediump 2-component vector of float)
+0:376          'colorfc' (centroid flat in mediump 2-component vector of float)
+0:377      move second child to first child (temp mediump 4-component vector of float)
+0:377        'res4' (temp mediump 4-component vector of float)
+0:377        interpolateAtCentroid (global mediump 4-component vector of float)
+0:377          'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:378      move second child to first child (temp mediump 4-component vector of float)
+0:378        'res4' (temp mediump 4-component vector of float)
+0:378        interpolateAtCentroid (global mediump 4-component vector of float)
+0:378          'colorfsi' (flat sample in mediump 4-component vector of float)
+0:379      move second child to first child (temp mediump float)
+0:379        'res' (temp mediump float)
+0:379        interpolateAtCentroid (global mediump float)
+0:379          'scalarIn' (smooth in mediump float)
+0:380      'res3' (temp mediump 3-component vector of float)
+0:381      move second child to first child (temp mediump 3-component vector of float)
+0:381        'res3' (temp mediump 3-component vector of float)
+0:381        interpolateAtCentroid (global mediump 3-component vector of float)
+0:381          direct index (smooth sample temp mediump 3-component vector of float)
+0:381            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:381            Constant:
+0:381              2 (const int)
+0:382      move second child to first child (temp mediump 2-component vector of float)
+0:382        'res2' (temp mediump 2-component vector of float)
+0:382        interpolateAtCentroid (global mediump 2-component vector of float)
+0:382          vector swizzle (temp mediump 2-component vector of float)
+0:382            direct index (smooth sample temp mediump 3-component vector of float)
+0:382              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:382              Constant:
+0:382                2 (const int)
+0:382            Sequence
+0:382              Constant:
+0:382                0 (const int)
+0:382              Constant:
+0:382                1 (const int)
+0:384      'res3' (temp mediump 3-component vector of float)
+0:385      move second child to first child (temp mediump 3-component vector of float)
+0:385        'res3' (temp mediump 3-component vector of float)
+0:385        interpolateAtSample (global mediump 3-component vector of float)
+0:385          indirect index (smooth sample temp mediump 3-component vector of float)
+0:385            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:385            'i' (uniform mediump int)
+0:385          Constant:
+0:385            0 (const int)
+0:386      move second child to first child (temp mediump 2-component vector of float)
+0:386        'res2' (temp mediump 2-component vector of float)
+0:386        interpolateAtSample (global mediump 2-component vector of float)
+0:386          vector swizzle (temp mediump 2-component vector of float)
+0:386            direct index (smooth sample temp mediump 3-component vector of float)
+0:386              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:386              Constant:
+0:386                2 (const int)
+0:386            Sequence
+0:386              Constant:
+0:386                0 (const int)
+0:386              Constant:
+0:386                1 (const int)
+0:386          Constant:
+0:386            2 (const int)
+0:387      move second child to first child (temp mediump float)
+0:387        'res' (temp mediump float)
+0:387        interpolateAtSample (global mediump float)
+0:387          'scalarIn' (smooth in mediump float)
+0:387          Constant:
+0:387            1 (const int)
+0:389      'res3' (temp mediump 3-component vector of float)
+0:390      move second child to first child (temp mediump 3-component vector of float)
+0:390        'res3' (temp mediump 3-component vector of float)
+0:390        interpolateAtOffset (global mediump 3-component vector of float)
+0:390          direct index (smooth sample temp mediump 3-component vector of float)
+0:390            'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:390            Constant:
+0:390              2 (const int)
+0:390          Constant:
+0:390            0.200000
+0:390            0.200000
+0:391      move second child to first child (temp mediump 2-component vector of float)
+0:391        'res2' (temp mediump 2-component vector of float)
+0:391        interpolateAtOffset (global mediump 2-component vector of float)
+0:391          vector swizzle (temp mediump 2-component vector of float)
+0:391            direct index (smooth sample temp mediump 3-component vector of float)
+0:391              'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:391              Constant:
+0:391                2 (const int)
+0:391            Sequence
+0:391              Constant:
+0:391                0 (const int)
+0:391              Constant:
+0:391                1 (const int)
+0:391          Constant:
+0:391            0.200000
+0:391            0.200000
+0:392      move second child to first child (temp mediump float)
+0:392        'res' (temp mediump float)
+0:392        interpolateAtOffset (global mediump float)
+0:392          add (temp mediump float)
+0:392            'scalarIn' (smooth in mediump float)
+0:392            'scalarIn' (smooth in mediump float)
+0:392          Constant:
+0:392            0.200000
+0:392            0.200000
+0:393      move second child to first child (temp mediump float)
+0:393        'res' (temp mediump float)
+0:393        interpolateAtOffset (global mediump float)
+0:393          'scalarIn' (smooth in mediump float)
+0:393          Constant:
+0:393            0.200000
+0:393            0.200000
+0:396      move second child to first child (temp mediump float)
+0:396        'res' (temp mediump float)
+0:396        interpolateAtCentroid (global mediump float)
+0:396          'f' (temp mediump float)
+0:397      move second child to first child (temp mediump 4-component vector of float)
+0:397        'res4' (temp mediump 4-component vector of float)
+0:397        interpolateAtSample (global mediump 4-component vector of float)
+0:397          'outp' (out mediump 4-component vector of float)
+0:397          Constant:
+0:397            0 (const int)
+0:427  Function Definition: blendFoo( (temp void)
+0:427    Function Parameters: 
+0:428  Function Definition: blendFoo(vf3; (global void)
+0:428    Function Parameters: 
+0:428      'v' (in mediump 3-component vector of float)
+0:?   Linker Objects
+0:?     'gl_FragCoord' (smooth in mediump 4-component vector of float)
+0:?     'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)
+0:?     'yi' (layout(location=2 ) smooth in mediump 4X4 matrix of float)
+0:?     'arrayedSampler' (uniform 5-element array of highp sampler2D)
+0:?     'usamp2d' (uniform highp usampler2D)
+0:?     'samp2dr' (uniform mediump usampler2DRect)
+0:?     'isamp2DA' (uniform highp isampler2DArray)
+0:?     'c2D' (smooth in mediump 2-component vector of float)
+0:?     'i' (uniform mediump int)
+0:?     'outp' (out mediump 4-component vector of float)
+0:?     's1' (layout(binding=3 ) uniform highp sampler2D)
+0:?     's2' (layout(binding=3 ) uniform highp sampler2D)
+0:?     'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
+0:?     'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
+0:?     'iCube' (layout(binding=5 ) uniform lowp imageCube)
+0:?     'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
+0:?     'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D)
+0:?     'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f})
+0:?     'centroidIn' (centroid smooth in mediump 4-component vector of float)
+0:?     'bigl' (uniform mediump 4-component vector of float)
+0:?     'bigout1' (layout(location=40 ) out mediump 4-component vector of float)
+0:?     'bigout2' (layout(location=40 ) out mediump 4-component vector of float)
+0:?     'neg' (out mediump 4-component vector of float)
+0:?     'b430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer mediump int i})
+0:?     'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i})
+0:?     'smoothIn' (smooth in mediump 4-component vector of float)
+0:?     'flatIn' (flat in mediump int)
+0:?     's2dms' (uniform highp sampler2DMS)
+0:?     'bout' (out bool)
+0:?     'imageOut' (out highp image2D)
+0:?     'mout' (out mediump 2X3 matrix of float)
+0:?     'inb' (smooth in bool)
+0:?     'ino' (smooth in highp sampler2D)
+0:?     'ina' (smooth in 4-element array of mediump float)
+0:?     'inaa' (smooth in 4-element array of 2-element array of mediump float)
+0:?     'ins' (smooth in structure{global mediump float f})
+0:?     'inasa' (smooth in 4-element array of structure{global mediump float f})
+0:?     'insa' (smooth in 4-element array of structure{global mediump float f})
+0:?     'inSA' (smooth in structure{global 4-element array of mediump float f})
+0:?     'inSS' (smooth in structure{global mediump float f, global structure{global mediump float f} s})
+0:?     'outbinst' (out block{out mediump int a})
+0:?     'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s})
+0:?     'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon})
+0:?     'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)
+0:?     'arrayedInst' (in 4-element array of block{in mediump float f})
+0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:?     'gl_FragDepth' (gl_FragDepth highp float FragDepth)
+0:?     'inf' (smooth in mediump 2-component vector of float)
+0:?     'ing' (smooth in mediump 2-component vector of float)
+0:?     'offsets' (uniform 4-element array of mediump 2-component vector of int)
+0:?     'sArray' (uniform 4-element array of highp sampler2D)
+0:?     'sIndex' (uniform mediump int)
+0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump int i})
+0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer mediump int i})
+0:?     'iArray' (writeonly uniform 5-element array of highp image2D)
+0:?     'constOffsets' (const 4-element array of mediump 2-component vector of int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?     'CA1' (writeonly uniform highp imageCubeArray)
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)
+0:?     'CA4' (uniform highp samplerCubeArray)
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)
+0:?     'CA6' (uniform highp isamplerCubeArray)
+0:?     'CA7' (uniform highp usamplerCubeArray)
+0:?     'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn)
+0:?     'gl_SampleMask' (out 1-element array of highp int SampleMaskIn)
+0:?     'im2Df' (layout(r32f ) uniform highp image2D)
+0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:?     'P' (uniform mediump 2-component vector of int)
+0:?     'badIm2Df' (layout(rgba32f ) uniform highp image2D)
+0:?     'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
+0:?     'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
+0:?     'colorSampInBad' (smooth sample in mediump 4-component vector of float)
+0:?     'colorCentroidBad' (centroid out mediump 4-component vector of float)
+0:?     'colorBadFlat' (flat out mediump 4-component vector of float)
+0:?     'colorBadSmooth' (smooth out mediump 4-component vector of float)
+0:?     'colorBadNo' (noperspective out mediump 4-component vector of float)
+0:?     'colorfc' (centroid flat in mediump 2-component vector of float)
+0:?     'scalarIn' (smooth in mediump float)
+0:?     'colorSampIn' (smooth sample in mediump 4-component vector of float)
+0:?     'colorSampleBad' (sample out mediump 4-component vector of float)
+0:?     'colorfsi' (flat sample in mediump 4-component vector of float)
+0:?     'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float)
+0:?     'badout' (out mediump 4-component vector of float)
+0:?     'outAA' (out 2-element array of 2-element array of mediump 4-component vector of float)
+
diff --git a/Test/baseResults/310.geom.out b/Test/baseResults/310.geom.out
index 7b26547..888c142 100644
--- a/Test/baseResults/310.geom.out
+++ b/Test/baseResults/310.geom.out
@@ -1,346 +1,346 @@
-310.geom

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:29: 'fromVertex' : block instance name redefinition 

-ERROR: 0:33: 'fromVertex' : redefinition 

-ERROR: 0:35: 'fooC' : block instance name redefinition 

-ERROR: 0:43: 'EmitStreamVertex' : no matching overloaded function found 

-ERROR: 0:44: 'EndStreamPrimitive' : no matching overloaded function found 

-ERROR: 0:47: 'gl_ClipDistance' : undeclared identifier 

-ERROR: 0:47: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:48: 'gl_ClipDistance' : no such field in structure 

-ERROR: 0:48: 'expression' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:47: 'assign' :  l-value required (can't modify a const)

-ERROR: 0:55: 'selecting output stream' : not supported with this profile: es

-ERROR: 0:62: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices 

-ERROR: 0:62: 'max_vertices' : cannot change previously set layout value 

-ERROR: 0:63: 'max_vertices' : can only apply to a standalone qualifier 

-ERROR: 0:68: 'points' : cannot change previously set output primitive 

-ERROR: 0:69: 'points' : cannot change previously set output primitive 

-ERROR: 0:70: 'triangle_strip' : cannot apply to input 

-ERROR: 0:71: 'triangle_strip' : cannot apply to: uniform

-ERROR: 0:72: 'triangle_strip' : can only apply to a standalone qualifier 

-ERROR: 0:73: 'triangle_strip' : can only apply to a standalone qualifier 

-ERROR: 0:74: 'invocations' : can only apply to a standalone qualifier 

-ERROR: 0:76: 'invocations' : can only apply to a standalone qualifier 

-ERROR: 0:77: 'max_vertices' : can only apply to a standalone qualifier 

-ERROR: 0:78: 'triangle_strip' : can only apply to a standalone qualifier 

-ERROR: 0:81: 'lines' : cannot apply to 'out' 

-ERROR: 0:83: 'triangles' : cannot change previously set input primitive 

-ERROR: 0:84: 'triangles_adjacency' : cannot change previously set input primitive 

-ERROR: 0:116: 'gl_ViewportIndex' : undeclared identifier 

-ERROR: 0:117: 'gl_MaxViewports' : undeclared identifier 

-ERROR: 0:123: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad

-ERROR: 0:124: 'in' : type must be an array: nonArrayed

-ERROR: 0:128: 'sample' : Reserved word. 

-ERROR: 0:132: 'component' : not supported with this profile: es

-ERROR: 0:136: 'gl_MaxGeometryVaryingComponents' : undeclared identifier 

-ERROR: 0:137: 'gl_VerticesIn' : undeclared identifier 

-ERROR: 0:142: 'gl_PointSize' : required extension not requested: Possible extensions include:

-GL_EXT_geometry_point_size

-GL_OES_geometry_point_size

-ERROR: 0:143: 'gl_PointSize' : required extension not requested: Possible extensions include:

-GL_EXT_geometry_point_size

-GL_OES_geometry_point_size

-ERROR: 37 compilation errors.  No code generated.

-

-

-Shader version: 310

-Requested GL_EXT_geometry_shader

-Requested GL_EXT_shader_io_blocks

-Requested GL_OES_geometry_point_size

-invocations = 4

-max_vertices = 200

-input primitive = lines_adjacency

-output primitive = triangle_strip

-ERROR: node is still EOpNull!

-0:39  Function Definition: main( (global void)

-0:39    Function Parameters: 

-0:41    Sequence

-0:41      EmitVertex (global void)

-0:42      EndPrimitive (global void)

-0:43      Constant:

-0:43        0.000000

-0:44      Constant:

-0:44        0.000000

-0:46      move second child to first child (temp mediump 3-component vector of float)

-0:46        color: direct index for structure (layout(stream=0 ) out mediump 3-component vector of float)

-0:46          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})

-0:46          Constant:

-0:46            0 (const uint)

-0:46        color: direct index for structure (in mediump 3-component vector of float)

-0:46          direct index (temp block{in mediump 3-component vector of float color})

-0:46            'fromV' (in 4-element array of block{in mediump 3-component vector of float color})

-0:46            Constant:

-0:46              0 (const int)

-0:46          Constant:

-0:46            0 (const int)

-0:47      move second child to first child (temp float)

-0:47        Constant:

-0:47          0.000000

-0:48        Constant:

-0:48          0.000000

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        gl_Position: direct index for structure (layout(stream=0 ) gl_Position highp 4-component vector of float Position)

-0:49          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})

-0:49          Constant:

-0:49            0 (const uint)

-0:49        gl_Position: direct index for structure (in highp 4-component vector of float Position)

-0:49          direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:49            'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:49            Constant:

-0:49              0 (const int)

-0:49          Constant:

-0:49            0 (const int)

-0:51      move second child to first child (temp highp int)

-0:51        'gl_PrimitiveID' (layout(stream=0 ) out highp int PrimitiveID)

-0:51        'gl_PrimitiveIDIn' (in highp int PrimitiveID)

-0:52      move second child to first child (temp highp int)

-0:52        'gl_Layer' (layout(stream=0 ) out highp int Layer)

-0:52        Constant:

-0:52          2 (const int)

-0:63  Function Definition: foo(i1; (global void)

-0:63    Function Parameters: 

-0:63      'a' (in highp int)

-0:65    Sequence

-0:65      move second child to first child (temp mediump 4-component vector of float)

-0:65        a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)

-0:65          'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})

-0:65          Constant:

-0:65            0 (const int)

-0:65        Constant:

-0:65          1.000000

-0:65          1.000000

-0:65          1.000000

-0:65          1.000000

-0:114  Function Definition: fooe1( (global void)

-0:114    Function Parameters: 

-0:116    Sequence

-0:116      'gl_ViewportIndex' (temp float)

-0:117      'gl_MaxViewports' (temp float)

-0:118      Constant:

-0:118        4 (const int)

-0:119      Sequence

-0:119        move second child to first child (temp highp int)

-0:119          'inv' (temp highp int)

-0:119          'gl_InvocationID' (in highp int InvocationID)

-0:134  Function Definition: notHere( (global void)

-0:134    Function Parameters: 

-0:136    Sequence

-0:136      'gl_MaxGeometryVaryingComponents' (temp float)

-0:137      'gl_VerticesIn' (temp float)

-0:140  Function Definition: pointSize1( (global void)

-0:140    Function Parameters: 

-0:142    Sequence

-0:142      Sequence

-0:142        move second child to first child (temp highp float)

-0:142          'ps' (temp highp float)

-0:142          gl_PointSize: direct index for structure (in highp float PointSize)

-0:142            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:142              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:142              Constant:

-0:142                3 (const int)

-0:142            Constant:

-0:142              1 (const int)

-0:143      move second child to first child (temp highp float)

-0:143        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)

-0:143          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})

-0:143          Constant:

-0:143            1 (const uint)

-0:143        'ps' (temp highp float)

-0:148  Function Definition: pointSize2( (global void)

-0:148    Function Parameters: 

-0:150    Sequence

-0:150      Sequence

-0:150        move second child to first child (temp highp float)

-0:150          'ps' (temp highp float)

-0:150          gl_PointSize: direct index for structure (in highp float PointSize)

-0:150            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:150              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:150              Constant:

-0:150                3 (const int)

-0:150            Constant:

-0:150              1 (const int)

-0:151      move second child to first child (temp highp float)

-0:151        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)

-0:151          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})

-0:151          Constant:

-0:151            1 (const uint)

-0:151        'ps' (temp highp float)

-0:?   Linker Objects

-0:?     'fromV' (in 4-element array of block{in mediump 3-component vector of float color})

-0:?     'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)

-0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})

-0:?     'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:?     'ov4' (layout(stream=4 ) out mediump 4-component vector of float)

-0:?     'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})

-0:?     'badv4' (layout(stream=0 ) out mediump 4-component vector of float)

-0:?     'bad2v4' (in 4-element array of mediump 4-component vector of float)

-0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a})

-0:?     'outbi' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a, layout(stream=0 ) out highp int b, layout(stream=0 ) out highp int c})

-0:?     'insn' (in 4-element array of block{in highp int a15})

-0:?     'anon@2' (layout(stream=0 ) out block{layout(stream=0 ) out mediump float f15})

-0:?     'anon@3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})

-0:?     'summ' (const highp int)

-0:?       2752 (const int)

-0:?     'explArray' (in 4-element array of mediump 4-component vector of float)

-0:?     'explArrayBad' (in 5-element array of mediump 4-component vector of float)

-0:?     'nonArrayed' (in mediump 4-component vector of float)

-0:?     'myColor1' (layout(stream=0 ) flat out mediump 3-component vector of float)

-0:?     'myColor2' (layout(stream=0 ) centroid out mediump 3-component vector of float)

-0:?     'centr' (centroid in 4-element array of mediump 3-component vector of float)

-0:?     'perSampleColor' (layout(stream=0 ) sample out mediump 4-component vector of float)

-0:?     'comp' (layout(location=7 component=2 ) in 4-element array of mediump float)

-

-

-Linked geometry stage:

-

-

-Shader version: 310

-Requested GL_EXT_geometry_shader

-Requested GL_EXT_shader_io_blocks

-Requested GL_OES_geometry_point_size

-invocations = 4

-max_vertices = 200

-input primitive = lines_adjacency

-output primitive = triangle_strip

-ERROR: node is still EOpNull!

-0:39  Function Definition: main( (global void)

-0:39    Function Parameters: 

-0:41    Sequence

-0:41      EmitVertex (global void)

-0:42      EndPrimitive (global void)

-0:43      Constant:

-0:43        0.000000

-0:44      Constant:

-0:44        0.000000

-0:46      move second child to first child (temp mediump 3-component vector of float)

-0:46        color: direct index for structure (layout(stream=0 ) out mediump 3-component vector of float)

-0:46          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})

-0:46          Constant:

-0:46            0 (const uint)

-0:46        color: direct index for structure (in mediump 3-component vector of float)

-0:46          direct index (temp block{in mediump 3-component vector of float color})

-0:46            'fromV' (in 4-element array of block{in mediump 3-component vector of float color})

-0:46            Constant:

-0:46              0 (const int)

-0:46          Constant:

-0:46            0 (const int)

-0:47      move second child to first child (temp float)

-0:47        Constant:

-0:47          0.000000

-0:48        Constant:

-0:48          0.000000

-0:49      move second child to first child (temp highp 4-component vector of float)

-0:49        gl_Position: direct index for structure (layout(stream=0 ) gl_Position highp 4-component vector of float Position)

-0:49          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})

-0:49          Constant:

-0:49            0 (const uint)

-0:49        gl_Position: direct index for structure (in highp 4-component vector of float Position)

-0:49          direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:49            'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:49            Constant:

-0:49              0 (const int)

-0:49          Constant:

-0:49            0 (const int)

-0:51      move second child to first child (temp highp int)

-0:51        'gl_PrimitiveID' (layout(stream=0 ) out highp int PrimitiveID)

-0:51        'gl_PrimitiveIDIn' (in highp int PrimitiveID)

-0:52      move second child to first child (temp highp int)

-0:52        'gl_Layer' (layout(stream=0 ) out highp int Layer)

-0:52        Constant:

-0:52          2 (const int)

-0:63  Function Definition: foo(i1; (global void)

-0:63    Function Parameters: 

-0:63      'a' (in highp int)

-0:65    Sequence

-0:65      move second child to first child (temp mediump 4-component vector of float)

-0:65        a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)

-0:65          'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})

-0:65          Constant:

-0:65            0 (const int)

-0:65        Constant:

-0:65          1.000000

-0:65          1.000000

-0:65          1.000000

-0:65          1.000000

-0:114  Function Definition: fooe1( (global void)

-0:114    Function Parameters: 

-0:116    Sequence

-0:116      'gl_ViewportIndex' (temp float)

-0:117      'gl_MaxViewports' (temp float)

-0:118      Constant:

-0:118        4 (const int)

-0:119      Sequence

-0:119        move second child to first child (temp highp int)

-0:119          'inv' (temp highp int)

-0:119          'gl_InvocationID' (in highp int InvocationID)

-0:134  Function Definition: notHere( (global void)

-0:134    Function Parameters: 

-0:136    Sequence

-0:136      'gl_MaxGeometryVaryingComponents' (temp float)

-0:137      'gl_VerticesIn' (temp float)

-0:140  Function Definition: pointSize1( (global void)

-0:140    Function Parameters: 

-0:142    Sequence

-0:142      Sequence

-0:142        move second child to first child (temp highp float)

-0:142          'ps' (temp highp float)

-0:142          gl_PointSize: direct index for structure (in highp float PointSize)

-0:142            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:142              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:142              Constant:

-0:142                3 (const int)

-0:142            Constant:

-0:142              1 (const int)

-0:143      move second child to first child (temp highp float)

-0:143        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)

-0:143          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})

-0:143          Constant:

-0:143            1 (const uint)

-0:143        'ps' (temp highp float)

-0:148  Function Definition: pointSize2( (global void)

-0:148    Function Parameters: 

-0:150    Sequence

-0:150      Sequence

-0:150        move second child to first child (temp highp float)

-0:150          'ps' (temp highp float)

-0:150          gl_PointSize: direct index for structure (in highp float PointSize)

-0:150            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:150              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:150              Constant:

-0:150                3 (const int)

-0:150            Constant:

-0:150              1 (const int)

-0:151      move second child to first child (temp highp float)

-0:151        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)

-0:151          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})

-0:151          Constant:

-0:151            1 (const uint)

-0:151        'ps' (temp highp float)

-0:?   Linker Objects

-0:?     'fromV' (in 4-element array of block{in mediump 3-component vector of float color})

-0:?     'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)

-0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})

-0:?     'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:?     'ov4' (layout(stream=4 ) out mediump 4-component vector of float)

-0:?     'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})

-0:?     'badv4' (layout(stream=0 ) out mediump 4-component vector of float)

-0:?     'bad2v4' (in 4-element array of mediump 4-component vector of float)

-0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a})

-0:?     'outbi' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a, layout(stream=0 ) out highp int b, layout(stream=0 ) out highp int c})

-0:?     'insn' (in 4-element array of block{in highp int a15})

-0:?     'anon@2' (layout(stream=0 ) out block{layout(stream=0 ) out mediump float f15})

-0:?     'anon@3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})

-0:?     'summ' (const highp int)

-0:?       2752 (const int)

-0:?     'explArray' (in 4-element array of mediump 4-component vector of float)

-0:?     'explArrayBad' (in 5-element array of mediump 4-component vector of float)

-0:?     'nonArrayed' (in mediump 4-component vector of float)

-0:?     'myColor1' (layout(stream=0 ) flat out mediump 3-component vector of float)

-0:?     'myColor2' (layout(stream=0 ) centroid out mediump 3-component vector of float)

-0:?     'centr' (centroid in 4-element array of mediump 3-component vector of float)

-0:?     'perSampleColor' (layout(stream=0 ) sample out mediump 4-component vector of float)

-0:?     'comp' (layout(location=7 component=2 ) in 4-element array of mediump float)

-

+310.geom
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:29: 'fromVertex' : block instance name redefinition 
+ERROR: 0:33: 'fromVertex' : redefinition 
+ERROR: 0:35: 'fooC' : block instance name redefinition 
+ERROR: 0:43: 'EmitStreamVertex' : no matching overloaded function found 
+ERROR: 0:44: 'EndStreamPrimitive' : no matching overloaded function found 
+ERROR: 0:47: 'gl_ClipDistance' : undeclared identifier 
+ERROR: 0:47: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:48: 'gl_ClipDistance' : no such field in structure 
+ERROR: 0:48: 'expression' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:47: 'assign' :  l-value required (can't modify a const)
+ERROR: 0:55: 'selecting output stream' : not supported with this profile: es
+ERROR: 0:62: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices 
+ERROR: 0:62: 'max_vertices' : cannot change previously set layout value 
+ERROR: 0:63: 'max_vertices' : can only apply to a standalone qualifier 
+ERROR: 0:68: 'points' : cannot change previously set output primitive 
+ERROR: 0:69: 'points' : cannot change previously set output primitive 
+ERROR: 0:70: 'triangle_strip' : cannot apply to input 
+ERROR: 0:71: 'triangle_strip' : cannot apply to: uniform
+ERROR: 0:72: 'triangle_strip' : can only apply to a standalone qualifier 
+ERROR: 0:73: 'triangle_strip' : can only apply to a standalone qualifier 
+ERROR: 0:74: 'invocations' : can only apply to a standalone qualifier 
+ERROR: 0:76: 'invocations' : can only apply to a standalone qualifier 
+ERROR: 0:77: 'max_vertices' : can only apply to a standalone qualifier 
+ERROR: 0:78: 'triangle_strip' : can only apply to a standalone qualifier 
+ERROR: 0:81: 'lines' : cannot apply to 'out' 
+ERROR: 0:83: 'triangles' : cannot change previously set input primitive 
+ERROR: 0:84: 'triangles_adjacency' : cannot change previously set input primitive 
+ERROR: 0:116: 'gl_ViewportIndex' : undeclared identifier 
+ERROR: 0:117: 'gl_MaxViewports' : undeclared identifier 
+ERROR: 0:123: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad
+ERROR: 0:124: 'in' : type must be an array: nonArrayed
+ERROR: 0:128: 'sample' : Reserved word. 
+ERROR: 0:132: 'component' : not supported with this profile: es
+ERROR: 0:136: 'gl_MaxGeometryVaryingComponents' : undeclared identifier 
+ERROR: 0:137: 'gl_VerticesIn' : undeclared identifier 
+ERROR: 0:142: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_point_size
+GL_OES_geometry_point_size
+ERROR: 0:143: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_geometry_point_size
+GL_OES_geometry_point_size
+ERROR: 37 compilation errors.  No code generated.
+
+
+Shader version: 310
+Requested GL_EXT_geometry_shader
+Requested GL_EXT_shader_io_blocks
+Requested GL_OES_geometry_point_size
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:39  Function Definition: main( (global void)
+0:39    Function Parameters: 
+0:41    Sequence
+0:41      EmitVertex (global void)
+0:42      EndPrimitive (global void)
+0:43      Constant:
+0:43        0.000000
+0:44      Constant:
+0:44        0.000000
+0:46      move second child to first child (temp mediump 3-component vector of float)
+0:46        color: direct index for structure (layout(stream=0 ) out mediump 3-component vector of float)
+0:46          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:46          Constant:
+0:46            0 (const uint)
+0:46        color: direct index for structure (in mediump 3-component vector of float)
+0:46          direct index (temp block{in mediump 3-component vector of float color})
+0:46            'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:46            Constant:
+0:46              0 (const int)
+0:46          Constant:
+0:46            0 (const int)
+0:47      move second child to first child (temp float)
+0:47        Constant:
+0:47          0.000000
+0:48        Constant:
+0:48          0.000000
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        gl_Position: direct index for structure (layout(stream=0 ) gl_Position highp 4-component vector of float Position)
+0:49          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:49          Constant:
+0:49            0 (const uint)
+0:49        gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:49          direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49            'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49            Constant:
+0:49              0 (const int)
+0:49          Constant:
+0:49            0 (const int)
+0:51      move second child to first child (temp highp int)
+0:51        'gl_PrimitiveID' (layout(stream=0 ) out highp int PrimitiveID)
+0:51        'gl_PrimitiveIDIn' (in highp int PrimitiveID)
+0:52      move second child to first child (temp highp int)
+0:52        'gl_Layer' (layout(stream=0 ) out highp int Layer)
+0:52        Constant:
+0:52          2 (const int)
+0:63  Function Definition: foo(i1; (global void)
+0:63    Function Parameters: 
+0:63      'a' (in highp int)
+0:65    Sequence
+0:65      move second child to first child (temp mediump 4-component vector of float)
+0:65        a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)
+0:65          'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:65          Constant:
+0:65            0 (const int)
+0:65        Constant:
+0:65          1.000000
+0:65          1.000000
+0:65          1.000000
+0:65          1.000000
+0:114  Function Definition: fooe1( (global void)
+0:114    Function Parameters: 
+0:116    Sequence
+0:116      'gl_ViewportIndex' (temp float)
+0:117      'gl_MaxViewports' (temp float)
+0:118      Constant:
+0:118        4 (const int)
+0:119      Sequence
+0:119        move second child to first child (temp highp int)
+0:119          'inv' (temp highp int)
+0:119          'gl_InvocationID' (in highp int InvocationID)
+0:134  Function Definition: notHere( (global void)
+0:134    Function Parameters: 
+0:136    Sequence
+0:136      'gl_MaxGeometryVaryingComponents' (temp float)
+0:137      'gl_VerticesIn' (temp float)
+0:140  Function Definition: pointSize1( (global void)
+0:140    Function Parameters: 
+0:142    Sequence
+0:142      Sequence
+0:142        move second child to first child (temp highp float)
+0:142          'ps' (temp highp float)
+0:142          gl_PointSize: direct index for structure (in highp float PointSize)
+0:142            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142              Constant:
+0:142                3 (const int)
+0:142            Constant:
+0:142              1 (const int)
+0:143      move second child to first child (temp highp float)
+0:143        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:143          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:143          Constant:
+0:143            1 (const uint)
+0:143        'ps' (temp highp float)
+0:148  Function Definition: pointSize2( (global void)
+0:148    Function Parameters: 
+0:150    Sequence
+0:150      Sequence
+0:150        move second child to first child (temp highp float)
+0:150          'ps' (temp highp float)
+0:150          gl_PointSize: direct index for structure (in highp float PointSize)
+0:150            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150              Constant:
+0:150                3 (const int)
+0:150            Constant:
+0:150              1 (const int)
+0:151      move second child to first child (temp highp float)
+0:151        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:151          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:151          Constant:
+0:151            1 (const uint)
+0:151        'ps' (temp highp float)
+0:?   Linker Objects
+0:?     'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:?     'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)
+0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:?     'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:?     'ov4' (layout(stream=4 ) out mediump 4-component vector of float)
+0:?     'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:?     'badv4' (layout(stream=0 ) out mediump 4-component vector of float)
+0:?     'bad2v4' (in 4-element array of mediump 4-component vector of float)
+0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a})
+0:?     'outbi' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a, layout(stream=0 ) out highp int b, layout(stream=0 ) out highp int c})
+0:?     'insn' (in 4-element array of block{in highp int a15})
+0:?     'anon@2' (layout(stream=0 ) out block{layout(stream=0 ) out mediump float f15})
+0:?     'anon@3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:?     'summ' (const highp int)
+0:?       2752 (const int)
+0:?     'explArray' (in 4-element array of mediump 4-component vector of float)
+0:?     'explArrayBad' (in 5-element array of mediump 4-component vector of float)
+0:?     'nonArrayed' (in mediump 4-component vector of float)
+0:?     'myColor1' (layout(stream=0 ) flat out mediump 3-component vector of float)
+0:?     'myColor2' (layout(stream=0 ) centroid out mediump 3-component vector of float)
+0:?     'centr' (centroid in 4-element array of mediump 3-component vector of float)
+0:?     'perSampleColor' (layout(stream=0 ) sample out mediump 4-component vector of float)
+0:?     'comp' (layout(location=7 component=2 ) in 4-element array of mediump float)
+
+
+Linked geometry stage:
+
+
+Shader version: 310
+Requested GL_EXT_geometry_shader
+Requested GL_EXT_shader_io_blocks
+Requested GL_OES_geometry_point_size
+invocations = 4
+max_vertices = 200
+input primitive = lines_adjacency
+output primitive = triangle_strip
+ERROR: node is still EOpNull!
+0:39  Function Definition: main( (global void)
+0:39    Function Parameters: 
+0:41    Sequence
+0:41      EmitVertex (global void)
+0:42      EndPrimitive (global void)
+0:43      Constant:
+0:43        0.000000
+0:44      Constant:
+0:44        0.000000
+0:46      move second child to first child (temp mediump 3-component vector of float)
+0:46        color: direct index for structure (layout(stream=0 ) out mediump 3-component vector of float)
+0:46          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:46          Constant:
+0:46            0 (const uint)
+0:46        color: direct index for structure (in mediump 3-component vector of float)
+0:46          direct index (temp block{in mediump 3-component vector of float color})
+0:46            'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:46            Constant:
+0:46              0 (const int)
+0:46          Constant:
+0:46            0 (const int)
+0:47      move second child to first child (temp float)
+0:47        Constant:
+0:47          0.000000
+0:48        Constant:
+0:48          0.000000
+0:49      move second child to first child (temp highp 4-component vector of float)
+0:49        gl_Position: direct index for structure (layout(stream=0 ) gl_Position highp 4-component vector of float Position)
+0:49          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:49          Constant:
+0:49            0 (const uint)
+0:49        gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:49          direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49            'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:49            Constant:
+0:49              0 (const int)
+0:49          Constant:
+0:49            0 (const int)
+0:51      move second child to first child (temp highp int)
+0:51        'gl_PrimitiveID' (layout(stream=0 ) out highp int PrimitiveID)
+0:51        'gl_PrimitiveIDIn' (in highp int PrimitiveID)
+0:52      move second child to first child (temp highp int)
+0:52        'gl_Layer' (layout(stream=0 ) out highp int Layer)
+0:52        Constant:
+0:52          2 (const int)
+0:63  Function Definition: foo(i1; (global void)
+0:63    Function Parameters: 
+0:63      'a' (in highp int)
+0:65    Sequence
+0:65      move second child to first child (temp mediump 4-component vector of float)
+0:65        a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float)
+0:65          'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:65          Constant:
+0:65            0 (const int)
+0:65        Constant:
+0:65          1.000000
+0:65          1.000000
+0:65          1.000000
+0:65          1.000000
+0:114  Function Definition: fooe1( (global void)
+0:114    Function Parameters: 
+0:116    Sequence
+0:116      'gl_ViewportIndex' (temp float)
+0:117      'gl_MaxViewports' (temp float)
+0:118      Constant:
+0:118        4 (const int)
+0:119      Sequence
+0:119        move second child to first child (temp highp int)
+0:119          'inv' (temp highp int)
+0:119          'gl_InvocationID' (in highp int InvocationID)
+0:134  Function Definition: notHere( (global void)
+0:134    Function Parameters: 
+0:136    Sequence
+0:136      'gl_MaxGeometryVaryingComponents' (temp float)
+0:137      'gl_VerticesIn' (temp float)
+0:140  Function Definition: pointSize1( (global void)
+0:140    Function Parameters: 
+0:142    Sequence
+0:142      Sequence
+0:142        move second child to first child (temp highp float)
+0:142          'ps' (temp highp float)
+0:142          gl_PointSize: direct index for structure (in highp float PointSize)
+0:142            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:142              Constant:
+0:142                3 (const int)
+0:142            Constant:
+0:142              1 (const int)
+0:143      move second child to first child (temp highp float)
+0:143        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:143          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:143          Constant:
+0:143            1 (const uint)
+0:143        'ps' (temp highp float)
+0:148  Function Definition: pointSize2( (global void)
+0:148    Function Parameters: 
+0:150    Sequence
+0:150      Sequence
+0:150        move second child to first child (temp highp float)
+0:150          'ps' (temp highp float)
+0:150          gl_PointSize: direct index for structure (in highp float PointSize)
+0:150            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150              'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:150              Constant:
+0:150                3 (const int)
+0:150            Constant:
+0:150              1 (const int)
+0:151      move second child to first child (temp highp float)
+0:151        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize)
+0:151          'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize})
+0:151          Constant:
+0:151            1 (const uint)
+0:151        'ps' (temp highp float)
+0:?   Linker Objects
+0:?     'fromV' (in 4-element array of block{in mediump 3-component vector of float color})
+0:?     'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float)
+0:?     'toF' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 3-component vector of float color})
+0:?     'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:?     'ov4' (layout(stream=4 ) out mediump 4-component vector of float)
+0:?     'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a})
+0:?     'badv4' (layout(stream=0 ) out mediump 4-component vector of float)
+0:?     'bad2v4' (in 4-element array of mediump 4-component vector of float)
+0:?     'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a})
+0:?     'outbi' (layout(stream=0 ) out block{layout(stream=0 ) out highp int a, layout(stream=0 ) out highp int b, layout(stream=0 ) out highp int c})
+0:?     'insn' (in 4-element array of block{in highp int a15})
+0:?     'anon@2' (layout(stream=0 ) out block{layout(stream=0 ) out mediump float f15})
+0:?     'anon@3' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b15})
+0:?     'summ' (const highp int)
+0:?       2752 (const int)
+0:?     'explArray' (in 4-element array of mediump 4-component vector of float)
+0:?     'explArrayBad' (in 5-element array of mediump 4-component vector of float)
+0:?     'nonArrayed' (in mediump 4-component vector of float)
+0:?     'myColor1' (layout(stream=0 ) flat out mediump 3-component vector of float)
+0:?     'myColor2' (layout(stream=0 ) centroid out mediump 3-component vector of float)
+0:?     'centr' (centroid in 4-element array of mediump 3-component vector of float)
+0:?     'perSampleColor' (layout(stream=0 ) sample out mediump 4-component vector of float)
+0:?     'comp' (layout(location=7 component=2 ) in 4-element array of mediump float)
+
diff --git a/Test/baseResults/310.tesc.out b/Test/baseResults/310.tesc.out
index a498674..c572c09 100644
--- a/Test/baseResults/310.tesc.out
+++ b/Test/baseResults/310.tesc.out
@@ -1,708 +1,708 @@
-310.tesc

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:12: 'patch' : can only use on output in tessellation-control shader 

-ERROR: 0:26: 'gl_PointSize' : required extension not requested: Possible extensions include:

-GL_EXT_tessellation_point_size

-GL_OES_tessellation_point_size

-ERROR: 0:27: 'gl_ClipDistance' : no such field in structure 

-ERROR: 0:27: 'expression' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:34: 'gl_PointSize' : required extension not requested: Possible extensions include:

-GL_EXT_tessellation_point_size

-GL_OES_tessellation_point_size

-ERROR: 0:35: 'gl_ClipDistance' : no such field in structure 

-ERROR: 0:35: 'expression' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:35: 'assign' :  l-value required (can't modify a const)

-ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:43: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:48: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:53: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:56: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:63: '' : tessellation control barrier() cannot be placed after a return from main() 

-ERROR: 0:66: 'vertices' : can only apply to 'out' 

-ERROR: 0:67: 'vertices' : cannot change previously set layout value 

-ERROR: 0:71: '[' :  array index out of range '4'

-ERROR: 0:73: '' : tessellation control barrier() must be in main() 

-ERROR: 0:76: 'in' : type must be an array: ina

-ERROR: 0:78: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:80: '' : array size required 

-ERROR: 0:86: 'location' : overlapping use of location 4

-ERROR: 0:90: 'location' : overlapping use of location 4

-ERROR: 0:94: 'precise' : Reserved word. 

-ERROR: 0:95: 'fma' : required extension not requested: Possible extensions include:

-GL_EXT_gpu_shader5

-GL_OES_gpu_shader5

-ERROR: 0:104: 'sample' : Reserved word. 

-ERROR: 0:106: 'vertices' : can only apply to a standalone qualifier 

-ERROR: 0:107: 'vertices' : inconsistent output number of vertices for array size of misSized

-ERROR: 0:133: 'gl_BoundingBoxOES' : required extension not requested: Possible extensions include:

-GL_EXT_primitive_bounding_box

-GL_OES_primitive_bounding_box

-ERROR: 0:142: '[' :  array index out of range '2'

-ERROR: 0:145: '' : array size required 

-ERROR: 0:161: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID 

-ERROR: 0:162: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID 

-ERROR: 0:165: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID 

-ERROR: 37 compilation errors.  No code generated.

-

-

-Shader version: 310

-Requested GL_ARB_separate_shader_objects

-Requested GL_OES_gpu_shader5

-Requested GL_OES_primitive_bounding_box

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_tessellation_point_size

-Requested GL_OES_tessellation_shader

-vertices = 4

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Barrier (global void)

-0:19      Sequence

-0:19        move second child to first child (temp highp int)

-0:19          'a' (temp highp int)

-0:19          Constant:

-0:19            5392 (const int)

-0:25      Sequence

-0:25        move second child to first child (temp highp 4-component vector of float)

-0:25          'p' (temp highp 4-component vector of float)

-0:25          gl_Position: direct index for structure (in highp 4-component vector of float Position)

-0:25            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:25              Constant:

-0:25                1 (const int)

-0:25            Constant:

-0:25              0 (const int)

-0:26      Sequence

-0:26        move second child to first child (temp highp float)

-0:26          'ps' (temp highp float)

-0:26          gl_PointSize: direct index for structure (in highp float PointSize)

-0:26            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:26              Constant:

-0:26                1 (const int)

-0:26            Constant:

-0:26              1 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp highp float)

-0:27          'cd' (temp highp float)

-0:27          Constant:

-0:27            0.000000

-0:29      Sequence

-0:29        move second child to first child (temp highp int)

-0:29          'pvi' (temp highp int)

-0:29          'gl_PatchVerticesIn' (in highp int PatchVertices)

-0:30      Sequence

-0:30        move second child to first child (temp highp int)

-0:30          'pid' (temp highp int)

-0:30          'gl_PrimitiveID' (in highp int PrimitiveID)

-0:31      Sequence

-0:31        move second child to first child (temp highp int)

-0:31          'iid' (temp highp int)

-0:31          'gl_InvocationID' (in highp int InvocationID)

-0:33      move second child to first child (temp highp 4-component vector of float)

-0:33        gl_Position: direct index for structure (out highp 4-component vector of float Position)

-0:33          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:33            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:33            'gl_InvocationID' (in highp int InvocationID)

-0:33          Constant:

-0:33            0 (const int)

-0:33        'p' (temp highp 4-component vector of float)

-0:34      move second child to first child (temp highp float)

-0:34        gl_PointSize: direct index for structure (out highp float PointSize)

-0:34          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:34            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:34            'gl_InvocationID' (in highp int InvocationID)

-0:34          Constant:

-0:34            1 (const int)

-0:34        'ps' (temp highp float)

-0:35      move second child to first child (temp highp float)

-0:35        Constant:

-0:35          0.000000

-0:35        'cd' (temp highp float)

-0:37      move second child to first child (temp highp float)

-0:37        direct index (patch temp highp float TessLevelOuter)

-0:37          'gl_TessLevelOuter' (patch out 4-element array of highp float TessLevelOuter)

-0:37          Constant:

-0:37            3 (const int)

-0:37        Constant:

-0:37          3.200000

-0:38      move second child to first child (temp highp float)

-0:38        direct index (patch temp highp float TessLevelInner)

-0:38          'gl_TessLevelInner' (patch out 2-element array of highp float TessLevelInner)

-0:38          Constant:

-0:38            1 (const int)

-0:38        Constant:

-0:38          1.300000

-0:40      Test condition and select (temp void)

-0:40        Condition

-0:40        Compare Greater Than (temp bool)

-0:40          'a' (temp highp int)

-0:40          Constant:

-0:40            10 (const int)

-0:40        true case

-0:41        Barrier (global void)

-0:40        false case

-0:43        Barrier (global void)

-0:45      Barrier (global void)

-0:49      Loop with condition not tested first

-0:49        Loop Condition

-0:49        Compare Greater Than (temp bool)

-0:49          'a' (temp highp int)

-0:49          Constant:

-0:49            10 (const int)

-0:49        Loop Body

-0:48        Sequence

-0:48          Barrier (global void)

-0:51      switch

-0:51      condition

-0:51        'a' (temp highp int)

-0:51      body

-0:51        Sequence

-0:52          default: 

-0:?           Sequence

-0:53            Barrier (global void)

-0:54            Branch: Break

-0:56      Test condition and select (temp highp int)

-0:56        Condition

-0:56        Compare Less Than (temp bool)

-0:56          'a' (temp highp int)

-0:56          Constant:

-0:56            12 (const int)

-0:56        true case

-0:56        'a' (temp highp int)

-0:56        false case

-0:56        Comma (temp highp int)

-0:56          Barrier (global void)

-0:56          'a' (temp highp int)

-0:58      Sequence

-0:58        Barrier (global void)

-0:61      Branch: Return

-0:63      Barrier (global void)

-0:69  Function Definition: foo( (global void)

-0:69    Function Parameters: 

-0:71    Sequence

-0:71      gl_Position: direct index for structure (out highp 4-component vector of float Position)

-0:71        direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:71          'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:71          Constant:

-0:71            4 (const int)

-0:71        Constant:

-0:71          0 (const int)

-0:73      Barrier (global void)

-0:92  Function Definition: foop( (global void)

-0:92    Function Parameters: 

-0:?     Sequence

-0:95      move second child to first child (temp highp float)

-0:95        'd' (temp highp float)

-0:95        fma (global highp float)

-0:95          'd' (temp highp float)

-0:95          'd' (temp highp float)

-0:95          'd' (temp highp float)

-0:112  Function Definition: pointSize2( (global void)

-0:112    Function Parameters: 

-0:114    Sequence

-0:114      Sequence

-0:114        move second child to first child (temp highp float)

-0:114          'ps' (temp highp float)

-0:114          gl_PointSize: direct index for structure (in highp float PointSize)

-0:114            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:114              Constant:

-0:114                1 (const int)

-0:114            Constant:

-0:114              1 (const int)

-0:115      move second child to first child (temp highp float)

-0:115        gl_PointSize: direct index for structure (out highp float PointSize)

-0:115          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:115            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:115            'gl_InvocationID' (in highp int InvocationID)

-0:115          Constant:

-0:115            1 (const int)

-0:115        'ps' (temp highp float)

-0:122  Function Definition: goodfoop( (global void)

-0:122    Function Parameters: 

-0:?     Sequence

-0:126      multiply second child into first child (temp highp 3-component vector of float)

-0:126        'pv3' (temp highp 3-component vector of float)

-0:126        'pv3' (temp highp 3-component vector of float)

-0:127      move second child to first child (temp highp 3-component vector of float)

-0:127        'pv3' (temp highp 3-component vector of float)

-0:127        fma (global highp 3-component vector of float)

-0:127          'pv3' (temp highp 3-component vector of float)

-0:127          'pv3' (temp highp 3-component vector of float)

-0:127          'pv3' (temp highp 3-component vector of float)

-0:128      move second child to first child (temp highp float)

-0:128        'd' (temp highp float)

-0:128        fma (global highp float)

-0:128          'd' (temp highp float)

-0:128          'd' (temp highp float)

-0:128          'd' (temp highp float)

-0:131  Function Definition: bbBad( (global void)

-0:131    Function Parameters: 

-0:133    Sequence

-0:133      'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:138  Function Definition: bb( (global void)

-0:138    Function Parameters: 

-0:140    Sequence

-0:140      move second child to first child (temp highp 4-component vector of float)

-0:140        direct index (patch temp highp 4-component vector of float BoundingBox)

-0:140          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:140          Constant:

-0:140            0 (const int)

-0:140        Constant:

-0:140          0.000000

-0:140          0.000000

-0:140          0.000000

-0:140          0.000000

-0:141      move second child to first child (temp highp 4-component vector of float)

-0:141        direct index (patch temp highp 4-component vector of float BoundingBox)

-0:141          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:141          Constant:

-0:141            1 (const int)

-0:141        Constant:

-0:141          1.000000

-0:141          1.000000

-0:141          1.000000

-0:141          1.000000

-0:142      move second child to first child (temp highp 4-component vector of float)

-0:142        direct index (patch temp highp 4-component vector of float BoundingBox)

-0:142          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:142          Constant:

-0:142            2 (const int)

-0:142        Constant:

-0:142          2.000000

-0:142          2.000000

-0:142          2.000000

-0:142          2.000000

-0:153  Function Definition: outputtingOutparam(i1; (global void)

-0:153    Function Parameters: 

-0:153      'a' (out highp int)

-0:155    Sequence

-0:155      move second child to first child (temp highp int)

-0:155        'a' (out highp int)

-0:155        Constant:

-0:155          2 (const int)

-0:158  Function Definition: outputting( (global void)

-0:158    Function Parameters: 

-0:160    Sequence

-0:160      move second child to first child (temp highp int)

-0:160        indirect index (temp highp int)

-0:160          'outa' (out 4-element array of highp int)

-0:160          'gl_InvocationID' (in highp int InvocationID)

-0:160        Constant:

-0:160          2 (const int)

-0:161      move second child to first child (temp highp int)

-0:161        direct index (temp highp int)

-0:161          'outa' (out 4-element array of highp int)

-0:161          Constant:

-0:161            1 (const int)

-0:161        Constant:

-0:161          2 (const int)

-0:162      move second child to first child (temp highp 4-component vector of float)

-0:162        gl_Position: direct index for structure (out highp 4-component vector of float Position)

-0:162          direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:162            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:162            Constant:

-0:162              0 (const int)

-0:162          Constant:

-0:162            0 (const int)

-0:162        Constant:

-0:162          1.000000

-0:162          1.000000

-0:162          1.000000

-0:162          1.000000

-0:163      direct index (temp highp int)

-0:163        'outa' (out 4-element array of highp int)

-0:163        Constant:

-0:163          1 (const int)

-0:164      direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:164        'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:164        Constant:

-0:164          0 (const int)

-0:165      Function Call: outputtingOutparam(i1; (global void)

-0:165        direct index (temp highp int)

-0:165          'outa' (out 4-element array of highp int)

-0:165          Constant:

-0:165            0 (const int)

-0:166      Function Call: outputtingOutparam(i1; (global void)

-0:166        indirect index (temp highp int)

-0:166          'outa' (out 4-element array of highp int)

-0:166          'gl_InvocationID' (in highp int InvocationID)

-0:167      move second child to first child (temp highp float)

-0:167        f: direct index for structure (out highp float)

-0:167          direct index (patch temp block{out highp float f})

-0:167            'patchIName' (patch out 4-element array of block{out highp float f})

-0:167            Constant:

-0:167              1 (const int)

-0:167          Constant:

-0:167            0 (const int)

-0:167        Constant:

-0:167          3.140000

-0:168      move second child to first child (temp highp int)

-0:168        indirect index (temp highp int)

-0:168          'outa' (out 4-element array of highp int)

-0:168          'gl_InvocationID' (in highp int InvocationID)

-0:168        Constant:

-0:168          2 (const int)

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:?     'outa' (out 4-element array of highp int)

-0:?     'patchIn' (patch in highp 4-component vector of float)

-0:?     'patchOut' (patch out highp 4-component vector of float)

-0:?     'ina' (in highp 2-component vector of float)

-0:?     'inb' (in 32-element array of highp 2-component vector of float)

-0:?     'inc' (in 32-element array of highp 2-component vector of float)

-0:?     'ind' (in 32-element array of highp 2-component vector of float)

-0:?     'implA' (patch out implicitly-sized array of highp float)

-0:?     'ivla' (layout(location=3 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlb' (layout(location=4 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlc' (layout(location=4 ) in 32-element array of highp 4-component vector of float)

-0:?     'ovla' (layout(location=3 ) out 4-element array of highp 4-component vector of float)

-0:?     'ovlb' (layout(location=4 ) out 4-element array of highp 4-component vector of float)

-0:?     'ovlc' (layout(location=4 ) out 4-element array of highp 4-component vector of float)

-0:?     'pinbi' (patch out block{out highp int a})

-0:?     'myColor2' (centroid out 4-element array of highp 3-component vector of float)

-0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)

-0:?     'perSampleColor' (sample out 4-element array of highp 4-component vector of float)

-0:?     'badlay' (out 4-element array of highp float)

-0:?     'misSized' (out 5-element array of highp float)

-0:?     'okaySize' (out 4-element array of highp float)

-0:?     'pv3' (temp highp 3-component vector of float)

-0:?     'badpatchIName' (patch out implicitly-sized array of block{out highp float f})

-0:?     'patchIName' (patch out 4-element array of block{out highp float f})

-

-

-Linked tessellation control stage:

-

-

-Shader version: 310

-Requested GL_ARB_separate_shader_objects

-Requested GL_OES_gpu_shader5

-Requested GL_OES_primitive_bounding_box

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_tessellation_point_size

-Requested GL_OES_tessellation_shader

-vertices = 4

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Barrier (global void)

-0:19      Sequence

-0:19        move second child to first child (temp highp int)

-0:19          'a' (temp highp int)

-0:19          Constant:

-0:19            5392 (const int)

-0:25      Sequence

-0:25        move second child to first child (temp highp 4-component vector of float)

-0:25          'p' (temp highp 4-component vector of float)

-0:25          gl_Position: direct index for structure (in highp 4-component vector of float Position)

-0:25            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:25              Constant:

-0:25                1 (const int)

-0:25            Constant:

-0:25              0 (const int)

-0:26      Sequence

-0:26        move second child to first child (temp highp float)

-0:26          'ps' (temp highp float)

-0:26          gl_PointSize: direct index for structure (in highp float PointSize)

-0:26            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:26              Constant:

-0:26                1 (const int)

-0:26            Constant:

-0:26              1 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp highp float)

-0:27          'cd' (temp highp float)

-0:27          Constant:

-0:27            0.000000

-0:29      Sequence

-0:29        move second child to first child (temp highp int)

-0:29          'pvi' (temp highp int)

-0:29          'gl_PatchVerticesIn' (in highp int PatchVertices)

-0:30      Sequence

-0:30        move second child to first child (temp highp int)

-0:30          'pid' (temp highp int)

-0:30          'gl_PrimitiveID' (in highp int PrimitiveID)

-0:31      Sequence

-0:31        move second child to first child (temp highp int)

-0:31          'iid' (temp highp int)

-0:31          'gl_InvocationID' (in highp int InvocationID)

-0:33      move second child to first child (temp highp 4-component vector of float)

-0:33        gl_Position: direct index for structure (out highp 4-component vector of float Position)

-0:33          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:33            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:33            'gl_InvocationID' (in highp int InvocationID)

-0:33          Constant:

-0:33            0 (const int)

-0:33        'p' (temp highp 4-component vector of float)

-0:34      move second child to first child (temp highp float)

-0:34        gl_PointSize: direct index for structure (out highp float PointSize)

-0:34          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:34            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:34            'gl_InvocationID' (in highp int InvocationID)

-0:34          Constant:

-0:34            1 (const int)

-0:34        'ps' (temp highp float)

-0:35      move second child to first child (temp highp float)

-0:35        Constant:

-0:35          0.000000

-0:35        'cd' (temp highp float)

-0:37      move second child to first child (temp highp float)

-0:37        direct index (patch temp highp float TessLevelOuter)

-0:37          'gl_TessLevelOuter' (patch out 4-element array of highp float TessLevelOuter)

-0:37          Constant:

-0:37            3 (const int)

-0:37        Constant:

-0:37          3.200000

-0:38      move second child to first child (temp highp float)

-0:38        direct index (patch temp highp float TessLevelInner)

-0:38          'gl_TessLevelInner' (patch out 2-element array of highp float TessLevelInner)

-0:38          Constant:

-0:38            1 (const int)

-0:38        Constant:

-0:38          1.300000

-0:40      Test condition and select (temp void)

-0:40        Condition

-0:40        Compare Greater Than (temp bool)

-0:40          'a' (temp highp int)

-0:40          Constant:

-0:40            10 (const int)

-0:40        true case

-0:41        Barrier (global void)

-0:40        false case

-0:43        Barrier (global void)

-0:45      Barrier (global void)

-0:49      Loop with condition not tested first

-0:49        Loop Condition

-0:49        Compare Greater Than (temp bool)

-0:49          'a' (temp highp int)

-0:49          Constant:

-0:49            10 (const int)

-0:49        Loop Body

-0:48        Sequence

-0:48          Barrier (global void)

-0:51      switch

-0:51      condition

-0:51        'a' (temp highp int)

-0:51      body

-0:51        Sequence

-0:52          default: 

-0:?           Sequence

-0:53            Barrier (global void)

-0:54            Branch: Break

-0:56      Test condition and select (temp highp int)

-0:56        Condition

-0:56        Compare Less Than (temp bool)

-0:56          'a' (temp highp int)

-0:56          Constant:

-0:56            12 (const int)

-0:56        true case

-0:56        'a' (temp highp int)

-0:56        false case

-0:56        Comma (temp highp int)

-0:56          Barrier (global void)

-0:56          'a' (temp highp int)

-0:58      Sequence

-0:58        Barrier (global void)

-0:61      Branch: Return

-0:63      Barrier (global void)

-0:69  Function Definition: foo( (global void)

-0:69    Function Parameters: 

-0:71    Sequence

-0:71      gl_Position: direct index for structure (out highp 4-component vector of float Position)

-0:71        direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:71          'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:71          Constant:

-0:71            4 (const int)

-0:71        Constant:

-0:71          0 (const int)

-0:73      Barrier (global void)

-0:92  Function Definition: foop( (global void)

-0:92    Function Parameters: 

-0:?     Sequence

-0:95      move second child to first child (temp highp float)

-0:95        'd' (temp highp float)

-0:95        fma (global highp float)

-0:95          'd' (temp highp float)

-0:95          'd' (temp highp float)

-0:95          'd' (temp highp float)

-0:112  Function Definition: pointSize2( (global void)

-0:112    Function Parameters: 

-0:114    Sequence

-0:114      Sequence

-0:114        move second child to first child (temp highp float)

-0:114          'ps' (temp highp float)

-0:114          gl_PointSize: direct index for structure (in highp float PointSize)

-0:114            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:114              Constant:

-0:114                1 (const int)

-0:114            Constant:

-0:114              1 (const int)

-0:115      move second child to first child (temp highp float)

-0:115        gl_PointSize: direct index for structure (out highp float PointSize)

-0:115          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:115            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:115            'gl_InvocationID' (in highp int InvocationID)

-0:115          Constant:

-0:115            1 (const int)

-0:115        'ps' (temp highp float)

-0:122  Function Definition: goodfoop( (global void)

-0:122    Function Parameters: 

-0:?     Sequence

-0:126      multiply second child into first child (temp highp 3-component vector of float)

-0:126        'pv3' (temp highp 3-component vector of float)

-0:126        'pv3' (temp highp 3-component vector of float)

-0:127      move second child to first child (temp highp 3-component vector of float)

-0:127        'pv3' (temp highp 3-component vector of float)

-0:127        fma (global highp 3-component vector of float)

-0:127          'pv3' (temp highp 3-component vector of float)

-0:127          'pv3' (temp highp 3-component vector of float)

-0:127          'pv3' (temp highp 3-component vector of float)

-0:128      move second child to first child (temp highp float)

-0:128        'd' (temp highp float)

-0:128        fma (global highp float)

-0:128          'd' (temp highp float)

-0:128          'd' (temp highp float)

-0:128          'd' (temp highp float)

-0:131  Function Definition: bbBad( (global void)

-0:131    Function Parameters: 

-0:133    Sequence

-0:133      'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:138  Function Definition: bb( (global void)

-0:138    Function Parameters: 

-0:140    Sequence

-0:140      move second child to first child (temp highp 4-component vector of float)

-0:140        direct index (patch temp highp 4-component vector of float BoundingBox)

-0:140          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:140          Constant:

-0:140            0 (const int)

-0:140        Constant:

-0:140          0.000000

-0:140          0.000000

-0:140          0.000000

-0:140          0.000000

-0:141      move second child to first child (temp highp 4-component vector of float)

-0:141        direct index (patch temp highp 4-component vector of float BoundingBox)

-0:141          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:141          Constant:

-0:141            1 (const int)

-0:141        Constant:

-0:141          1.000000

-0:141          1.000000

-0:141          1.000000

-0:141          1.000000

-0:142      move second child to first child (temp highp 4-component vector of float)

-0:142        direct index (patch temp highp 4-component vector of float BoundingBox)

-0:142          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)

-0:142          Constant:

-0:142            2 (const int)

-0:142        Constant:

-0:142          2.000000

-0:142          2.000000

-0:142          2.000000

-0:142          2.000000

-0:153  Function Definition: outputtingOutparam(i1; (global void)

-0:153    Function Parameters: 

-0:153      'a' (out highp int)

-0:155    Sequence

-0:155      move second child to first child (temp highp int)

-0:155        'a' (out highp int)

-0:155        Constant:

-0:155          2 (const int)

-0:158  Function Definition: outputting( (global void)

-0:158    Function Parameters: 

-0:160    Sequence

-0:160      move second child to first child (temp highp int)

-0:160        indirect index (temp highp int)

-0:160          'outa' (out 4-element array of highp int)

-0:160          'gl_InvocationID' (in highp int InvocationID)

-0:160        Constant:

-0:160          2 (const int)

-0:161      move second child to first child (temp highp int)

-0:161        direct index (temp highp int)

-0:161          'outa' (out 4-element array of highp int)

-0:161          Constant:

-0:161            1 (const int)

-0:161        Constant:

-0:161          2 (const int)

-0:162      move second child to first child (temp highp 4-component vector of float)

-0:162        gl_Position: direct index for structure (out highp 4-component vector of float Position)

-0:162          direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:162            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:162            Constant:

-0:162              0 (const int)

-0:162          Constant:

-0:162            0 (const int)

-0:162        Constant:

-0:162          1.000000

-0:162          1.000000

-0:162          1.000000

-0:162          1.000000

-0:163      direct index (temp highp int)

-0:163        'outa' (out 4-element array of highp int)

-0:163        Constant:

-0:163          1 (const int)

-0:164      direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:164        'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:164        Constant:

-0:164          0 (const int)

-0:165      Function Call: outputtingOutparam(i1; (global void)

-0:165        direct index (temp highp int)

-0:165          'outa' (out 4-element array of highp int)

-0:165          Constant:

-0:165            0 (const int)

-0:166      Function Call: outputtingOutparam(i1; (global void)

-0:166        indirect index (temp highp int)

-0:166          'outa' (out 4-element array of highp int)

-0:166          'gl_InvocationID' (in highp int InvocationID)

-0:167      move second child to first child (temp highp float)

-0:167        f: direct index for structure (out highp float)

-0:167          direct index (patch temp block{out highp float f})

-0:167            'patchIName' (patch out 4-element array of block{out highp float f})

-0:167            Constant:

-0:167              1 (const int)

-0:167          Constant:

-0:167            0 (const int)

-0:167        Constant:

-0:167          3.140000

-0:168      move second child to first child (temp highp int)

-0:168        indirect index (temp highp int)

-0:168          'outa' (out 4-element array of highp int)

-0:168          'gl_InvocationID' (in highp int InvocationID)

-0:168        Constant:

-0:168          2 (const int)

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})

-0:?     'outa' (out 4-element array of highp int)

-0:?     'patchIn' (patch in highp 4-component vector of float)

-0:?     'patchOut' (patch out highp 4-component vector of float)

-0:?     'ina' (in highp 2-component vector of float)

-0:?     'inb' (in 32-element array of highp 2-component vector of float)

-0:?     'inc' (in 32-element array of highp 2-component vector of float)

-0:?     'ind' (in 32-element array of highp 2-component vector of float)

-0:?     'implA' (patch out 1-element array of highp float)

-0:?     'ivla' (layout(location=3 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlb' (layout(location=4 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlc' (layout(location=4 ) in 32-element array of highp 4-component vector of float)

-0:?     'ovla' (layout(location=3 ) out 4-element array of highp 4-component vector of float)

-0:?     'ovlb' (layout(location=4 ) out 4-element array of highp 4-component vector of float)

-0:?     'ovlc' (layout(location=4 ) out 4-element array of highp 4-component vector of float)

-0:?     'pinbi' (patch out block{out highp int a})

-0:?     'myColor2' (centroid out 4-element array of highp 3-component vector of float)

-0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)

-0:?     'perSampleColor' (sample out 4-element array of highp 4-component vector of float)

-0:?     'badlay' (out 4-element array of highp float)

-0:?     'misSized' (out 5-element array of highp float)

-0:?     'okaySize' (out 4-element array of highp float)

-0:?     'pv3' (temp highp 3-component vector of float)

-0:?     'badpatchIName' (patch out 1-element array of block{out highp float f})

-0:?     'patchIName' (patch out 4-element array of block{out highp float f})

-

+310.tesc
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:12: 'patch' : can only use on output in tessellation-control shader 
+ERROR: 0:26: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:27: 'gl_ClipDistance' : no such field in structure 
+ERROR: 0:27: 'expression' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:34: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:35: 'gl_ClipDistance' : no such field in structure 
+ERROR: 0:35: 'expression' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:35: 'assign' :  l-value required (can't modify a const)
+ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:43: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:48: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:53: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:56: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:63: '' : tessellation control barrier() cannot be placed after a return from main() 
+ERROR: 0:66: 'vertices' : can only apply to 'out' 
+ERROR: 0:67: 'vertices' : cannot change previously set layout value 
+ERROR: 0:71: '[' :  array index out of range '4'
+ERROR: 0:73: '' : tessellation control barrier() must be in main() 
+ERROR: 0:76: 'in' : type must be an array: ina
+ERROR: 0:78: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:80: '' : array size required 
+ERROR: 0:86: 'location' : overlapping use of location 4
+ERROR: 0:90: 'location' : overlapping use of location 4
+ERROR: 0:94: 'precise' : Reserved word. 
+ERROR: 0:95: 'fma' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:104: 'sample' : Reserved word. 
+ERROR: 0:106: 'vertices' : can only apply to a standalone qualifier 
+ERROR: 0:107: 'vertices' : inconsistent output number of vertices for array size of misSized
+ERROR: 0:133: 'gl_BoundingBoxOES' : required extension not requested: Possible extensions include:
+GL_EXT_primitive_bounding_box
+GL_OES_primitive_bounding_box
+ERROR: 0:142: '[' :  array index out of range '2'
+ERROR: 0:145: '' : array size required 
+ERROR: 0:161: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID 
+ERROR: 0:162: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID 
+ERROR: 0:165: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID 
+ERROR: 37 compilation errors.  No code generated.
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_OES_gpu_shader5
+Requested GL_OES_primitive_bounding_box
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+vertices = 4
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Barrier (global void)
+0:19      Sequence
+0:19        move second child to first child (temp highp int)
+0:19          'a' (temp highp int)
+0:19          Constant:
+0:19            5392 (const int)
+0:25      Sequence
+0:25        move second child to first child (temp highp 4-component vector of float)
+0:25          'p' (temp highp 4-component vector of float)
+0:25          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:25            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25              Constant:
+0:25                1 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:26      Sequence
+0:26        move second child to first child (temp highp float)
+0:26          'ps' (temp highp float)
+0:26          gl_PointSize: direct index for structure (in highp float PointSize)
+0:26            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26              Constant:
+0:26                1 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp highp float)
+0:27          'cd' (temp highp float)
+0:27          Constant:
+0:27            0.000000
+0:29      Sequence
+0:29        move second child to first child (temp highp int)
+0:29          'pvi' (temp highp int)
+0:29          'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:30      Sequence
+0:30        move second child to first child (temp highp int)
+0:30          'pid' (temp highp int)
+0:30          'gl_PrimitiveID' (in highp int PrimitiveID)
+0:31      Sequence
+0:31        move second child to first child (temp highp int)
+0:31          'iid' (temp highp int)
+0:31          'gl_InvocationID' (in highp int InvocationID)
+0:33      move second child to first child (temp highp 4-component vector of float)
+0:33        gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:33          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33            'gl_InvocationID' (in highp int InvocationID)
+0:33          Constant:
+0:33            0 (const int)
+0:33        'p' (temp highp 4-component vector of float)
+0:34      move second child to first child (temp highp float)
+0:34        gl_PointSize: direct index for structure (out highp float PointSize)
+0:34          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34            'gl_InvocationID' (in highp int InvocationID)
+0:34          Constant:
+0:34            1 (const int)
+0:34        'ps' (temp highp float)
+0:35      move second child to first child (temp highp float)
+0:35        Constant:
+0:35          0.000000
+0:35        'cd' (temp highp float)
+0:37      move second child to first child (temp highp float)
+0:37        direct index (patch temp highp float TessLevelOuter)
+0:37          'gl_TessLevelOuter' (patch out 4-element array of highp float TessLevelOuter)
+0:37          Constant:
+0:37            3 (const int)
+0:37        Constant:
+0:37          3.200000
+0:38      move second child to first child (temp highp float)
+0:38        direct index (patch temp highp float TessLevelInner)
+0:38          'gl_TessLevelInner' (patch out 2-element array of highp float TessLevelInner)
+0:38          Constant:
+0:38            1 (const int)
+0:38        Constant:
+0:38          1.300000
+0:40      Test condition and select (temp void)
+0:40        Condition
+0:40        Compare Greater Than (temp bool)
+0:40          'a' (temp highp int)
+0:40          Constant:
+0:40            10 (const int)
+0:40        true case
+0:41        Barrier (global void)
+0:40        false case
+0:43        Barrier (global void)
+0:45      Barrier (global void)
+0:49      Loop with condition not tested first
+0:49        Loop Condition
+0:49        Compare Greater Than (temp bool)
+0:49          'a' (temp highp int)
+0:49          Constant:
+0:49            10 (const int)
+0:49        Loop Body
+0:48        Sequence
+0:48          Barrier (global void)
+0:51      switch
+0:51      condition
+0:51        'a' (temp highp int)
+0:51      body
+0:51        Sequence
+0:52          default: 
+0:?           Sequence
+0:53            Barrier (global void)
+0:54            Branch: Break
+0:56      Test condition and select (temp highp int)
+0:56        Condition
+0:56        Compare Less Than (temp bool)
+0:56          'a' (temp highp int)
+0:56          Constant:
+0:56            12 (const int)
+0:56        true case
+0:56        'a' (temp highp int)
+0:56        false case
+0:56        Comma (temp highp int)
+0:56          Barrier (global void)
+0:56          'a' (temp highp int)
+0:58      Sequence
+0:58        Barrier (global void)
+0:61      Branch: Return
+0:63      Barrier (global void)
+0:69  Function Definition: foo( (global void)
+0:69    Function Parameters: 
+0:71    Sequence
+0:71      gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:71        direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71          'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71          Constant:
+0:71            4 (const int)
+0:71        Constant:
+0:71          0 (const int)
+0:73      Barrier (global void)
+0:92  Function Definition: foop( (global void)
+0:92    Function Parameters: 
+0:?     Sequence
+0:95      move second child to first child (temp highp float)
+0:95        'd' (temp highp float)
+0:95        fma (global highp float)
+0:95          'd' (temp highp float)
+0:95          'd' (temp highp float)
+0:95          'd' (temp highp float)
+0:112  Function Definition: pointSize2( (global void)
+0:112    Function Parameters: 
+0:114    Sequence
+0:114      Sequence
+0:114        move second child to first child (temp highp float)
+0:114          'ps' (temp highp float)
+0:114          gl_PointSize: direct index for structure (in highp float PointSize)
+0:114            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114              Constant:
+0:114                1 (const int)
+0:114            Constant:
+0:114              1 (const int)
+0:115      move second child to first child (temp highp float)
+0:115        gl_PointSize: direct index for structure (out highp float PointSize)
+0:115          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115            'gl_InvocationID' (in highp int InvocationID)
+0:115          Constant:
+0:115            1 (const int)
+0:115        'ps' (temp highp float)
+0:122  Function Definition: goodfoop( (global void)
+0:122    Function Parameters: 
+0:?     Sequence
+0:126      multiply second child into first child (temp highp 3-component vector of float)
+0:126        'pv3' (temp highp 3-component vector of float)
+0:126        'pv3' (temp highp 3-component vector of float)
+0:127      move second child to first child (temp highp 3-component vector of float)
+0:127        'pv3' (temp highp 3-component vector of float)
+0:127        fma (global highp 3-component vector of float)
+0:127          'pv3' (temp highp 3-component vector of float)
+0:127          'pv3' (temp highp 3-component vector of float)
+0:127          'pv3' (temp highp 3-component vector of float)
+0:128      move second child to first child (temp highp float)
+0:128        'd' (temp highp float)
+0:128        fma (global highp float)
+0:128          'd' (temp highp float)
+0:128          'd' (temp highp float)
+0:128          'd' (temp highp float)
+0:131  Function Definition: bbBad( (global void)
+0:131    Function Parameters: 
+0:133    Sequence
+0:133      'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:138  Function Definition: bb( (global void)
+0:138    Function Parameters: 
+0:140    Sequence
+0:140      move second child to first child (temp highp 4-component vector of float)
+0:140        direct index (patch temp highp 4-component vector of float BoundingBox)
+0:140          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:140          Constant:
+0:140            0 (const int)
+0:140        Constant:
+0:140          0.000000
+0:140          0.000000
+0:140          0.000000
+0:140          0.000000
+0:141      move second child to first child (temp highp 4-component vector of float)
+0:141        direct index (patch temp highp 4-component vector of float BoundingBox)
+0:141          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:141          Constant:
+0:141            1 (const int)
+0:141        Constant:
+0:141          1.000000
+0:141          1.000000
+0:141          1.000000
+0:141          1.000000
+0:142      move second child to first child (temp highp 4-component vector of float)
+0:142        direct index (patch temp highp 4-component vector of float BoundingBox)
+0:142          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:142          Constant:
+0:142            2 (const int)
+0:142        Constant:
+0:142          2.000000
+0:142          2.000000
+0:142          2.000000
+0:142          2.000000
+0:153  Function Definition: outputtingOutparam(i1; (global void)
+0:153    Function Parameters: 
+0:153      'a' (out highp int)
+0:155    Sequence
+0:155      move second child to first child (temp highp int)
+0:155        'a' (out highp int)
+0:155        Constant:
+0:155          2 (const int)
+0:158  Function Definition: outputting( (global void)
+0:158    Function Parameters: 
+0:160    Sequence
+0:160      move second child to first child (temp highp int)
+0:160        indirect index (temp highp int)
+0:160          'outa' (out 4-element array of highp int)
+0:160          'gl_InvocationID' (in highp int InvocationID)
+0:160        Constant:
+0:160          2 (const int)
+0:161      move second child to first child (temp highp int)
+0:161        direct index (temp highp int)
+0:161          'outa' (out 4-element array of highp int)
+0:161          Constant:
+0:161            1 (const int)
+0:161        Constant:
+0:161          2 (const int)
+0:162      move second child to first child (temp highp 4-component vector of float)
+0:162        gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:162          direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162            Constant:
+0:162              0 (const int)
+0:162          Constant:
+0:162            0 (const int)
+0:162        Constant:
+0:162          1.000000
+0:162          1.000000
+0:162          1.000000
+0:162          1.000000
+0:163      direct index (temp highp int)
+0:163        'outa' (out 4-element array of highp int)
+0:163        Constant:
+0:163          1 (const int)
+0:164      direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164        'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164        Constant:
+0:164          0 (const int)
+0:165      Function Call: outputtingOutparam(i1; (global void)
+0:165        direct index (temp highp int)
+0:165          'outa' (out 4-element array of highp int)
+0:165          Constant:
+0:165            0 (const int)
+0:166      Function Call: outputtingOutparam(i1; (global void)
+0:166        indirect index (temp highp int)
+0:166          'outa' (out 4-element array of highp int)
+0:166          'gl_InvocationID' (in highp int InvocationID)
+0:167      move second child to first child (temp highp float)
+0:167        f: direct index for structure (out highp float)
+0:167          direct index (patch temp block{out highp float f})
+0:167            'patchIName' (patch out 4-element array of block{out highp float f})
+0:167            Constant:
+0:167              1 (const int)
+0:167          Constant:
+0:167            0 (const int)
+0:167        Constant:
+0:167          3.140000
+0:168      move second child to first child (temp highp int)
+0:168        indirect index (temp highp int)
+0:168          'outa' (out 4-element array of highp int)
+0:168          'gl_InvocationID' (in highp int InvocationID)
+0:168        Constant:
+0:168          2 (const int)
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:?     'outa' (out 4-element array of highp int)
+0:?     'patchIn' (patch in highp 4-component vector of float)
+0:?     'patchOut' (patch out highp 4-component vector of float)
+0:?     'ina' (in highp 2-component vector of float)
+0:?     'inb' (in 32-element array of highp 2-component vector of float)
+0:?     'inc' (in 32-element array of highp 2-component vector of float)
+0:?     'ind' (in 32-element array of highp 2-component vector of float)
+0:?     'implA' (patch out implicitly-sized array of highp float)
+0:?     'ivla' (layout(location=3 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlb' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlc' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:?     'ovla' (layout(location=3 ) out 4-element array of highp 4-component vector of float)
+0:?     'ovlb' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:?     'ovlc' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:?     'pinbi' (patch out block{out highp int a})
+0:?     'myColor2' (centroid out 4-element array of highp 3-component vector of float)
+0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:?     'perSampleColor' (sample out 4-element array of highp 4-component vector of float)
+0:?     'badlay' (out 4-element array of highp float)
+0:?     'misSized' (out 5-element array of highp float)
+0:?     'okaySize' (out 4-element array of highp float)
+0:?     'pv3' (temp highp 3-component vector of float)
+0:?     'badpatchIName' (patch out implicitly-sized array of block{out highp float f})
+0:?     'patchIName' (patch out 4-element array of block{out highp float f})
+
+
+Linked tessellation control stage:
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_OES_gpu_shader5
+Requested GL_OES_primitive_bounding_box
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+vertices = 4
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Barrier (global void)
+0:19      Sequence
+0:19        move second child to first child (temp highp int)
+0:19          'a' (temp highp int)
+0:19          Constant:
+0:19            5392 (const int)
+0:25      Sequence
+0:25        move second child to first child (temp highp 4-component vector of float)
+0:25          'p' (temp highp 4-component vector of float)
+0:25          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:25            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:25              Constant:
+0:25                1 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:26      Sequence
+0:26        move second child to first child (temp highp float)
+0:26          'ps' (temp highp float)
+0:26          gl_PointSize: direct index for structure (in highp float PointSize)
+0:26            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:26              Constant:
+0:26                1 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp highp float)
+0:27          'cd' (temp highp float)
+0:27          Constant:
+0:27            0.000000
+0:29      Sequence
+0:29        move second child to first child (temp highp int)
+0:29          'pvi' (temp highp int)
+0:29          'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:30      Sequence
+0:30        move second child to first child (temp highp int)
+0:30          'pid' (temp highp int)
+0:30          'gl_PrimitiveID' (in highp int PrimitiveID)
+0:31      Sequence
+0:31        move second child to first child (temp highp int)
+0:31          'iid' (temp highp int)
+0:31          'gl_InvocationID' (in highp int InvocationID)
+0:33      move second child to first child (temp highp 4-component vector of float)
+0:33        gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:33          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:33            'gl_InvocationID' (in highp int InvocationID)
+0:33          Constant:
+0:33            0 (const int)
+0:33        'p' (temp highp 4-component vector of float)
+0:34      move second child to first child (temp highp float)
+0:34        gl_PointSize: direct index for structure (out highp float PointSize)
+0:34          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:34            'gl_InvocationID' (in highp int InvocationID)
+0:34          Constant:
+0:34            1 (const int)
+0:34        'ps' (temp highp float)
+0:35      move second child to first child (temp highp float)
+0:35        Constant:
+0:35          0.000000
+0:35        'cd' (temp highp float)
+0:37      move second child to first child (temp highp float)
+0:37        direct index (patch temp highp float TessLevelOuter)
+0:37          'gl_TessLevelOuter' (patch out 4-element array of highp float TessLevelOuter)
+0:37          Constant:
+0:37            3 (const int)
+0:37        Constant:
+0:37          3.200000
+0:38      move second child to first child (temp highp float)
+0:38        direct index (patch temp highp float TessLevelInner)
+0:38          'gl_TessLevelInner' (patch out 2-element array of highp float TessLevelInner)
+0:38          Constant:
+0:38            1 (const int)
+0:38        Constant:
+0:38          1.300000
+0:40      Test condition and select (temp void)
+0:40        Condition
+0:40        Compare Greater Than (temp bool)
+0:40          'a' (temp highp int)
+0:40          Constant:
+0:40            10 (const int)
+0:40        true case
+0:41        Barrier (global void)
+0:40        false case
+0:43        Barrier (global void)
+0:45      Barrier (global void)
+0:49      Loop with condition not tested first
+0:49        Loop Condition
+0:49        Compare Greater Than (temp bool)
+0:49          'a' (temp highp int)
+0:49          Constant:
+0:49            10 (const int)
+0:49        Loop Body
+0:48        Sequence
+0:48          Barrier (global void)
+0:51      switch
+0:51      condition
+0:51        'a' (temp highp int)
+0:51      body
+0:51        Sequence
+0:52          default: 
+0:?           Sequence
+0:53            Barrier (global void)
+0:54            Branch: Break
+0:56      Test condition and select (temp highp int)
+0:56        Condition
+0:56        Compare Less Than (temp bool)
+0:56          'a' (temp highp int)
+0:56          Constant:
+0:56            12 (const int)
+0:56        true case
+0:56        'a' (temp highp int)
+0:56        false case
+0:56        Comma (temp highp int)
+0:56          Barrier (global void)
+0:56          'a' (temp highp int)
+0:58      Sequence
+0:58        Barrier (global void)
+0:61      Branch: Return
+0:63      Barrier (global void)
+0:69  Function Definition: foo( (global void)
+0:69    Function Parameters: 
+0:71    Sequence
+0:71      gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:71        direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71          'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:71          Constant:
+0:71            4 (const int)
+0:71        Constant:
+0:71          0 (const int)
+0:73      Barrier (global void)
+0:92  Function Definition: foop( (global void)
+0:92    Function Parameters: 
+0:?     Sequence
+0:95      move second child to first child (temp highp float)
+0:95        'd' (temp highp float)
+0:95        fma (global highp float)
+0:95          'd' (temp highp float)
+0:95          'd' (temp highp float)
+0:95          'd' (temp highp float)
+0:112  Function Definition: pointSize2( (global void)
+0:112    Function Parameters: 
+0:114    Sequence
+0:114      Sequence
+0:114        move second child to first child (temp highp float)
+0:114          'ps' (temp highp float)
+0:114          gl_PointSize: direct index for structure (in highp float PointSize)
+0:114            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:114              Constant:
+0:114                1 (const int)
+0:114            Constant:
+0:114              1 (const int)
+0:115      move second child to first child (temp highp float)
+0:115        gl_PointSize: direct index for structure (out highp float PointSize)
+0:115          indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:115            'gl_InvocationID' (in highp int InvocationID)
+0:115          Constant:
+0:115            1 (const int)
+0:115        'ps' (temp highp float)
+0:122  Function Definition: goodfoop( (global void)
+0:122    Function Parameters: 
+0:?     Sequence
+0:126      multiply second child into first child (temp highp 3-component vector of float)
+0:126        'pv3' (temp highp 3-component vector of float)
+0:126        'pv3' (temp highp 3-component vector of float)
+0:127      move second child to first child (temp highp 3-component vector of float)
+0:127        'pv3' (temp highp 3-component vector of float)
+0:127        fma (global highp 3-component vector of float)
+0:127          'pv3' (temp highp 3-component vector of float)
+0:127          'pv3' (temp highp 3-component vector of float)
+0:127          'pv3' (temp highp 3-component vector of float)
+0:128      move second child to first child (temp highp float)
+0:128        'd' (temp highp float)
+0:128        fma (global highp float)
+0:128          'd' (temp highp float)
+0:128          'd' (temp highp float)
+0:128          'd' (temp highp float)
+0:131  Function Definition: bbBad( (global void)
+0:131    Function Parameters: 
+0:133    Sequence
+0:133      'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:138  Function Definition: bb( (global void)
+0:138    Function Parameters: 
+0:140    Sequence
+0:140      move second child to first child (temp highp 4-component vector of float)
+0:140        direct index (patch temp highp 4-component vector of float BoundingBox)
+0:140          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:140          Constant:
+0:140            0 (const int)
+0:140        Constant:
+0:140          0.000000
+0:140          0.000000
+0:140          0.000000
+0:140          0.000000
+0:141      move second child to first child (temp highp 4-component vector of float)
+0:141        direct index (patch temp highp 4-component vector of float BoundingBox)
+0:141          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:141          Constant:
+0:141            1 (const int)
+0:141        Constant:
+0:141          1.000000
+0:141          1.000000
+0:141          1.000000
+0:141          1.000000
+0:142      move second child to first child (temp highp 4-component vector of float)
+0:142        direct index (patch temp highp 4-component vector of float BoundingBox)
+0:142          'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
+0:142          Constant:
+0:142            2 (const int)
+0:142        Constant:
+0:142          2.000000
+0:142          2.000000
+0:142          2.000000
+0:142          2.000000
+0:153  Function Definition: outputtingOutparam(i1; (global void)
+0:153    Function Parameters: 
+0:153      'a' (out highp int)
+0:155    Sequence
+0:155      move second child to first child (temp highp int)
+0:155        'a' (out highp int)
+0:155        Constant:
+0:155          2 (const int)
+0:158  Function Definition: outputting( (global void)
+0:158    Function Parameters: 
+0:160    Sequence
+0:160      move second child to first child (temp highp int)
+0:160        indirect index (temp highp int)
+0:160          'outa' (out 4-element array of highp int)
+0:160          'gl_InvocationID' (in highp int InvocationID)
+0:160        Constant:
+0:160          2 (const int)
+0:161      move second child to first child (temp highp int)
+0:161        direct index (temp highp int)
+0:161          'outa' (out 4-element array of highp int)
+0:161          Constant:
+0:161            1 (const int)
+0:161        Constant:
+0:161          2 (const int)
+0:162      move second child to first child (temp highp 4-component vector of float)
+0:162        gl_Position: direct index for structure (out highp 4-component vector of float Position)
+0:162          direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162            'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:162            Constant:
+0:162              0 (const int)
+0:162          Constant:
+0:162            0 (const int)
+0:162        Constant:
+0:162          1.000000
+0:162          1.000000
+0:162          1.000000
+0:162          1.000000
+0:163      direct index (temp highp int)
+0:163        'outa' (out 4-element array of highp int)
+0:163        Constant:
+0:163          1 (const int)
+0:164      direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164        'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:164        Constant:
+0:164          0 (const int)
+0:165      Function Call: outputtingOutparam(i1; (global void)
+0:165        direct index (temp highp int)
+0:165          'outa' (out 4-element array of highp int)
+0:165          Constant:
+0:165            0 (const int)
+0:166      Function Call: outputtingOutparam(i1; (global void)
+0:166        indirect index (temp highp int)
+0:166          'outa' (out 4-element array of highp int)
+0:166          'gl_InvocationID' (in highp int InvocationID)
+0:167      move second child to first child (temp highp float)
+0:167        f: direct index for structure (out highp float)
+0:167          direct index (patch temp block{out highp float f})
+0:167            'patchIName' (patch out 4-element array of block{out highp float f})
+0:167            Constant:
+0:167              1 (const int)
+0:167          Constant:
+0:167            0 (const int)
+0:167        Constant:
+0:167          3.140000
+0:168      move second child to first child (temp highp int)
+0:168        indirect index (temp highp int)
+0:168          'outa' (out 4-element array of highp int)
+0:168          'gl_InvocationID' (in highp int InvocationID)
+0:168        Constant:
+0:168          2 (const int)
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
+0:?     'outa' (out 4-element array of highp int)
+0:?     'patchIn' (patch in highp 4-component vector of float)
+0:?     'patchOut' (patch out highp 4-component vector of float)
+0:?     'ina' (in highp 2-component vector of float)
+0:?     'inb' (in 32-element array of highp 2-component vector of float)
+0:?     'inc' (in 32-element array of highp 2-component vector of float)
+0:?     'ind' (in 32-element array of highp 2-component vector of float)
+0:?     'implA' (patch out 1-element array of highp float)
+0:?     'ivla' (layout(location=3 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlb' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlc' (layout(location=4 ) in 32-element array of highp 4-component vector of float)
+0:?     'ovla' (layout(location=3 ) out 4-element array of highp 4-component vector of float)
+0:?     'ovlb' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:?     'ovlc' (layout(location=4 ) out 4-element array of highp 4-component vector of float)
+0:?     'pinbi' (patch out block{out highp int a})
+0:?     'myColor2' (centroid out 4-element array of highp 3-component vector of float)
+0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:?     'perSampleColor' (sample out 4-element array of highp 4-component vector of float)
+0:?     'badlay' (out 4-element array of highp float)
+0:?     'misSized' (out 5-element array of highp float)
+0:?     'okaySize' (out 4-element array of highp float)
+0:?     'pv3' (temp highp 3-component vector of float)
+0:?     'badpatchIName' (patch out 1-element array of block{out highp float f})
+0:?     'patchIName' (patch out 4-element array of block{out highp float f})
+
diff --git a/Test/baseResults/310.tese.out b/Test/baseResults/310.tese.out
index 877e082..aacfedb 100644
--- a/Test/baseResults/310.tese.out
+++ b/Test/baseResults/310.tese.out
@@ -1,315 +1,315 @@
-310.tese

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:9: 'triangles' : cannot change previously set input primitive 

-ERROR: 0:10: 'isolines' : cannot change previously set input primitive 

-ERROR: 0:12: 'ccw' : cannot change previously set vertex order 

-ERROR: 0:16: 'equal_spacing' : cannot change previously set vertex spacing 

-ERROR: 0:17: 'fractional_even_spacing' : cannot change previously set vertex spacing 

-ERROR: 0:22: 'patch' : can only use on input in tessellation-evaluation shader 

-ERROR: 0:26: 'barrier' : no matching overloaded function found 

-ERROR: 0:37: 'gl_PointSize' : required extension not requested: Possible extensions include:

-GL_EXT_tessellation_point_size

-GL_OES_tessellation_point_size

-ERROR: 0:38: 'gl_ClipDistance' : no such field in structure 

-ERROR: 0:38: 'expression' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:47: 'gl_PointSize' : required extension not requested: Possible extensions include:

-GL_EXT_tessellation_point_size

-GL_OES_tessellation_point_size

-ERROR: 0:48: 'gl_ClipDistance' : undeclared identifier 

-ERROR: 0:48: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:48: 'assign' :  l-value required (can't modify a const)

-ERROR: 0:51: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:52: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:53: 'noperspective' : Reserved word. 

-ERROR: 0:53: 'noperspective' : not supported with this profile: es

-ERROR: 0:53: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:54: 'sample' : Reserved word. 

-ERROR: 0:54: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 

-ERROR: 0:58: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 

-ERROR: 0:63: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

-ERROR: 0:68: 'quads' : cannot apply to 'out' 

-ERROR: 0:68: 'cw' : can only apply to 'in' 

-ERROR: 0:69: 'triangles' : cannot apply to 'out' 

-ERROR: 0:70: 'isolines' : cannot apply to 'out' 

-ERROR: 0:71: 'cw' : can only apply to 'in' 

-ERROR: 0:72: 'fractional_odd_spacing' : can only apply to 'in' 

-ERROR: 0:73: 'equal_spacing' : can only apply to 'in' 

-ERROR: 0:74: 'fractional_even_spacing' : can only apply to 'in' 

-ERROR: 0:75: 'point_mode' : can only apply to 'in' 

-ERROR: 0:77: 'in' : type must be an array: ina

-ERROR: 0:79: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:82: 'in' : type must be an array: bla

-ERROR: 0:90: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:100: 'location' : overlapping use of location 24

-ERROR: 0:103: 'location' : overlapping use of location 24

-ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 

-ERROR: 0:113: 'sample' : Reserved word. 

-ERROR: 0:119: 'gl_PointSize' : no such field in structure 

-ERROR: 0:119: '=' :  cannot convert from 'temp block{in highp 4-component vector of float Position gl_Position}' to 'temp highp float'

-ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier 

-ERROR: 44 compilation errors.  No code generated.

-

-

-Shader version: 310

-Requested GL_ARB_separate_shader_objects

-Requested GL_EXT_primitive_bounding_box

-Requested GL_EXT_shader_io_blocks

-Requested GL_EXT_tessellation_shader

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_tessellation_point_size

-Requested GL_OES_tessellation_shader

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:24  Function Definition: main( (global void)

-0:24    Function Parameters: 

-0:26    Sequence

-0:26      Constant:

-0:26        0.000000

-0:28      Sequence

-0:28        move second child to first child (temp highp int)

-0:28          'a' (temp highp int)

-0:28          Constant:

-0:28            1512 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp highp 4-component vector of float)

-0:36          'p' (temp highp 4-component vector of float)

-0:36          gl_Position: direct index for structure (in highp 4-component vector of float Position)

-0:36            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:36              Constant:

-0:36                1 (const int)

-0:36            Constant:

-0:36              0 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp highp float)

-0:37          'ps' (temp highp float)

-0:37          gl_PointSize: direct index for structure (in highp float PointSize)

-0:37            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:37              Constant:

-0:37                1 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:38      Sequence

-0:38        move second child to first child (temp highp float)

-0:38          'cd' (temp highp float)

-0:38          Constant:

-0:38            0.000000

-0:40      Sequence

-0:40        move second child to first child (temp highp int)

-0:40          'pvi' (temp highp int)

-0:40          'gl_PatchVerticesIn' (in highp int PatchVertices)

-0:41      Sequence

-0:41        move second child to first child (temp highp int)

-0:41          'pid' (temp highp int)

-0:41          'gl_PrimitiveID' (in highp int PrimitiveID)

-0:42      Sequence

-0:42        move second child to first child (temp highp 3-component vector of float)

-0:42          'tc' (temp highp 3-component vector of float)

-0:42          'gl_TessCoord' (in highp 3-component vector of float TessCoord)

-0:43      Sequence

-0:43        move second child to first child (temp highp float)

-0:43          'tlo' (temp highp float)

-0:43          direct index (patch temp highp float TessLevelOuter)

-0:43            'gl_TessLevelOuter' (patch in 4-element array of highp float TessLevelOuter)

-0:43            Constant:

-0:43              3 (const int)

-0:44      Sequence

-0:44        move second child to first child (temp highp float)

-0:44          'tli' (temp highp float)

-0:44          direct index (patch temp highp float TessLevelInner)

-0:44            'gl_TessLevelInner' (patch in 2-element array of highp float TessLevelInner)

-0:44            Constant:

-0:44              1 (const int)

-0:46      move second child to first child (temp highp 4-component vector of float)

-0:46        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)

-0:46          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})

-0:46          Constant:

-0:46            0 (const uint)

-0:46        'p' (temp highp 4-component vector of float)

-0:47      move second child to first child (temp highp float)

-0:47        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)

-0:47          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})

-0:47          Constant:

-0:47            1 (const uint)

-0:47        'ps' (temp highp float)

-0:48      move second child to first child (temp highp float)

-0:48        Constant:

-0:48          0.000000

-0:48        'cd' (temp highp float)

-0:117  Function Definition: pointSize2( (global void)

-0:117    Function Parameters: 

-0:?     Sequence

-0:120      move second child to first child (temp highp float)

-0:120        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)

-0:120          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})

-0:120          Constant:

-0:120            1 (const uint)

-0:120        'ps' (temp highp float)

-0:125  Function Definition: bbbad( (global void)

-0:125    Function Parameters: 

-0:127    Sequence

-0:127      'gl_BoundingBoxOES' (temp float)

-0:?   Linker Objects

-0:?     'patchIn' (patch in highp 4-component vector of float)

-0:?     'patchOut' (patch out highp 4-component vector of float)

-0:?     'badp1' (smooth patch in highp 4-component vector of float)

-0:?     'badp2' (flat patch in highp 4-component vector of float)

-0:?     'badp3' (noperspective patch in highp 4-component vector of float)

-0:?     'badp4' (patch sample in highp 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})

-0:?     'ina' (in highp 2-component vector of float)

-0:?     'inb' (in 32-element array of highp 2-component vector of float)

-0:?     'inc' (in 32-element array of highp 2-component vector of float)

-0:?     'ind' (in 32-element array of highp 2-component vector of float)

-0:?     'bla' (in block{in highp int f})

-0:?     'blb' (in 32-element array of block{in highp int f})

-0:?     'blc' (in 32-element array of block{in highp int f})

-0:?     'bld' (in 32-element array of block{in highp int f})

-0:?     'ivla' (layout(location=23 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlb' (layout(location=24 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlc' (layout(location=24 ) in 32-element array of highp 4-component vector of float)

-0:?     'ovla' (layout(location=23 ) out 2-element array of highp 4-component vector of float)

-0:?     'ovlb' (layout(location=24 ) out 2-element array of highp 4-component vector of float)

-0:?     'pinbi' (patch in block{in highp int a})

-0:?     'myColor2' (centroid out highp 3-component vector of float)

-0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)

-0:?     'perSampleColor' (sample out highp 4-component vector of float)

-

-

-Linked tessellation evaluation stage:

-

-

-Shader version: 310

-Requested GL_ARB_separate_shader_objects

-Requested GL_EXT_primitive_bounding_box

-Requested GL_EXT_shader_io_blocks

-Requested GL_EXT_tessellation_shader

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_tessellation_point_size

-Requested GL_OES_tessellation_shader

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:24  Function Definition: main( (global void)

-0:24    Function Parameters: 

-0:26    Sequence

-0:26      Constant:

-0:26        0.000000

-0:28      Sequence

-0:28        move second child to first child (temp highp int)

-0:28          'a' (temp highp int)

-0:28          Constant:

-0:28            1512 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp highp 4-component vector of float)

-0:36          'p' (temp highp 4-component vector of float)

-0:36          gl_Position: direct index for structure (in highp 4-component vector of float Position)

-0:36            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:36              Constant:

-0:36                1 (const int)

-0:36            Constant:

-0:36              0 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp highp float)

-0:37          'ps' (temp highp float)

-0:37          gl_PointSize: direct index for structure (in highp float PointSize)

-0:37            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})

-0:37              Constant:

-0:37                1 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:38      Sequence

-0:38        move second child to first child (temp highp float)

-0:38          'cd' (temp highp float)

-0:38          Constant:

-0:38            0.000000

-0:40      Sequence

-0:40        move second child to first child (temp highp int)

-0:40          'pvi' (temp highp int)

-0:40          'gl_PatchVerticesIn' (in highp int PatchVertices)

-0:41      Sequence

-0:41        move second child to first child (temp highp int)

-0:41          'pid' (temp highp int)

-0:41          'gl_PrimitiveID' (in highp int PrimitiveID)

-0:42      Sequence

-0:42        move second child to first child (temp highp 3-component vector of float)

-0:42          'tc' (temp highp 3-component vector of float)

-0:42          'gl_TessCoord' (in highp 3-component vector of float TessCoord)

-0:43      Sequence

-0:43        move second child to first child (temp highp float)

-0:43          'tlo' (temp highp float)

-0:43          direct index (patch temp highp float TessLevelOuter)

-0:43            'gl_TessLevelOuter' (patch in 4-element array of highp float TessLevelOuter)

-0:43            Constant:

-0:43              3 (const int)

-0:44      Sequence

-0:44        move second child to first child (temp highp float)

-0:44          'tli' (temp highp float)

-0:44          direct index (patch temp highp float TessLevelInner)

-0:44            'gl_TessLevelInner' (patch in 2-element array of highp float TessLevelInner)

-0:44            Constant:

-0:44              1 (const int)

-0:46      move second child to first child (temp highp 4-component vector of float)

-0:46        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)

-0:46          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})

-0:46          Constant:

-0:46            0 (const uint)

-0:46        'p' (temp highp 4-component vector of float)

-0:47      move second child to first child (temp highp float)

-0:47        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)

-0:47          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})

-0:47          Constant:

-0:47            1 (const uint)

-0:47        'ps' (temp highp float)

-0:48      move second child to first child (temp highp float)

-0:48        Constant:

-0:48          0.000000

-0:48        'cd' (temp highp float)

-0:117  Function Definition: pointSize2( (global void)

-0:117    Function Parameters: 

-0:?     Sequence

-0:120      move second child to first child (temp highp float)

-0:120        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)

-0:120          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})

-0:120          Constant:

-0:120            1 (const uint)

-0:120        'ps' (temp highp float)

-0:125  Function Definition: bbbad( (global void)

-0:125    Function Parameters: 

-0:127    Sequence

-0:127      'gl_BoundingBoxOES' (temp float)

-0:?   Linker Objects

-0:?     'patchIn' (patch in highp 4-component vector of float)

-0:?     'patchOut' (patch out highp 4-component vector of float)

-0:?     'badp1' (smooth patch in highp 4-component vector of float)

-0:?     'badp2' (flat patch in highp 4-component vector of float)

-0:?     'badp3' (noperspective patch in highp 4-component vector of float)

-0:?     'badp4' (patch sample in highp 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})

-0:?     'ina' (in highp 2-component vector of float)

-0:?     'inb' (in 32-element array of highp 2-component vector of float)

-0:?     'inc' (in 32-element array of highp 2-component vector of float)

-0:?     'ind' (in 32-element array of highp 2-component vector of float)

-0:?     'bla' (in block{in highp int f})

-0:?     'blb' (in 32-element array of block{in highp int f})

-0:?     'blc' (in 32-element array of block{in highp int f})

-0:?     'bld' (in 32-element array of block{in highp int f})

-0:?     'ivla' (layout(location=23 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlb' (layout(location=24 ) in 32-element array of highp 4-component vector of float)

-0:?     'ivlc' (layout(location=24 ) in 32-element array of highp 4-component vector of float)

-0:?     'ovla' (layout(location=23 ) out 2-element array of highp 4-component vector of float)

-0:?     'ovlb' (layout(location=24 ) out 2-element array of highp 4-component vector of float)

-0:?     'pinbi' (patch in block{in highp int a})

-0:?     'myColor2' (centroid out highp 3-component vector of float)

-0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)

-0:?     'perSampleColor' (sample out highp 4-component vector of float)

-

+310.tese
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:9: 'triangles' : cannot change previously set input primitive 
+ERROR: 0:10: 'isolines' : cannot change previously set input primitive 
+ERROR: 0:12: 'ccw' : cannot change previously set vertex order 
+ERROR: 0:16: 'equal_spacing' : cannot change previously set vertex spacing 
+ERROR: 0:17: 'fractional_even_spacing' : cannot change previously set vertex spacing 
+ERROR: 0:22: 'patch' : can only use on input in tessellation-evaluation shader 
+ERROR: 0:26: 'barrier' : no matching overloaded function found 
+ERROR: 0:37: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:38: 'gl_ClipDistance' : no such field in structure 
+ERROR: 0:38: 'expression' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:47: 'gl_PointSize' : required extension not requested: Possible extensions include:
+GL_EXT_tessellation_point_size
+GL_OES_tessellation_point_size
+ERROR: 0:48: 'gl_ClipDistance' : undeclared identifier 
+ERROR: 0:48: 'gl_ClipDistance' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:48: 'assign' :  l-value required (can't modify a const)
+ERROR: 0:51: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:52: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:53: 'noperspective' : Reserved word. 
+ERROR: 0:53: 'noperspective' : not supported with this profile: es
+ERROR: 0:53: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:54: 'sample' : Reserved word. 
+ERROR: 0:54: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 
+ERROR: 0:58: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 
+ERROR: 0:63: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 
+ERROR: 0:68: 'quads' : cannot apply to 'out' 
+ERROR: 0:68: 'cw' : can only apply to 'in' 
+ERROR: 0:69: 'triangles' : cannot apply to 'out' 
+ERROR: 0:70: 'isolines' : cannot apply to 'out' 
+ERROR: 0:71: 'cw' : can only apply to 'in' 
+ERROR: 0:72: 'fractional_odd_spacing' : can only apply to 'in' 
+ERROR: 0:73: 'equal_spacing' : can only apply to 'in' 
+ERROR: 0:74: 'fractional_even_spacing' : can only apply to 'in' 
+ERROR: 0:75: 'point_mode' : can only apply to 'in' 
+ERROR: 0:77: 'in' : type must be an array: ina
+ERROR: 0:79: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:82: 'in' : type must be an array: bla
+ERROR: 0:90: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:100: 'location' : overlapping use of location 24
+ERROR: 0:103: 'location' : overlapping use of location 24
+ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 
+ERROR: 0:113: 'sample' : Reserved word. 
+ERROR: 0:119: 'gl_PointSize' : no such field in structure 
+ERROR: 0:119: '=' :  cannot convert from 'temp block{in highp 4-component vector of float Position gl_Position}' to 'temp highp float'
+ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier 
+ERROR: 44 compilation errors.  No code generated.
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_EXT_primitive_bounding_box
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_tessellation_shader
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:24  Function Definition: main( (global void)
+0:24    Function Parameters: 
+0:26    Sequence
+0:26      Constant:
+0:26        0.000000
+0:28      Sequence
+0:28        move second child to first child (temp highp int)
+0:28          'a' (temp highp int)
+0:28          Constant:
+0:28            1512 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp highp 4-component vector of float)
+0:36          'p' (temp highp 4-component vector of float)
+0:36          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:36            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36              Constant:
+0:36                1 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp highp float)
+0:37          'ps' (temp highp float)
+0:37          gl_PointSize: direct index for structure (in highp float PointSize)
+0:37            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37              Constant:
+0:37                1 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:38      Sequence
+0:38        move second child to first child (temp highp float)
+0:38          'cd' (temp highp float)
+0:38          Constant:
+0:38            0.000000
+0:40      Sequence
+0:40        move second child to first child (temp highp int)
+0:40          'pvi' (temp highp int)
+0:40          'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:41      Sequence
+0:41        move second child to first child (temp highp int)
+0:41          'pid' (temp highp int)
+0:41          'gl_PrimitiveID' (in highp int PrimitiveID)
+0:42      Sequence
+0:42        move second child to first child (temp highp 3-component vector of float)
+0:42          'tc' (temp highp 3-component vector of float)
+0:42          'gl_TessCoord' (in highp 3-component vector of float TessCoord)
+0:43      Sequence
+0:43        move second child to first child (temp highp float)
+0:43          'tlo' (temp highp float)
+0:43          direct index (patch temp highp float TessLevelOuter)
+0:43            'gl_TessLevelOuter' (patch in 4-element array of highp float TessLevelOuter)
+0:43            Constant:
+0:43              3 (const int)
+0:44      Sequence
+0:44        move second child to first child (temp highp float)
+0:44          'tli' (temp highp float)
+0:44          direct index (patch temp highp float TessLevelInner)
+0:44            'gl_TessLevelInner' (patch in 2-element array of highp float TessLevelInner)
+0:44            Constant:
+0:44              1 (const int)
+0:46      move second child to first child (temp highp 4-component vector of float)
+0:46        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:46          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:46          Constant:
+0:46            0 (const uint)
+0:46        'p' (temp highp 4-component vector of float)
+0:47      move second child to first child (temp highp float)
+0:47        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:47          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:47          Constant:
+0:47            1 (const uint)
+0:47        'ps' (temp highp float)
+0:48      move second child to first child (temp highp float)
+0:48        Constant:
+0:48          0.000000
+0:48        'cd' (temp highp float)
+0:117  Function Definition: pointSize2( (global void)
+0:117    Function Parameters: 
+0:?     Sequence
+0:120      move second child to first child (temp highp float)
+0:120        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:120          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:120          Constant:
+0:120            1 (const uint)
+0:120        'ps' (temp highp float)
+0:125  Function Definition: bbbad( (global void)
+0:125    Function Parameters: 
+0:127    Sequence
+0:127      'gl_BoundingBoxOES' (temp float)
+0:?   Linker Objects
+0:?     'patchIn' (patch in highp 4-component vector of float)
+0:?     'patchOut' (patch out highp 4-component vector of float)
+0:?     'badp1' (smooth patch in highp 4-component vector of float)
+0:?     'badp2' (flat patch in highp 4-component vector of float)
+0:?     'badp3' (noperspective patch in highp 4-component vector of float)
+0:?     'badp4' (patch sample in highp 3-component vector of float)
+0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})
+0:?     'ina' (in highp 2-component vector of float)
+0:?     'inb' (in 32-element array of highp 2-component vector of float)
+0:?     'inc' (in 32-element array of highp 2-component vector of float)
+0:?     'ind' (in 32-element array of highp 2-component vector of float)
+0:?     'bla' (in block{in highp int f})
+0:?     'blb' (in 32-element array of block{in highp int f})
+0:?     'blc' (in 32-element array of block{in highp int f})
+0:?     'bld' (in 32-element array of block{in highp int f})
+0:?     'ivla' (layout(location=23 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlb' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlc' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:?     'ovla' (layout(location=23 ) out 2-element array of highp 4-component vector of float)
+0:?     'ovlb' (layout(location=24 ) out 2-element array of highp 4-component vector of float)
+0:?     'pinbi' (patch in block{in highp int a})
+0:?     'myColor2' (centroid out highp 3-component vector of float)
+0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:?     'perSampleColor' (sample out highp 4-component vector of float)
+
+
+Linked tessellation evaluation stage:
+
+
+Shader version: 310
+Requested GL_ARB_separate_shader_objects
+Requested GL_EXT_primitive_bounding_box
+Requested GL_EXT_shader_io_blocks
+Requested GL_EXT_tessellation_shader
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_tessellation_point_size
+Requested GL_OES_tessellation_shader
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:24  Function Definition: main( (global void)
+0:24    Function Parameters: 
+0:26    Sequence
+0:26      Constant:
+0:26        0.000000
+0:28      Sequence
+0:28        move second child to first child (temp highp int)
+0:28          'a' (temp highp int)
+0:28          Constant:
+0:28            1512 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp highp 4-component vector of float)
+0:36          'p' (temp highp 4-component vector of float)
+0:36          gl_Position: direct index for structure (in highp 4-component vector of float Position)
+0:36            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:36              Constant:
+0:36                1 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp highp float)
+0:37          'ps' (temp highp float)
+0:37          gl_PointSize: direct index for structure (in highp float PointSize)
+0:37            direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37              'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
+0:37              Constant:
+0:37                1 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:38      Sequence
+0:38        move second child to first child (temp highp float)
+0:38          'cd' (temp highp float)
+0:38          Constant:
+0:38            0.000000
+0:40      Sequence
+0:40        move second child to first child (temp highp int)
+0:40          'pvi' (temp highp int)
+0:40          'gl_PatchVerticesIn' (in highp int PatchVertices)
+0:41      Sequence
+0:41        move second child to first child (temp highp int)
+0:41          'pid' (temp highp int)
+0:41          'gl_PrimitiveID' (in highp int PrimitiveID)
+0:42      Sequence
+0:42        move second child to first child (temp highp 3-component vector of float)
+0:42          'tc' (temp highp 3-component vector of float)
+0:42          'gl_TessCoord' (in highp 3-component vector of float TessCoord)
+0:43      Sequence
+0:43        move second child to first child (temp highp float)
+0:43          'tlo' (temp highp float)
+0:43          direct index (patch temp highp float TessLevelOuter)
+0:43            'gl_TessLevelOuter' (patch in 4-element array of highp float TessLevelOuter)
+0:43            Constant:
+0:43              3 (const int)
+0:44      Sequence
+0:44        move second child to first child (temp highp float)
+0:44          'tli' (temp highp float)
+0:44          direct index (patch temp highp float TessLevelInner)
+0:44            'gl_TessLevelInner' (patch in 2-element array of highp float TessLevelInner)
+0:44            Constant:
+0:44              1 (const int)
+0:46      move second child to first child (temp highp 4-component vector of float)
+0:46        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:46          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:46          Constant:
+0:46            0 (const uint)
+0:46        'p' (temp highp 4-component vector of float)
+0:47      move second child to first child (temp highp float)
+0:47        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:47          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:47          Constant:
+0:47            1 (const uint)
+0:47        'ps' (temp highp float)
+0:48      move second child to first child (temp highp float)
+0:48        Constant:
+0:48          0.000000
+0:48        'cd' (temp highp float)
+0:117  Function Definition: pointSize2( (global void)
+0:117    Function Parameters: 
+0:?     Sequence
+0:120      move second child to first child (temp highp float)
+0:120        gl_PointSize: direct index for structure (gl_PointSize highp float PointSize)
+0:120          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
+0:120          Constant:
+0:120            1 (const uint)
+0:120        'ps' (temp highp float)
+0:125  Function Definition: bbbad( (global void)
+0:125    Function Parameters: 
+0:127    Sequence
+0:127      'gl_BoundingBoxOES' (temp float)
+0:?   Linker Objects
+0:?     'patchIn' (patch in highp 4-component vector of float)
+0:?     'patchOut' (patch out highp 4-component vector of float)
+0:?     'badp1' (smooth patch in highp 4-component vector of float)
+0:?     'badp2' (flat patch in highp 4-component vector of float)
+0:?     'badp3' (noperspective patch in highp 4-component vector of float)
+0:?     'badp4' (patch sample in highp 3-component vector of float)
+0:?     'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position})
+0:?     'ina' (in highp 2-component vector of float)
+0:?     'inb' (in 32-element array of highp 2-component vector of float)
+0:?     'inc' (in 32-element array of highp 2-component vector of float)
+0:?     'ind' (in 32-element array of highp 2-component vector of float)
+0:?     'bla' (in block{in highp int f})
+0:?     'blb' (in 32-element array of block{in highp int f})
+0:?     'blc' (in 32-element array of block{in highp int f})
+0:?     'bld' (in 32-element array of block{in highp int f})
+0:?     'ivla' (layout(location=23 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlb' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:?     'ivlc' (layout(location=24 ) in 32-element array of highp 4-component vector of float)
+0:?     'ovla' (layout(location=23 ) out 2-element array of highp 4-component vector of float)
+0:?     'ovlb' (layout(location=24 ) out 2-element array of highp 4-component vector of float)
+0:?     'pinbi' (patch in block{in highp int a})
+0:?     'myColor2' (centroid out highp 3-component vector of float)
+0:?     'centr' (centroid in 32-element array of highp 3-component vector of float)
+0:?     'perSampleColor' (sample out highp 4-component vector of float)
+
diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out
index 1430c61..73a33c4 100644
--- a/Test/baseResults/310.vert.out
+++ b/Test/baseResults/310.vert.out
@@ -1,1959 +1,1959 @@
-310.vert

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:3: 'shared' : not supported in this stage: vertex

-ERROR: 0:4: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:5: 'buffer' : buffers can be declared only as blocks 

-ERROR: 0:10: 'location' : overlapping use of location 3

-ERROR: 0:58: 'usampler2DMSArray' : Reserved word. 

-ERROR: 0:58: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:67: 'textureSamples' : no matching overloaded function found 

-ERROR: 0:69: 'assign' :  l-value required "ini" (can't modify shader input)

-ERROR: 0:69: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. 

-ERROR: 0:72: 'out' : cannot be bool 

-ERROR: 0:73: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo

-ERROR: 0:75: 'vertex-shader array-of-array output' : not supported with this profile: es

-ERROR: 0:78: 'vertex-shader array-of-struct output' : not supported with this profile: es

-ERROR: 0:79: 'vertex-shader array-of-struct output' : not supported with this profile: es

-ERROR: 0:81: 'vertex-shader struct output containing an array' : not supported with this profile: es

-ERROR: 0:83: 'vertex-shader struct output containing structure' : not supported with this profile: es

-ERROR: 0:85: 'std430' : requires the 'buffer' storage qualifier 

-ERROR: 0:97: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type 

-ERROR: 0:105: 'location' : overlapping use of location 12

-ERROR: 0:107: 'input block' : not supported in this stage: vertex

-ERROR: 0:109: 'gl_PerVertex' : block redeclaration has extra members 

-ERROR: 0:119: 'gl_PointSize' : member of nameless block was not redeclared 

-ERROR: 0:119: 'assign' :  cannot convert from 'const float' to 'gl_PointSize highp void PointSize'

-ERROR: 0:122: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

-ERROR: 0:127: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block 

-ERROR: 0:131: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block 

-ERROR: 0:135: 'centroid' : cannot use centroid qualifier on an interface block 

-ERROR: 0:139: 'invariant' : cannot use invariant qualifier on an interface block 

-ERROR: 0:155: 'precise' : Reserved word. 

-ERROR: 0:156: 'fma' : required extension not requested: Possible extensions include:

-GL_EXT_gpu_shader5

-GL_OES_gpu_shader5

-ERROR: 0:157: 'variable indexing sampler array' : not supported for this version or the enabled extensions 

-ERROR: 0:161: 'variable indexing uniform block array' : not supported for this version or the enabled extensions 

-ERROR: 0:162: 'variable indexing buffer block array' : not supported with this profile: es

-ERROR: 0:164: 'variable indexing sampler array' : not supported for this version or the enabled extensions 

-ERROR: 0:165: 'non-constant offset argument' : not supported for this version or the enabled extensions 

-ERROR: 0:166: 'textureGatherOffsets' : required extension not requested: Possible extensions include:

-GL_EXT_gpu_shader5

-GL_OES_gpu_shader5

-ERROR: 0:177: 'variable indexing buffer block array' : not supported with this profile: es

-ERROR: 0:182: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument

-ERROR: 0:185: 'samplerBuffer' : Reserved word. 

-ERROR: 0:185: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:186: 'isamplerBuffer' : Reserved word. 

-ERROR: 0:186: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:187: 'usamplerBuffer' : Reserved word. 

-ERROR: 0:187: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:188: 'imageBuffer' : Reserved word. 

-ERROR: 0:188: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:189: 'iimageBuffer' : Reserved word. 

-ERROR: 0:189: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:190: 'uimageBuffer' : Reserved word. 

-ERROR: 0:190: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:195: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:196: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:197: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:198: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:199: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:200: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:235: 'imageCubeArray' : Reserved word. 

-ERROR: 0:235: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:236: 'iimageCubeArray' : Reserved word. 

-ERROR: 0:236: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:237: 'uimageCubeArray' : Reserved word. 

-ERROR: 0:237: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:239: 'samplerCubeArray' : Reserved word. 

-ERROR: 0:239: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:240: 'samplerCubeArrayShadow' : Reserved word. 

-ERROR: 0:240: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:241: 'isamplerCubeArray' : Reserved word. 

-ERROR: 0:241: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:242: 'usamplerCubeArray' : Reserved word. 

-ERROR: 0:242: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:246: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:247: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:248: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:250: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:251: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:252: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:253: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:321: 'sampler2DMSArray' : Reserved word. 

-ERROR: 0:321: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:322: 'isampler2DMSArray' : Reserved word. 

-ERROR: 0:322: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:323: 'usampler2DMSArray' : Reserved word. 

-ERROR: 0:323: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:329: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:330: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:331: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:351: 'textureSize' : no matching overloaded function found 

-ERROR: 0:351: '=' :  cannot convert from 'const float' to 'temp highp 3-component vector of int'

-ERROR: 0:389: 'sample' : Reserved word. 

-ERROR: 0:400: 'interpolateAtCentroid' : no matching overloaded function found 

-ERROR: 0:401: 'interpolateAtSample' : no matching overloaded function found 

-ERROR: 0:402: 'interpolateAtOffset' : no matching overloaded function found 

-ERROR: 92 compilation errors.  No code generated.

-

-

-Shader version: 310

-Requested GL_EXT_texture_buffer

-Requested GL_OES_gpu_shader5

-Requested GL_OES_shader_image_atomic

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_shader_multisample_interpolation

-Requested GL_OES_texture_buffer

-Requested GL_OES_texture_cube_map_array

-Requested GL_OES_texture_storage_multisample_2d_array

-ERROR: node is still EOpNull!

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:?     Sequence

-0:15      move second child to first child (temp highp 2-component vector of uint)

-0:15        'u2' (temp highp 2-component vector of uint)

-0:15        addCarry (global highp 2-component vector of uint)

-0:15          'u2' (temp highp 2-component vector of uint)

-0:15          'u2' (temp highp 2-component vector of uint)

-0:15          'u2' (temp highp 2-component vector of uint)

-0:17      move second child to first child (temp highp uint)

-0:17        'u1' (temp highp uint)

-0:17        subBorrow (global highp uint)

-0:17          'u1' (temp highp uint)

-0:17          'u1' (temp highp uint)

-0:17          'u1' (temp highp uint)

-0:19      uMulExtended (global void)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:21      iMulExtended (global void)

-0:21        'i4' (temp highp 4-component vector of int)

-0:21        'i4' (temp highp 4-component vector of int)

-0:21        'i4' (temp highp 4-component vector of int)

-0:21        'i4' (temp highp 4-component vector of int)

-0:23      move second child to first child (temp highp int)

-0:23        'i1' (temp highp int)

-0:23        bitfieldExtract (global highp int)

-0:23          'i1' (temp highp int)

-0:23          Constant:

-0:23            4 (const int)

-0:23          Constant:

-0:23            5 (const int)

-0:25      move second child to first child (temp highp 3-component vector of uint)

-0:25        'u3' (temp highp 3-component vector of uint)

-0:25        bitfieldExtract (global highp 3-component vector of uint)

-0:25          'u3' (temp highp 3-component vector of uint)

-0:25          Constant:

-0:25            4 (const int)

-0:25          Constant:

-0:25            5 (const int)

-0:27      move second child to first child (temp highp 3-component vector of int)

-0:27        'i3' (temp highp 3-component vector of int)

-0:27        bitfieldInsert (global highp 3-component vector of int)

-0:27          'i3' (temp highp 3-component vector of int)

-0:27          'i3' (temp highp 3-component vector of int)

-0:27          Constant:

-0:27            4 (const int)

-0:27          Constant:

-0:27            5 (const int)

-0:28      move second child to first child (temp highp uint)

-0:28        'u1' (temp highp uint)

-0:28        bitfieldInsert (global highp uint)

-0:28          'u1' (temp highp uint)

-0:28          'u1' (temp highp uint)

-0:28          Constant:

-0:28            4 (const int)

-0:28          Constant:

-0:28            5 (const int)

-0:30      move second child to first child (temp highp 2-component vector of int)

-0:30        'i2' (temp highp 2-component vector of int)

-0:30        bitFieldReverse (global highp 2-component vector of int)

-0:30          'i2' (temp highp 2-component vector of int)

-0:31      move second child to first child (temp highp 4-component vector of uint)

-0:31        'u4' (temp highp 4-component vector of uint)

-0:31        bitFieldReverse (global highp 4-component vector of uint)

-0:31          'u4' (temp highp 4-component vector of uint)

-0:32      move second child to first child (temp highp int)

-0:32        'i1' (temp highp int)

-0:32        bitCount (global highp int)

-0:32          'i1' (temp highp int)

-0:33      move second child to first child (temp highp 3-component vector of int)

-0:33        'i3' (temp highp 3-component vector of int)

-0:33        bitCount (global highp 3-component vector of int)

-0:33          'u3' (temp highp 3-component vector of uint)

-0:34      move second child to first child (temp highp 2-component vector of int)

-0:34        'i2' (temp highp 2-component vector of int)

-0:34        findLSB (global highp 2-component vector of int)

-0:34          'i2' (temp highp 2-component vector of int)

-0:35      move second child to first child (temp highp 4-component vector of int)

-0:35        'i4' (temp highp 4-component vector of int)

-0:35        findLSB (global highp 4-component vector of int)

-0:35          'u4' (temp highp 4-component vector of uint)

-0:36      move second child to first child (temp highp int)

-0:36        'i1' (temp highp int)

-0:36        findMSB (global highp int)

-0:36          'i1' (temp highp int)

-0:37      move second child to first child (temp highp 2-component vector of int)

-0:37        'i2' (temp highp 2-component vector of int)

-0:37        findMSB (global highp 2-component vector of int)

-0:37          'u2' (temp highp 2-component vector of uint)

-0:40      move second child to first child (temp highp 3-component vector of float)

-0:40        'v3' (temp highp 3-component vector of float)

-0:40        frexp (global highp 3-component vector of float)

-0:40          'v3' (temp highp 3-component vector of float)

-0:40          'i3' (temp highp 3-component vector of int)

-0:42      move second child to first child (temp highp 2-component vector of float)

-0:42        'v2' (temp highp 2-component vector of float)

-0:42        ldexp (global highp 2-component vector of float)

-0:42          'v2' (temp highp 2-component vector of float)

-0:42          'i2' (temp highp 2-component vector of int)

-0:45      move second child to first child (temp highp uint)

-0:45        'u1' (temp highp uint)

-0:45        PackUnorm4x8 (global highp uint)

-0:45          'v4' (temp mediump 4-component vector of float)

-0:46      move second child to first child (temp highp uint)

-0:46        'u1' (temp highp uint)

-0:46        PackSnorm4x8 (global highp uint)

-0:46          'v4' (temp mediump 4-component vector of float)

-0:47      move second child to first child (temp mediump 4-component vector of float)

-0:47        'v4' (temp mediump 4-component vector of float)

-0:47        UnpackUnorm4x8 (global mediump 4-component vector of float)

-0:47          'u1' (temp highp uint)

-0:48      move second child to first child (temp mediump 4-component vector of float)

-0:48        'v4' (temp mediump 4-component vector of float)

-0:48        UnpackSnorm4x8 (global mediump 4-component vector of float)

-0:48          'u1' (temp highp uint)

-0:60  Function Definition: foo( (global void)

-0:60    Function Parameters: 

-0:?     Sequence

-0:63      move second child to first child (temp highp 2-component vector of int)

-0:63        'v2' (temp highp 2-component vector of int)

-0:63        textureSize (global highp 2-component vector of int)

-0:63          's2dms' (uniform highp sampler2DMS)

-0:64      move second child to first child (temp highp 2-component vector of int)

-0:64        'v2' (temp highp 2-component vector of int)

-0:64        textureSize (global highp 2-component vector of int)

-0:64          'us2dms' (uniform highp usampler2DMS)

-0:65      Sequence

-0:65        move second child to first child (temp highp 4-component vector of float)

-0:65          'v4' (temp highp 4-component vector of float)

-0:65          textureFetch (global highp 4-component vector of float)

-0:65            's2dms' (uniform highp sampler2DMS)

-0:65            'v2' (temp highp 2-component vector of int)

-0:65            Constant:

-0:65              2 (const int)

-0:66      Sequence

-0:66        move second child to first child (temp highp 4-component vector of int)

-0:66          'iv4' (temp highp 4-component vector of int)

-0:66          textureFetch (global highp 4-component vector of int)

-0:66            'is2dms' (uniform highp isampler2DMS)

-0:66            'v2' (temp highp 2-component vector of int)

-0:66            Constant:

-0:66              2 (const int)

-0:67      Constant:

-0:67        0.000000

-0:69      frexp (global highp float)

-0:69        'f' (temp highp float)

-0:69        'ini' (in highp int)

-0:114  Function Definition: foo_IO( (global void)

-0:114    Function Parameters: 

-0:116    Sequence

-0:116      Sequence

-0:116        move second child to first child (temp highp int)

-0:116          'sum' (temp highp int)

-0:116          add (temp highp int)

-0:116            'gl_VertexID' (gl_VertexId highp int VertexId)

-0:117            'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-0:118      move second child to first child (temp highp 4-component vector of float)

-0:118        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)

-0:118          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })

-0:118          Constant:

-0:118            0 (const uint)

-0:118        Constant:

-0:118          1.000000

-0:118          1.000000

-0:118          1.000000

-0:118          1.000000

-0:119      gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)

-0:119        'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })

-0:119        Constant:

-0:119          1 (const uint)

-0:153  Function Definition: pfooBad( (global void)

-0:153    Function Parameters: 

-0:?     Sequence

-0:156      move second child to first child (temp highp 2-component vector of float)

-0:156        'h' (temp highp 2-component vector of float)

-0:156        fma (global highp 2-component vector of float)

-0:156          'inf' (in highp 2-component vector of float)

-0:156          'ing' (in highp 2-component vector of float)

-0:156          'h' (temp highp 2-component vector of float)

-0:157      indirect index (temp highp sampler2D)

-0:157        'sArray' (uniform 4-element array of highp sampler2D)

-0:157        add (temp highp int)

-0:157          'sIndex' (uniform highp int)

-0:157          Constant:

-0:157            1 (const int)

-0:158      indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)

-0:158        'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)

-0:158        add (temp highp int)

-0:158          'sIndex' (uniform highp int)

-0:158          Constant:

-0:158            1 (const int)

-0:159      direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})

-0:159        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:159        Constant:

-0:159          1 (const int)

-0:160      direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})

-0:160        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:160        Constant:

-0:160          2 (const int)

-0:161      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})

-0:161        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:161        add (temp highp int)

-0:161          'sIndex' (uniform highp int)

-0:161          Constant:

-0:161            1 (const int)

-0:162      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})

-0:162        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:162        'sIndex' (uniform highp int)

-0:163      direct index (writeonly temp highp image2D)

-0:163        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:163        Constant:

-0:163          2 (const int)

-0:164      indirect index (writeonly temp highp image2D)

-0:164        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:164        component-wise multiply (temp highp int)

-0:164          'sIndex' (uniform highp int)

-0:164          Constant:

-0:164            2 (const int)

-0:165      textureGatherOffset (global highp 4-component vector of float)

-0:165        direct index (temp highp sampler2D)

-0:165          'sArray' (uniform 4-element array of highp sampler2D)

-0:165          Constant:

-0:165            0 (const int)

-0:165        Constant:

-0:165          0.100000

-0:165          0.100000

-0:165        Convert float to int (temp highp 2-component vector of int)

-0:165          'inf' (in highp 2-component vector of float)

-0:166      textureGatherOffsets (global highp 4-component vector of float)

-0:166        direct index (temp highp sampler2D)

-0:166          'sArray' (uniform 4-element array of highp sampler2D)

-0:166          Constant:

-0:166            0 (const int)

-0:166        Constant:

-0:166          0.100000

-0:166          0.100000

-0:166        Constant:

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:171  Function Definition: pfoo( (global void)

-0:171    Function Parameters: 

-0:?     Sequence

-0:174      move second child to first child (temp highp 2-component vector of float)

-0:174        'h' (temp highp 2-component vector of float)

-0:174        fma (global highp 2-component vector of float)

-0:174          'inf' (in highp 2-component vector of float)

-0:174          'ing' (in highp 2-component vector of float)

-0:174          'h' (temp highp 2-component vector of float)

-0:175      indirect index (temp highp sampler2D)

-0:175        'sArray' (uniform 4-element array of highp sampler2D)

-0:175        add (temp highp int)

-0:175          'sIndex' (uniform highp int)

-0:175          Constant:

-0:175            1 (const int)

-0:176      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})

-0:176        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:176        add (temp highp int)

-0:176          'sIndex' (uniform highp int)

-0:176          Constant:

-0:176            1 (const int)

-0:177      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})

-0:177        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:177        subtract (temp highp int)

-0:177          'sIndex' (uniform highp int)

-0:177          Constant:

-0:177            2 (const int)

-0:178      direct index (writeonly temp highp image2D)

-0:178        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:178        Constant:

-0:178          2 (const int)

-0:179      indirect index (writeonly temp highp image2D)

-0:179        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:179        subtract (temp highp int)

-0:179          'sIndex' (uniform highp int)

-0:179          Constant:

-0:179            2 (const int)

-0:180      textureGatherOffset (global highp 4-component vector of float)

-0:180        direct index (temp highp sampler2D)

-0:180          'sArray' (uniform 4-element array of highp sampler2D)

-0:180          Constant:

-0:180            0 (const int)

-0:180        Constant:

-0:180          0.100000

-0:180          0.100000

-0:180        Convert float to int (temp highp 2-component vector of int)

-0:180          'inf' (in highp 2-component vector of float)

-0:181      textureGatherOffsets (global highp 4-component vector of float)

-0:181        direct index (temp highp sampler2D)

-0:181          'sArray' (uniform 4-element array of highp sampler2D)

-0:181          Constant:

-0:181            0 (const int)

-0:181        Constant:

-0:181          0.100000

-0:181          0.100000

-0:181        Constant:

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:182      textureGatherOffsets (global highp 4-component vector of float)

-0:182        direct index (temp highp sampler2D)

-0:182          'sArray' (uniform 4-element array of highp sampler2D)

-0:182          Constant:

-0:182            0 (const int)

-0:182        Constant:

-0:182          0.100000

-0:182          0.100000

-0:182        'offsets' (uniform 4-element array of highp 2-component vector of int)

-0:220  Function Definition: bufferT( (global void)

-0:220    Function Parameters: 

-0:222    Sequence

-0:222      Sequence

-0:222        move second child to first child (temp highp int)

-0:222          's1' (temp highp int)

-0:222          textureSize (global highp int)

-0:222            'bufSamp1' (uniform highp samplerBuffer)

-0:223      Sequence

-0:223        move second child to first child (temp highp int)

-0:223          's2' (temp highp int)

-0:223          textureSize (global highp int)

-0:223            'bufSamp2' (uniform highp isamplerBuffer)

-0:224      Sequence

-0:224        move second child to first child (temp highp int)

-0:224          's3' (temp highp int)

-0:224          textureSize (global highp int)

-0:224            'bufSamp3' (uniform highp usamplerBuffer)

-0:226      Sequence

-0:226        move second child to first child (temp highp int)

-0:226          's4' (temp highp int)

-0:226          imageQuerySize (global highp int)

-0:226            'bufSamp4' (writeonly uniform highp imageBuffer)

-0:227      Sequence

-0:227        move second child to first child (temp highp int)

-0:227          's5' (temp highp int)

-0:227          imageQuerySize (global highp int)

-0:227            'bufSamp5' (writeonly uniform highp iimageBuffer)

-0:228      Sequence

-0:228        move second child to first child (temp highp int)

-0:228          's6' (temp highp int)

-0:228          imageQuerySize (global highp int)

-0:228            'bufSamp6' (writeonly uniform highp uimageBuffer)

-0:230      Sequence

-0:230        move second child to first child (temp highp 4-component vector of float)

-0:230          'f1' (temp highp 4-component vector of float)

-0:230          textureFetch (global highp 4-component vector of float)

-0:230            'bufSamp1' (uniform highp samplerBuffer)

-0:230            's1' (temp highp int)

-0:231      Sequence

-0:231        move second child to first child (temp highp 4-component vector of int)

-0:231          'f2' (temp highp 4-component vector of int)

-0:231          textureFetch (global highp 4-component vector of int)

-0:231            'bufSamp2' (uniform highp isamplerBuffer)

-0:231            's2' (temp highp int)

-0:232      Sequence

-0:232        move second child to first child (temp highp 4-component vector of uint)

-0:232          'f3' (temp highp 4-component vector of uint)

-0:232          textureFetch (global highp 4-component vector of uint)

-0:232            'bufSamp3' (uniform highp usamplerBuffer)

-0:232            's3' (temp highp int)

-0:279  Function Definition: CAT( (global void)

-0:279    Function Parameters: 

-0:281    Sequence

-0:281      Sequence

-0:281        move second child to first child (temp highp 3-component vector of int)

-0:281          's4' (temp highp 3-component vector of int)

-0:281          textureSize (global highp 3-component vector of int)

-0:281            'CA4' (uniform highp samplerCubeArray)

-0:281            Constant:

-0:281              1 (const int)

-0:282      Sequence

-0:282        move second child to first child (temp highp 3-component vector of int)

-0:282          's5' (temp highp 3-component vector of int)

-0:282          textureSize (global highp 3-component vector of int)

-0:282            'CA5' (uniform highp samplerCubeArrayShadow)

-0:282            Constant:

-0:282              1 (const int)

-0:283      Sequence

-0:283        move second child to first child (temp highp 3-component vector of int)

-0:283          's6' (temp highp 3-component vector of int)

-0:283          textureSize (global highp 3-component vector of int)

-0:283            'CA6' (uniform highp isamplerCubeArray)

-0:283            Constant:

-0:283              1 (const int)

-0:284      Sequence

-0:284        move second child to first child (temp highp 3-component vector of int)

-0:284          's7' (temp highp 3-component vector of int)

-0:284          textureSize (global highp 3-component vector of int)

-0:284            'CA7' (uniform highp usamplerCubeArray)

-0:284            Constant:

-0:284              1 (const int)

-0:286      Sequence

-0:286        move second child to first child (temp highp 4-component vector of float)

-0:286          't4' (temp highp 4-component vector of float)

-0:286          texture (global highp 4-component vector of float)

-0:286            'CA4' (uniform highp samplerCubeArray)

-0:286            Constant:

-0:286              0.500000

-0:286              0.500000

-0:286              0.500000

-0:286              0.500000

-0:287      Sequence

-0:287        move second child to first child (temp highp float)

-0:287          't5' (temp highp float)

-0:287          texture (global highp float)

-0:287            'CA5' (uniform highp samplerCubeArrayShadow)

-0:287            Constant:

-0:287              0.500000

-0:287              0.500000

-0:287              0.500000

-0:287              0.500000

-0:287            Constant:

-0:287              3.000000

-0:288      Sequence

-0:288        move second child to first child (temp highp 4-component vector of int)

-0:288          't6' (temp highp 4-component vector of int)

-0:288          texture (global highp 4-component vector of int)

-0:288            'CA6' (uniform highp isamplerCubeArray)

-0:288            Constant:

-0:288              0.500000

-0:288              0.500000

-0:288              0.500000

-0:288              0.500000

-0:289      Sequence

-0:289        move second child to first child (temp highp 4-component vector of uint)

-0:289          't7' (temp highp 4-component vector of uint)

-0:289          texture (global highp 4-component vector of uint)

-0:289            'CA7' (uniform highp usamplerCubeArray)

-0:289            Constant:

-0:289              0.500000

-0:289              0.500000

-0:289              0.500000

-0:289              0.500000

-0:291      Sequence

-0:291        move second child to first child (temp highp 4-component vector of float)

-0:291          'L4' (temp highp 4-component vector of float)

-0:291          textureLod (global highp 4-component vector of float)

-0:291            'CA4' (uniform highp samplerCubeArray)

-0:291            Constant:

-0:291              0.500000

-0:291              0.500000

-0:291              0.500000

-0:291              0.500000

-0:291            Constant:

-0:291              0.240000

-0:292      Sequence

-0:292        move second child to first child (temp highp 4-component vector of int)

-0:292          'L6' (temp highp 4-component vector of int)

-0:292          textureLod (global highp 4-component vector of int)

-0:292            'CA6' (uniform highp isamplerCubeArray)

-0:292            Constant:

-0:292              0.500000

-0:292              0.500000

-0:292              0.500000

-0:292              0.500000

-0:292            Constant:

-0:292              0.260000

-0:293      Sequence

-0:293        move second child to first child (temp highp 4-component vector of uint)

-0:293          'L7' (temp highp 4-component vector of uint)

-0:293          textureLod (global highp 4-component vector of uint)

-0:293            'CA7' (uniform highp usamplerCubeArray)

-0:293            Constant:

-0:293              0.500000

-0:293              0.500000

-0:293              0.500000

-0:293              0.500000

-0:293            Constant:

-0:293              0.270000

-0:295      Sequence

-0:295        move second child to first child (temp highp 4-component vector of float)

-0:295          'g4' (temp highp 4-component vector of float)

-0:295          textureGrad (global highp 4-component vector of float)

-0:295            'CA4' (uniform highp samplerCubeArray)

-0:295            Constant:

-0:295              0.500000

-0:295              0.500000

-0:295              0.500000

-0:295              0.500000

-0:295            Constant:

-0:295              0.100000

-0:295              0.100000

-0:295              0.100000

-0:295            Constant:

-0:295              0.200000

-0:295              0.200000

-0:295              0.200000

-0:296      Sequence

-0:296        move second child to first child (temp highp 4-component vector of int)

-0:296          'g6' (temp highp 4-component vector of int)

-0:296          textureGrad (global highp 4-component vector of int)

-0:296            'CA6' (uniform highp isamplerCubeArray)

-0:296            Constant:

-0:296              0.500000

-0:296              0.500000

-0:296              0.500000

-0:296              0.500000

-0:296            Constant:

-0:296              0.100000

-0:296              0.100000

-0:296              0.100000

-0:296            Constant:

-0:296              0.200000

-0:296              0.200000

-0:296              0.200000

-0:297      Sequence

-0:297        move second child to first child (temp highp 4-component vector of uint)

-0:297          'g7' (temp highp 4-component vector of uint)

-0:297          textureGrad (global highp 4-component vector of uint)

-0:297            'CA7' (uniform highp usamplerCubeArray)

-0:297            Constant:

-0:297              0.500000

-0:297              0.500000

-0:297              0.500000

-0:297              0.500000

-0:297            Constant:

-0:297              0.100000

-0:297              0.100000

-0:297              0.100000

-0:297            Constant:

-0:297              0.200000

-0:297              0.200000

-0:297              0.200000

-0:299      Sequence

-0:299        move second child to first child (temp highp 4-component vector of float)

-0:299          'gath4' (temp highp 4-component vector of float)

-0:299          textureGather (global highp 4-component vector of float)

-0:299            'CA4' (uniform highp samplerCubeArray)

-0:299            Constant:

-0:299              0.500000

-0:299              0.500000

-0:299              0.500000

-0:299              0.500000

-0:300      Sequence

-0:300        move second child to first child (temp highp 4-component vector of float)

-0:300          'gathC4' (temp highp 4-component vector of float)

-0:300          textureGather (global highp 4-component vector of float)

-0:300            'CA4' (uniform highp samplerCubeArray)

-0:300            Constant:

-0:300              0.500000

-0:300              0.500000

-0:300              0.500000

-0:300              0.500000

-0:300            Constant:

-0:300              2 (const int)

-0:301      Sequence

-0:301        move second child to first child (temp highp 4-component vector of int)

-0:301          'gath6' (temp highp 4-component vector of int)

-0:301          textureGather (global highp 4-component vector of int)

-0:301            'CA6' (uniform highp isamplerCubeArray)

-0:301            Constant:

-0:301              0.500000

-0:301              0.500000

-0:301              0.500000

-0:301              0.500000

-0:302      Sequence

-0:302        move second child to first child (temp highp 4-component vector of int)

-0:302          'gathC6' (temp highp 4-component vector of int)

-0:302          textureGather (global highp 4-component vector of int)

-0:302            'CA6' (uniform highp isamplerCubeArray)

-0:302            Constant:

-0:302              0.500000

-0:302              0.500000

-0:302              0.500000

-0:302              0.500000

-0:302            Constant:

-0:302              1 (const int)

-0:303      Sequence

-0:303        move second child to first child (temp highp 4-component vector of uint)

-0:303          'gath7' (temp highp 4-component vector of uint)

-0:303          textureGather (global highp 4-component vector of uint)

-0:303            'CA7' (uniform highp usamplerCubeArray)

-0:303            Constant:

-0:303              0.500000

-0:303              0.500000

-0:303              0.500000

-0:303              0.500000

-0:304      Sequence

-0:304        move second child to first child (temp highp 4-component vector of uint)

-0:304          'gathC7' (temp highp 4-component vector of uint)

-0:304          textureGather (global highp 4-component vector of uint)

-0:304            'CA7' (uniform highp usamplerCubeArray)

-0:304            Constant:

-0:304              0.500000

-0:304              0.500000

-0:304              0.500000

-0:304              0.500000

-0:304            Constant:

-0:304              0 (const int)

-0:306      Sequence

-0:306        move second child to first child (temp highp 4-component vector of float)

-0:306          'gath5' (temp highp 4-component vector of float)

-0:306          textureGather (global highp 4-component vector of float)

-0:306            'CA5' (uniform highp samplerCubeArrayShadow)

-0:306            Constant:

-0:306              0.500000

-0:306              0.500000

-0:306              0.500000

-0:306              0.500000

-0:306            Constant:

-0:306              2.500000

-0:308      Sequence

-0:308        move second child to first child (temp highp 3-component vector of int)

-0:308          's1' (temp highp 3-component vector of int)

-0:308          imageQuerySize (global highp 3-component vector of int)

-0:308            'CA1' (writeonly uniform highp imageCubeArray)

-0:309      Sequence

-0:309        move second child to first child (temp highp 3-component vector of int)

-0:309          's2' (temp highp 3-component vector of int)

-0:309          imageQuerySize (global highp 3-component vector of int)

-0:309            'CA2' (writeonly uniform highp iimageCubeArray)

-0:310      Sequence

-0:310        move second child to first child (temp highp 3-component vector of int)

-0:310          's3' (temp highp 3-component vector of int)

-0:310          imageQuerySize (global highp 3-component vector of int)

-0:310            'CA3' (writeonly uniform highp uimageCubeArray)

-0:312      imageStore (global highp void)

-0:312        'CA1' (writeonly uniform highp imageCubeArray)

-0:312        's3' (temp highp 3-component vector of int)

-0:312        Constant:

-0:312          1.000000

-0:312          1.000000

-0:312          1.000000

-0:312          1.000000

-0:313      imageStore (global highp void)

-0:313        'CA2' (writeonly uniform highp iimageCubeArray)

-0:313        's3' (temp highp 3-component vector of int)

-0:313        Constant:

-0:313          1 (const int)

-0:313          1 (const int)

-0:313          1 (const int)

-0:313          1 (const int)

-0:314      imageStore (global highp void)

-0:314        'CA3' (writeonly uniform highp uimageCubeArray)

-0:314        's3' (temp highp 3-component vector of int)

-0:314        Constant:

-0:314          1 (const uint)

-0:314          1 (const uint)

-0:314          1 (const uint)

-0:314          1 (const uint)

-0:316      Sequence

-0:316        move second child to first child (temp highp 4-component vector of float)

-0:316          'cl1' (temp highp 4-component vector of float)

-0:316          imageLoad (global highp 4-component vector of float)

-0:316            'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)

-0:316            's3' (temp highp 3-component vector of int)

-0:317      Sequence

-0:317        move second child to first child (temp highp 4-component vector of int)

-0:317          'cl2' (temp highp 4-component vector of int)

-0:317          imageLoad (global highp 4-component vector of int)

-0:317            'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)

-0:317            's3' (temp highp 3-component vector of int)

-0:318      Sequence

-0:318        move second child to first child (temp highp 4-component vector of uint)

-0:318          'cl3' (temp highp 4-component vector of uint)

-0:318          imageLoad (global highp 4-component vector of uint)

-0:318            'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)

-0:318            's3' (temp highp 3-component vector of int)

-0:343  Function Definition: MSA( (global void)

-0:343    Function Parameters: 

-0:345    Sequence

-0:345      Sequence

-0:345        move second child to first child (temp highp 4-component vector of float)

-0:345          'tf' (temp highp 4-component vector of float)

-0:345          textureFetch (global highp 4-component vector of float)

-0:345            'samp2DMSA' (uniform highp sampler2DMSArray)

-0:345            Constant:

-0:345              5 (const int)

-0:345              5 (const int)

-0:345              5 (const int)

-0:345            Constant:

-0:345              2 (const int)

-0:346      Sequence

-0:346        move second child to first child (temp highp 4-component vector of int)

-0:346          'tfi' (temp highp 4-component vector of int)

-0:346          textureFetch (global highp 4-component vector of int)

-0:346            'samp2DMSAi' (uniform highp isampler2DMSArray)

-0:346            Constant:

-0:346              5 (const int)

-0:346              5 (const int)

-0:346              5 (const int)

-0:346            Constant:

-0:346              2 (const int)

-0:347      Sequence

-0:347        move second child to first child (temp highp 4-component vector of uint)

-0:347          'tfu' (temp highp 4-component vector of uint)

-0:347          textureFetch (global highp 4-component vector of uint)

-0:347            'samp2DMSAu' (uniform highp usampler2DMSArray)

-0:347            Constant:

-0:347              5 (const int)

-0:347              5 (const int)

-0:347              5 (const int)

-0:347            Constant:

-0:347              2 (const int)

-0:349      Sequence

-0:349        move second child to first child (temp highp 3-component vector of int)

-0:349          'tfs' (temp highp 3-component vector of int)

-0:349          textureSize (global highp 3-component vector of int)

-0:349            'samp2DMSA' (uniform highp sampler2DMSArray)

-0:350      Sequence

-0:350        move second child to first child (temp highp 3-component vector of int)

-0:350          'tfsi' (temp highp 3-component vector of int)

-0:350          textureSize (global highp 3-component vector of int)

-0:350            'samp2DMSAi' (uniform highp isampler2DMSArray)

-0:352      Sequence

-0:352        move second child to first child (temp highp 3-component vector of int)

-0:352          'tfsu' (temp highp 3-component vector of int)

-0:352          textureSize (global highp 3-component vector of int)

-0:352            'samp2DMSAu' (uniform highp usampler2DMSArray)

-0:364  Function Definition: goodImageAtom( (global void)

-0:364    Function Parameters: 

-0:?     Sequence

-0:370      imageAtomicAdd (global highp int)

-0:370        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:370        'P' (uniform highp 2-component vector of int)

-0:370        'dati' (temp highp int)

-0:371      imageAtomicAdd (global highp uint)

-0:371        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:371        'P' (uniform highp 2-component vector of int)

-0:371        'datu' (temp highp uint)

-0:372      imageAtomicMin (global highp int)

-0:372        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:372        'P' (uniform highp 2-component vector of int)

-0:372        'dati' (temp highp int)

-0:373      imageAtomicMin (global highp uint)

-0:373        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:373        'P' (uniform highp 2-component vector of int)

-0:373        'datu' (temp highp uint)

-0:374      imageAtomicMax (global highp int)

-0:374        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:374        'P' (uniform highp 2-component vector of int)

-0:374        'dati' (temp highp int)

-0:375      imageAtomicMax (global highp uint)

-0:375        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:375        'P' (uniform highp 2-component vector of int)

-0:375        'datu' (temp highp uint)

-0:376      imageAtomicAnd (global highp int)

-0:376        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:376        'P' (uniform highp 2-component vector of int)

-0:376        'dati' (temp highp int)

-0:377      imageAtomicAnd (global highp uint)

-0:377        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:377        'P' (uniform highp 2-component vector of int)

-0:377        'datu' (temp highp uint)

-0:378      imageAtomicOr (global highp int)

-0:378        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:378        'P' (uniform highp 2-component vector of int)

-0:378        'dati' (temp highp int)

-0:379      imageAtomicOr (global highp uint)

-0:379        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:379        'P' (uniform highp 2-component vector of int)

-0:379        'datu' (temp highp uint)

-0:380      imageAtomicXor (global highp int)

-0:380        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:380        'P' (uniform highp 2-component vector of int)

-0:380        'dati' (temp highp int)

-0:381      imageAtomicXor (global highp uint)

-0:381        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:381        'P' (uniform highp 2-component vector of int)

-0:381        'datu' (temp highp uint)

-0:382      imageAtomicExchange (global highp int)

-0:382        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:382        'P' (uniform highp 2-component vector of int)

-0:382        'dati' (temp highp int)

-0:383      imageAtomicExchange (global highp uint)

-0:383        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:383        'P' (uniform highp 2-component vector of int)

-0:383        'datu' (temp highp uint)

-0:384      imageAtomicExchange (global highp float)

-0:384        'im2Df' (layout(r32f ) uniform highp image2D)

-0:384        'P' (uniform highp 2-component vector of int)

-0:384        'datf' (temp highp float)

-0:385      imageAtomicCompSwap (global highp int)

-0:385        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:385        'P' (uniform highp 2-component vector of int)

-0:385        Constant:

-0:385          3 (const int)

-0:385        'dati' (temp highp int)

-0:386      imageAtomicCompSwap (global highp uint)

-0:386        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:386        'P' (uniform highp 2-component vector of int)

-0:386        Constant:

-0:386          5 (const uint)

-0:386        'datu' (temp highp uint)

-0:398  Function Definition: badInterp( (global void)

-0:398    Function Parameters: 

-0:400    Sequence

-0:400      Constant:

-0:400        0.000000

-0:401      Constant:

-0:401        0.000000

-0:402      Constant:

-0:402        0.000000

-0:?   Linker Objects

-0:?     's' (shared highp 4-component vector of float)

-0:?     'v' (buffer highp 4-component vector of float)

-0:?     'ini' (in highp int)

-0:?     'x' (layout(location=2 ) uniform highp 4X4 matrix of float)

-0:?     'y' (layout(location=3 ) uniform highp 4X4 matrix of float)

-0:?     'xi' (layout(location=2 ) smooth out highp 4X4 matrix of float)

-0:?     'yi' (layout(location=3 ) smooth out highp 4X4 matrix of float)

-0:?     's2dms' (uniform highp sampler2DMS)

-0:?     'is2dms' (uniform highp isampler2DMS)

-0:?     'us2dms' (uniform highp usampler2DMS)

-0:?     'us2dmsa' (uniform mediump usampler2DMSArray)

-0:?     'outb' (smooth out bool)

-0:?     'outo' (smooth out highp sampler2D)

-0:?     'outa' (smooth out 4-element array of highp float)

-0:?     'outaa' (smooth out 4-element array of 2-element array of highp float)

-0:?     'outs' (smooth out structure{global highp float f})

-0:?     'outasa' (smooth out 4-element array of structure{global highp float f})

-0:?     'outsa' (smooth out 4-element array of structure{global highp float f})

-0:?     'outSA' (smooth out structure{global 4-element array of highp float f})

-0:?     'outSS' (smooth out structure{global highp float f, global structure{global highp float f} s})

-0:?     'U430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})

-0:?     'B430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer highp int a})

-0:?     'outbinst' (out block{out highp int a, out highp 4-component vector of float v, out highp sampler2D s})

-0:?     'anon@0' (out block{layout(location=12 ) out highp int aAnon, layout(location=13 ) out highp 4-component vector of float vAnon})

-0:?     'aliased' (layout(location=12 ) smooth out highp int)

-0:?     'inbinst' (in block{in highp int a})

-0:?     'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })

-0:?     'smon' (smooth out block{out highp int i})

-0:?     'fmon' (flat out block{out highp int i})

-0:?     'cmon' (centroid out block{out highp int i})

-0:?     'imon' (invariant out block{out highp int i})

-0:?     'inf' (in highp 2-component vector of float)

-0:?     'ing' (in highp 2-component vector of float)

-0:?     'offsets' (uniform 4-element array of highp 2-component vector of int)

-0:?     'sArray' (uniform 4-element array of highp sampler2D)

-0:?     'sIndex' (uniform highp int)

-0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)

-0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:?     'iArray' (writeonly uniform 5-element array of highp image2D)

-0:?     'constOffsets' (const 4-element array of highp 2-component vector of int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?     'badSamp1' (uniform mediump samplerBuffer)

-0:?     'badSamp2' (uniform mediump isamplerBuffer)

-0:?     'badSamp3' (uniform mediump usamplerBuffer)

-0:?     'badSamp4' (writeonly uniform mediump imageBuffer)

-0:?     'badSamp5' (writeonly uniform mediump iimageBuffer)

-0:?     'badSamp6' (writeonly uniform mediump uimageBuffer)

-0:?     'noPreSamp1' (uniform mediump samplerBuffer)

-0:?     'noPreSamp2' (uniform mediump isamplerBuffer)

-0:?     'noPreSamp3' (uniform mediump usamplerBuffer)

-0:?     'noPreSamp4' (writeonly uniform mediump imageBuffer)

-0:?     'noPreSamp5' (writeonly uniform mediump iimageBuffer)

-0:?     'noPreSamp6' (writeonly uniform mediump uimageBuffer)

-0:?     'bufSamp1' (uniform highp samplerBuffer)

-0:?     'bufSamp2' (uniform highp isamplerBuffer)

-0:?     'bufSamp3' (uniform highp usamplerBuffer)

-0:?     'bufSamp4' (writeonly uniform highp imageBuffer)

-0:?     'bufSamp5' (writeonly uniform highp iimageBuffer)

-0:?     'bufSamp6' (writeonly uniform highp uimageBuffer)

-0:?     'badCA1' (writeonly uniform mediump imageCubeArray)

-0:?     'badCA2' (writeonly uniform mediump iimageCubeArray)

-0:?     'badCA3' (writeonly uniform mediump uimageCubeArray)

-0:?     'badCA4' (uniform mediump samplerCubeArray)

-0:?     'badCA5' (uniform mediump samplerCubeArrayShadow)

-0:?     'badCA6' (uniform mediump isamplerCubeArray)

-0:?     'badCA7' (uniform mediump usamplerCubeArray)

-0:?     'noPreCA1' (writeonly uniform mediump imageCubeArray)

-0:?     'noPreCA2' (writeonly uniform mediump iimageCubeArray)

-0:?     'noPreCA3' (writeonly uniform mediump uimageCubeArray)

-0:?     'noPreCA4' (uniform mediump samplerCubeArray)

-0:?     'noPreCA5' (uniform mediump samplerCubeArrayShadow)

-0:?     'noPreCA6' (uniform mediump isamplerCubeArray)

-0:?     'noPreCA7' (uniform mediump usamplerCubeArray)

-0:?     'CA1' (writeonly uniform highp imageCubeArray)

-0:?     'CA2' (writeonly uniform highp iimageCubeArray)

-0:?     'CA3' (writeonly uniform highp uimageCubeArray)

-0:?     'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)

-0:?     'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)

-0:?     'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)

-0:?     'CA4' (uniform highp samplerCubeArray)

-0:?     'CA5' (uniform highp samplerCubeArrayShadow)

-0:?     'CA6' (uniform highp isamplerCubeArray)

-0:?     'CA7' (uniform highp usamplerCubeArray)

-0:?     'bad2DMS' (uniform mediump sampler2DMSArray)

-0:?     'bad2DMSi' (uniform mediump isampler2DMSArray)

-0:?     'bad2DMSu' (uniform mediump usampler2DMSArray)

-0:?     'noPrec2DMS' (uniform mediump sampler2DMSArray)

-0:?     'noPrec2DMSi' (uniform mediump isampler2DMSArray)

-0:?     'noPrec2DMSu' (uniform mediump usampler2DMSArray)

-0:?     'samp2DMSA' (uniform highp sampler2DMSArray)

-0:?     'samp2DMSAi' (uniform highp isampler2DMSArray)

-0:?     'samp2DMSAu' (uniform highp usampler2DMSArray)

-0:?     'im2Df' (layout(r32f ) uniform highp image2D)

-0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:?     'P' (uniform highp 2-component vector of int)

-0:?     'colorSampInBad' (smooth sample out highp 4-component vector of float)

-0:?     'colorSample' (smooth sample out highp 4-component vector of float)

-0:?     'colorfsi' (flat sample out highp 4-component vector of float)

-0:?     'sampInArray' (smooth sample out 4-element array of highp 3-component vector of float)

-0:?     'inv4' (in highp 4-component vector of float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 310

-Requested GL_EXT_texture_buffer

-Requested GL_OES_gpu_shader5

-Requested GL_OES_shader_image_atomic

-Requested GL_OES_shader_io_blocks

-Requested GL_OES_shader_multisample_interpolation

-Requested GL_OES_texture_buffer

-Requested GL_OES_texture_cube_map_array

-Requested GL_OES_texture_storage_multisample_2d_array

-ERROR: node is still EOpNull!

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:?     Sequence

-0:15      move second child to first child (temp highp 2-component vector of uint)

-0:15        'u2' (temp highp 2-component vector of uint)

-0:15        addCarry (global highp 2-component vector of uint)

-0:15          'u2' (temp highp 2-component vector of uint)

-0:15          'u2' (temp highp 2-component vector of uint)

-0:15          'u2' (temp highp 2-component vector of uint)

-0:17      move second child to first child (temp highp uint)

-0:17        'u1' (temp highp uint)

-0:17        subBorrow (global highp uint)

-0:17          'u1' (temp highp uint)

-0:17          'u1' (temp highp uint)

-0:17          'u1' (temp highp uint)

-0:19      uMulExtended (global void)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:19        'u4' (temp highp 4-component vector of uint)

-0:21      iMulExtended (global void)

-0:21        'i4' (temp highp 4-component vector of int)

-0:21        'i4' (temp highp 4-component vector of int)

-0:21        'i4' (temp highp 4-component vector of int)

-0:21        'i4' (temp highp 4-component vector of int)

-0:23      move second child to first child (temp highp int)

-0:23        'i1' (temp highp int)

-0:23        bitfieldExtract (global highp int)

-0:23          'i1' (temp highp int)

-0:23          Constant:

-0:23            4 (const int)

-0:23          Constant:

-0:23            5 (const int)

-0:25      move second child to first child (temp highp 3-component vector of uint)

-0:25        'u3' (temp highp 3-component vector of uint)

-0:25        bitfieldExtract (global highp 3-component vector of uint)

-0:25          'u3' (temp highp 3-component vector of uint)

-0:25          Constant:

-0:25            4 (const int)

-0:25          Constant:

-0:25            5 (const int)

-0:27      move second child to first child (temp highp 3-component vector of int)

-0:27        'i3' (temp highp 3-component vector of int)

-0:27        bitfieldInsert (global highp 3-component vector of int)

-0:27          'i3' (temp highp 3-component vector of int)

-0:27          'i3' (temp highp 3-component vector of int)

-0:27          Constant:

-0:27            4 (const int)

-0:27          Constant:

-0:27            5 (const int)

-0:28      move second child to first child (temp highp uint)

-0:28        'u1' (temp highp uint)

-0:28        bitfieldInsert (global highp uint)

-0:28          'u1' (temp highp uint)

-0:28          'u1' (temp highp uint)

-0:28          Constant:

-0:28            4 (const int)

-0:28          Constant:

-0:28            5 (const int)

-0:30      move second child to first child (temp highp 2-component vector of int)

-0:30        'i2' (temp highp 2-component vector of int)

-0:30        bitFieldReverse (global highp 2-component vector of int)

-0:30          'i2' (temp highp 2-component vector of int)

-0:31      move second child to first child (temp highp 4-component vector of uint)

-0:31        'u4' (temp highp 4-component vector of uint)

-0:31        bitFieldReverse (global highp 4-component vector of uint)

-0:31          'u4' (temp highp 4-component vector of uint)

-0:32      move second child to first child (temp highp int)

-0:32        'i1' (temp highp int)

-0:32        bitCount (global highp int)

-0:32          'i1' (temp highp int)

-0:33      move second child to first child (temp highp 3-component vector of int)

-0:33        'i3' (temp highp 3-component vector of int)

-0:33        bitCount (global highp 3-component vector of int)

-0:33          'u3' (temp highp 3-component vector of uint)

-0:34      move second child to first child (temp highp 2-component vector of int)

-0:34        'i2' (temp highp 2-component vector of int)

-0:34        findLSB (global highp 2-component vector of int)

-0:34          'i2' (temp highp 2-component vector of int)

-0:35      move second child to first child (temp highp 4-component vector of int)

-0:35        'i4' (temp highp 4-component vector of int)

-0:35        findLSB (global highp 4-component vector of int)

-0:35          'u4' (temp highp 4-component vector of uint)

-0:36      move second child to first child (temp highp int)

-0:36        'i1' (temp highp int)

-0:36        findMSB (global highp int)

-0:36          'i1' (temp highp int)

-0:37      move second child to first child (temp highp 2-component vector of int)

-0:37        'i2' (temp highp 2-component vector of int)

-0:37        findMSB (global highp 2-component vector of int)

-0:37          'u2' (temp highp 2-component vector of uint)

-0:40      move second child to first child (temp highp 3-component vector of float)

-0:40        'v3' (temp highp 3-component vector of float)

-0:40        frexp (global highp 3-component vector of float)

-0:40          'v3' (temp highp 3-component vector of float)

-0:40          'i3' (temp highp 3-component vector of int)

-0:42      move second child to first child (temp highp 2-component vector of float)

-0:42        'v2' (temp highp 2-component vector of float)

-0:42        ldexp (global highp 2-component vector of float)

-0:42          'v2' (temp highp 2-component vector of float)

-0:42          'i2' (temp highp 2-component vector of int)

-0:45      move second child to first child (temp highp uint)

-0:45        'u1' (temp highp uint)

-0:45        PackUnorm4x8 (global highp uint)

-0:45          'v4' (temp mediump 4-component vector of float)

-0:46      move second child to first child (temp highp uint)

-0:46        'u1' (temp highp uint)

-0:46        PackSnorm4x8 (global highp uint)

-0:46          'v4' (temp mediump 4-component vector of float)

-0:47      move second child to first child (temp mediump 4-component vector of float)

-0:47        'v4' (temp mediump 4-component vector of float)

-0:47        UnpackUnorm4x8 (global mediump 4-component vector of float)

-0:47          'u1' (temp highp uint)

-0:48      move second child to first child (temp mediump 4-component vector of float)

-0:48        'v4' (temp mediump 4-component vector of float)

-0:48        UnpackSnorm4x8 (global mediump 4-component vector of float)

-0:48          'u1' (temp highp uint)

-0:60  Function Definition: foo( (global void)

-0:60    Function Parameters: 

-0:?     Sequence

-0:63      move second child to first child (temp highp 2-component vector of int)

-0:63        'v2' (temp highp 2-component vector of int)

-0:63        textureSize (global highp 2-component vector of int)

-0:63          's2dms' (uniform highp sampler2DMS)

-0:64      move second child to first child (temp highp 2-component vector of int)

-0:64        'v2' (temp highp 2-component vector of int)

-0:64        textureSize (global highp 2-component vector of int)

-0:64          'us2dms' (uniform highp usampler2DMS)

-0:65      Sequence

-0:65        move second child to first child (temp highp 4-component vector of float)

-0:65          'v4' (temp highp 4-component vector of float)

-0:65          textureFetch (global highp 4-component vector of float)

-0:65            's2dms' (uniform highp sampler2DMS)

-0:65            'v2' (temp highp 2-component vector of int)

-0:65            Constant:

-0:65              2 (const int)

-0:66      Sequence

-0:66        move second child to first child (temp highp 4-component vector of int)

-0:66          'iv4' (temp highp 4-component vector of int)

-0:66          textureFetch (global highp 4-component vector of int)

-0:66            'is2dms' (uniform highp isampler2DMS)

-0:66            'v2' (temp highp 2-component vector of int)

-0:66            Constant:

-0:66              2 (const int)

-0:67      Constant:

-0:67        0.000000

-0:69      frexp (global highp float)

-0:69        'f' (temp highp float)

-0:69        'ini' (in highp int)

-0:114  Function Definition: foo_IO( (global void)

-0:114    Function Parameters: 

-0:116    Sequence

-0:116      Sequence

-0:116        move second child to first child (temp highp int)

-0:116          'sum' (temp highp int)

-0:116          add (temp highp int)

-0:116            'gl_VertexID' (gl_VertexId highp int VertexId)

-0:117            'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-0:118      move second child to first child (temp highp 4-component vector of float)

-0:118        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)

-0:118          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })

-0:118          Constant:

-0:118            0 (const uint)

-0:118        Constant:

-0:118          1.000000

-0:118          1.000000

-0:118          1.000000

-0:118          1.000000

-0:119      gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)

-0:119        'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })

-0:119        Constant:

-0:119          1 (const uint)

-0:153  Function Definition: pfooBad( (global void)

-0:153    Function Parameters: 

-0:?     Sequence

-0:156      move second child to first child (temp highp 2-component vector of float)

-0:156        'h' (temp highp 2-component vector of float)

-0:156        fma (global highp 2-component vector of float)

-0:156          'inf' (in highp 2-component vector of float)

-0:156          'ing' (in highp 2-component vector of float)

-0:156          'h' (temp highp 2-component vector of float)

-0:157      indirect index (temp highp sampler2D)

-0:157        'sArray' (uniform 4-element array of highp sampler2D)

-0:157        add (temp highp int)

-0:157          'sIndex' (uniform highp int)

-0:157          Constant:

-0:157            1 (const int)

-0:158      indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)

-0:158        'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)

-0:158        add (temp highp int)

-0:158          'sIndex' (uniform highp int)

-0:158          Constant:

-0:158            1 (const int)

-0:159      direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})

-0:159        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:159        Constant:

-0:159          1 (const int)

-0:160      direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})

-0:160        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:160        Constant:

-0:160          2 (const int)

-0:161      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})

-0:161        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:161        add (temp highp int)

-0:161          'sIndex' (uniform highp int)

-0:161          Constant:

-0:161            1 (const int)

-0:162      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})

-0:162        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:162        'sIndex' (uniform highp int)

-0:163      direct index (writeonly temp highp image2D)

-0:163        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:163        Constant:

-0:163          2 (const int)

-0:164      indirect index (writeonly temp highp image2D)

-0:164        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:164        component-wise multiply (temp highp int)

-0:164          'sIndex' (uniform highp int)

-0:164          Constant:

-0:164            2 (const int)

-0:165      textureGatherOffset (global highp 4-component vector of float)

-0:165        direct index (temp highp sampler2D)

-0:165          'sArray' (uniform 4-element array of highp sampler2D)

-0:165          Constant:

-0:165            0 (const int)

-0:165        Constant:

-0:165          0.100000

-0:165          0.100000

-0:165        Convert float to int (temp highp 2-component vector of int)

-0:165          'inf' (in highp 2-component vector of float)

-0:166      textureGatherOffsets (global highp 4-component vector of float)

-0:166        direct index (temp highp sampler2D)

-0:166          'sArray' (uniform 4-element array of highp sampler2D)

-0:166          Constant:

-0:166            0 (const int)

-0:166        Constant:

-0:166          0.100000

-0:166          0.100000

-0:166        Constant:

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:166          0 (const int)

-0:171  Function Definition: pfoo( (global void)

-0:171    Function Parameters: 

-0:?     Sequence

-0:174      move second child to first child (temp highp 2-component vector of float)

-0:174        'h' (temp highp 2-component vector of float)

-0:174        fma (global highp 2-component vector of float)

-0:174          'inf' (in highp 2-component vector of float)

-0:174          'ing' (in highp 2-component vector of float)

-0:174          'h' (temp highp 2-component vector of float)

-0:175      indirect index (temp highp sampler2D)

-0:175        'sArray' (uniform 4-element array of highp sampler2D)

-0:175        add (temp highp int)

-0:175          'sIndex' (uniform highp int)

-0:175          Constant:

-0:175            1 (const int)

-0:176      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})

-0:176        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:176        add (temp highp int)

-0:176          'sIndex' (uniform highp int)

-0:176          Constant:

-0:176            1 (const int)

-0:177      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})

-0:177        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:177        subtract (temp highp int)

-0:177          'sIndex' (uniform highp int)

-0:177          Constant:

-0:177            2 (const int)

-0:178      direct index (writeonly temp highp image2D)

-0:178        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:178        Constant:

-0:178          2 (const int)

-0:179      indirect index (writeonly temp highp image2D)

-0:179        'iArray' (writeonly uniform 5-element array of highp image2D)

-0:179        subtract (temp highp int)

-0:179          'sIndex' (uniform highp int)

-0:179          Constant:

-0:179            2 (const int)

-0:180      textureGatherOffset (global highp 4-component vector of float)

-0:180        direct index (temp highp sampler2D)

-0:180          'sArray' (uniform 4-element array of highp sampler2D)

-0:180          Constant:

-0:180            0 (const int)

-0:180        Constant:

-0:180          0.100000

-0:180          0.100000

-0:180        Convert float to int (temp highp 2-component vector of int)

-0:180          'inf' (in highp 2-component vector of float)

-0:181      textureGatherOffsets (global highp 4-component vector of float)

-0:181        direct index (temp highp sampler2D)

-0:181          'sArray' (uniform 4-element array of highp sampler2D)

-0:181          Constant:

-0:181            0 (const int)

-0:181        Constant:

-0:181          0.100000

-0:181          0.100000

-0:181        Constant:

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:181          0 (const int)

-0:182      textureGatherOffsets (global highp 4-component vector of float)

-0:182        direct index (temp highp sampler2D)

-0:182          'sArray' (uniform 4-element array of highp sampler2D)

-0:182          Constant:

-0:182            0 (const int)

-0:182        Constant:

-0:182          0.100000

-0:182          0.100000

-0:182        'offsets' (uniform 4-element array of highp 2-component vector of int)

-0:220  Function Definition: bufferT( (global void)

-0:220    Function Parameters: 

-0:222    Sequence

-0:222      Sequence

-0:222        move second child to first child (temp highp int)

-0:222          's1' (temp highp int)

-0:222          textureSize (global highp int)

-0:222            'bufSamp1' (uniform highp samplerBuffer)

-0:223      Sequence

-0:223        move second child to first child (temp highp int)

-0:223          's2' (temp highp int)

-0:223          textureSize (global highp int)

-0:223            'bufSamp2' (uniform highp isamplerBuffer)

-0:224      Sequence

-0:224        move second child to first child (temp highp int)

-0:224          's3' (temp highp int)

-0:224          textureSize (global highp int)

-0:224            'bufSamp3' (uniform highp usamplerBuffer)

-0:226      Sequence

-0:226        move second child to first child (temp highp int)

-0:226          's4' (temp highp int)

-0:226          imageQuerySize (global highp int)

-0:226            'bufSamp4' (writeonly uniform highp imageBuffer)

-0:227      Sequence

-0:227        move second child to first child (temp highp int)

-0:227          's5' (temp highp int)

-0:227          imageQuerySize (global highp int)

-0:227            'bufSamp5' (writeonly uniform highp iimageBuffer)

-0:228      Sequence

-0:228        move second child to first child (temp highp int)

-0:228          's6' (temp highp int)

-0:228          imageQuerySize (global highp int)

-0:228            'bufSamp6' (writeonly uniform highp uimageBuffer)

-0:230      Sequence

-0:230        move second child to first child (temp highp 4-component vector of float)

-0:230          'f1' (temp highp 4-component vector of float)

-0:230          textureFetch (global highp 4-component vector of float)

-0:230            'bufSamp1' (uniform highp samplerBuffer)

-0:230            's1' (temp highp int)

-0:231      Sequence

-0:231        move second child to first child (temp highp 4-component vector of int)

-0:231          'f2' (temp highp 4-component vector of int)

-0:231          textureFetch (global highp 4-component vector of int)

-0:231            'bufSamp2' (uniform highp isamplerBuffer)

-0:231            's2' (temp highp int)

-0:232      Sequence

-0:232        move second child to first child (temp highp 4-component vector of uint)

-0:232          'f3' (temp highp 4-component vector of uint)

-0:232          textureFetch (global highp 4-component vector of uint)

-0:232            'bufSamp3' (uniform highp usamplerBuffer)

-0:232            's3' (temp highp int)

-0:279  Function Definition: CAT( (global void)

-0:279    Function Parameters: 

-0:281    Sequence

-0:281      Sequence

-0:281        move second child to first child (temp highp 3-component vector of int)

-0:281          's4' (temp highp 3-component vector of int)

-0:281          textureSize (global highp 3-component vector of int)

-0:281            'CA4' (uniform highp samplerCubeArray)

-0:281            Constant:

-0:281              1 (const int)

-0:282      Sequence

-0:282        move second child to first child (temp highp 3-component vector of int)

-0:282          's5' (temp highp 3-component vector of int)

-0:282          textureSize (global highp 3-component vector of int)

-0:282            'CA5' (uniform highp samplerCubeArrayShadow)

-0:282            Constant:

-0:282              1 (const int)

-0:283      Sequence

-0:283        move second child to first child (temp highp 3-component vector of int)

-0:283          's6' (temp highp 3-component vector of int)

-0:283          textureSize (global highp 3-component vector of int)

-0:283            'CA6' (uniform highp isamplerCubeArray)

-0:283            Constant:

-0:283              1 (const int)

-0:284      Sequence

-0:284        move second child to first child (temp highp 3-component vector of int)

-0:284          's7' (temp highp 3-component vector of int)

-0:284          textureSize (global highp 3-component vector of int)

-0:284            'CA7' (uniform highp usamplerCubeArray)

-0:284            Constant:

-0:284              1 (const int)

-0:286      Sequence

-0:286        move second child to first child (temp highp 4-component vector of float)

-0:286          't4' (temp highp 4-component vector of float)

-0:286          texture (global highp 4-component vector of float)

-0:286            'CA4' (uniform highp samplerCubeArray)

-0:286            Constant:

-0:286              0.500000

-0:286              0.500000

-0:286              0.500000

-0:286              0.500000

-0:287      Sequence

-0:287        move second child to first child (temp highp float)

-0:287          't5' (temp highp float)

-0:287          texture (global highp float)

-0:287            'CA5' (uniform highp samplerCubeArrayShadow)

-0:287            Constant:

-0:287              0.500000

-0:287              0.500000

-0:287              0.500000

-0:287              0.500000

-0:287            Constant:

-0:287              3.000000

-0:288      Sequence

-0:288        move second child to first child (temp highp 4-component vector of int)

-0:288          't6' (temp highp 4-component vector of int)

-0:288          texture (global highp 4-component vector of int)

-0:288            'CA6' (uniform highp isamplerCubeArray)

-0:288            Constant:

-0:288              0.500000

-0:288              0.500000

-0:288              0.500000

-0:288              0.500000

-0:289      Sequence

-0:289        move second child to first child (temp highp 4-component vector of uint)

-0:289          't7' (temp highp 4-component vector of uint)

-0:289          texture (global highp 4-component vector of uint)

-0:289            'CA7' (uniform highp usamplerCubeArray)

-0:289            Constant:

-0:289              0.500000

-0:289              0.500000

-0:289              0.500000

-0:289              0.500000

-0:291      Sequence

-0:291        move second child to first child (temp highp 4-component vector of float)

-0:291          'L4' (temp highp 4-component vector of float)

-0:291          textureLod (global highp 4-component vector of float)

-0:291            'CA4' (uniform highp samplerCubeArray)

-0:291            Constant:

-0:291              0.500000

-0:291              0.500000

-0:291              0.500000

-0:291              0.500000

-0:291            Constant:

-0:291              0.240000

-0:292      Sequence

-0:292        move second child to first child (temp highp 4-component vector of int)

-0:292          'L6' (temp highp 4-component vector of int)

-0:292          textureLod (global highp 4-component vector of int)

-0:292            'CA6' (uniform highp isamplerCubeArray)

-0:292            Constant:

-0:292              0.500000

-0:292              0.500000

-0:292              0.500000

-0:292              0.500000

-0:292            Constant:

-0:292              0.260000

-0:293      Sequence

-0:293        move second child to first child (temp highp 4-component vector of uint)

-0:293          'L7' (temp highp 4-component vector of uint)

-0:293          textureLod (global highp 4-component vector of uint)

-0:293            'CA7' (uniform highp usamplerCubeArray)

-0:293            Constant:

-0:293              0.500000

-0:293              0.500000

-0:293              0.500000

-0:293              0.500000

-0:293            Constant:

-0:293              0.270000

-0:295      Sequence

-0:295        move second child to first child (temp highp 4-component vector of float)

-0:295          'g4' (temp highp 4-component vector of float)

-0:295          textureGrad (global highp 4-component vector of float)

-0:295            'CA4' (uniform highp samplerCubeArray)

-0:295            Constant:

-0:295              0.500000

-0:295              0.500000

-0:295              0.500000

-0:295              0.500000

-0:295            Constant:

-0:295              0.100000

-0:295              0.100000

-0:295              0.100000

-0:295            Constant:

-0:295              0.200000

-0:295              0.200000

-0:295              0.200000

-0:296      Sequence

-0:296        move second child to first child (temp highp 4-component vector of int)

-0:296          'g6' (temp highp 4-component vector of int)

-0:296          textureGrad (global highp 4-component vector of int)

-0:296            'CA6' (uniform highp isamplerCubeArray)

-0:296            Constant:

-0:296              0.500000

-0:296              0.500000

-0:296              0.500000

-0:296              0.500000

-0:296            Constant:

-0:296              0.100000

-0:296              0.100000

-0:296              0.100000

-0:296            Constant:

-0:296              0.200000

-0:296              0.200000

-0:296              0.200000

-0:297      Sequence

-0:297        move second child to first child (temp highp 4-component vector of uint)

-0:297          'g7' (temp highp 4-component vector of uint)

-0:297          textureGrad (global highp 4-component vector of uint)

-0:297            'CA7' (uniform highp usamplerCubeArray)

-0:297            Constant:

-0:297              0.500000

-0:297              0.500000

-0:297              0.500000

-0:297              0.500000

-0:297            Constant:

-0:297              0.100000

-0:297              0.100000

-0:297              0.100000

-0:297            Constant:

-0:297              0.200000

-0:297              0.200000

-0:297              0.200000

-0:299      Sequence

-0:299        move second child to first child (temp highp 4-component vector of float)

-0:299          'gath4' (temp highp 4-component vector of float)

-0:299          textureGather (global highp 4-component vector of float)

-0:299            'CA4' (uniform highp samplerCubeArray)

-0:299            Constant:

-0:299              0.500000

-0:299              0.500000

-0:299              0.500000

-0:299              0.500000

-0:300      Sequence

-0:300        move second child to first child (temp highp 4-component vector of float)

-0:300          'gathC4' (temp highp 4-component vector of float)

-0:300          textureGather (global highp 4-component vector of float)

-0:300            'CA4' (uniform highp samplerCubeArray)

-0:300            Constant:

-0:300              0.500000

-0:300              0.500000

-0:300              0.500000

-0:300              0.500000

-0:300            Constant:

-0:300              2 (const int)

-0:301      Sequence

-0:301        move second child to first child (temp highp 4-component vector of int)

-0:301          'gath6' (temp highp 4-component vector of int)

-0:301          textureGather (global highp 4-component vector of int)

-0:301            'CA6' (uniform highp isamplerCubeArray)

-0:301            Constant:

-0:301              0.500000

-0:301              0.500000

-0:301              0.500000

-0:301              0.500000

-0:302      Sequence

-0:302        move second child to first child (temp highp 4-component vector of int)

-0:302          'gathC6' (temp highp 4-component vector of int)

-0:302          textureGather (global highp 4-component vector of int)

-0:302            'CA6' (uniform highp isamplerCubeArray)

-0:302            Constant:

-0:302              0.500000

-0:302              0.500000

-0:302              0.500000

-0:302              0.500000

-0:302            Constant:

-0:302              1 (const int)

-0:303      Sequence

-0:303        move second child to first child (temp highp 4-component vector of uint)

-0:303          'gath7' (temp highp 4-component vector of uint)

-0:303          textureGather (global highp 4-component vector of uint)

-0:303            'CA7' (uniform highp usamplerCubeArray)

-0:303            Constant:

-0:303              0.500000

-0:303              0.500000

-0:303              0.500000

-0:303              0.500000

-0:304      Sequence

-0:304        move second child to first child (temp highp 4-component vector of uint)

-0:304          'gathC7' (temp highp 4-component vector of uint)

-0:304          textureGather (global highp 4-component vector of uint)

-0:304            'CA7' (uniform highp usamplerCubeArray)

-0:304            Constant:

-0:304              0.500000

-0:304              0.500000

-0:304              0.500000

-0:304              0.500000

-0:304            Constant:

-0:304              0 (const int)

-0:306      Sequence

-0:306        move second child to first child (temp highp 4-component vector of float)

-0:306          'gath5' (temp highp 4-component vector of float)

-0:306          textureGather (global highp 4-component vector of float)

-0:306            'CA5' (uniform highp samplerCubeArrayShadow)

-0:306            Constant:

-0:306              0.500000

-0:306              0.500000

-0:306              0.500000

-0:306              0.500000

-0:306            Constant:

-0:306              2.500000

-0:308      Sequence

-0:308        move second child to first child (temp highp 3-component vector of int)

-0:308          's1' (temp highp 3-component vector of int)

-0:308          imageQuerySize (global highp 3-component vector of int)

-0:308            'CA1' (writeonly uniform highp imageCubeArray)

-0:309      Sequence

-0:309        move second child to first child (temp highp 3-component vector of int)

-0:309          's2' (temp highp 3-component vector of int)

-0:309          imageQuerySize (global highp 3-component vector of int)

-0:309            'CA2' (writeonly uniform highp iimageCubeArray)

-0:310      Sequence

-0:310        move second child to first child (temp highp 3-component vector of int)

-0:310          's3' (temp highp 3-component vector of int)

-0:310          imageQuerySize (global highp 3-component vector of int)

-0:310            'CA3' (writeonly uniform highp uimageCubeArray)

-0:312      imageStore (global highp void)

-0:312        'CA1' (writeonly uniform highp imageCubeArray)

-0:312        's3' (temp highp 3-component vector of int)

-0:312        Constant:

-0:312          1.000000

-0:312          1.000000

-0:312          1.000000

-0:312          1.000000

-0:313      imageStore (global highp void)

-0:313        'CA2' (writeonly uniform highp iimageCubeArray)

-0:313        's3' (temp highp 3-component vector of int)

-0:313        Constant:

-0:313          1 (const int)

-0:313          1 (const int)

-0:313          1 (const int)

-0:313          1 (const int)

-0:314      imageStore (global highp void)

-0:314        'CA3' (writeonly uniform highp uimageCubeArray)

-0:314        's3' (temp highp 3-component vector of int)

-0:314        Constant:

-0:314          1 (const uint)

-0:314          1 (const uint)

-0:314          1 (const uint)

-0:314          1 (const uint)

-0:316      Sequence

-0:316        move second child to first child (temp highp 4-component vector of float)

-0:316          'cl1' (temp highp 4-component vector of float)

-0:316          imageLoad (global highp 4-component vector of float)

-0:316            'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)

-0:316            's3' (temp highp 3-component vector of int)

-0:317      Sequence

-0:317        move second child to first child (temp highp 4-component vector of int)

-0:317          'cl2' (temp highp 4-component vector of int)

-0:317          imageLoad (global highp 4-component vector of int)

-0:317            'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)

-0:317            's3' (temp highp 3-component vector of int)

-0:318      Sequence

-0:318        move second child to first child (temp highp 4-component vector of uint)

-0:318          'cl3' (temp highp 4-component vector of uint)

-0:318          imageLoad (global highp 4-component vector of uint)

-0:318            'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)

-0:318            's3' (temp highp 3-component vector of int)

-0:343  Function Definition: MSA( (global void)

-0:343    Function Parameters: 

-0:345    Sequence

-0:345      Sequence

-0:345        move second child to first child (temp highp 4-component vector of float)

-0:345          'tf' (temp highp 4-component vector of float)

-0:345          textureFetch (global highp 4-component vector of float)

-0:345            'samp2DMSA' (uniform highp sampler2DMSArray)

-0:345            Constant:

-0:345              5 (const int)

-0:345              5 (const int)

-0:345              5 (const int)

-0:345            Constant:

-0:345              2 (const int)

-0:346      Sequence

-0:346        move second child to first child (temp highp 4-component vector of int)

-0:346          'tfi' (temp highp 4-component vector of int)

-0:346          textureFetch (global highp 4-component vector of int)

-0:346            'samp2DMSAi' (uniform highp isampler2DMSArray)

-0:346            Constant:

-0:346              5 (const int)

-0:346              5 (const int)

-0:346              5 (const int)

-0:346            Constant:

-0:346              2 (const int)

-0:347      Sequence

-0:347        move second child to first child (temp highp 4-component vector of uint)

-0:347          'tfu' (temp highp 4-component vector of uint)

-0:347          textureFetch (global highp 4-component vector of uint)

-0:347            'samp2DMSAu' (uniform highp usampler2DMSArray)

-0:347            Constant:

-0:347              5 (const int)

-0:347              5 (const int)

-0:347              5 (const int)

-0:347            Constant:

-0:347              2 (const int)

-0:349      Sequence

-0:349        move second child to first child (temp highp 3-component vector of int)

-0:349          'tfs' (temp highp 3-component vector of int)

-0:349          textureSize (global highp 3-component vector of int)

-0:349            'samp2DMSA' (uniform highp sampler2DMSArray)

-0:350      Sequence

-0:350        move second child to first child (temp highp 3-component vector of int)

-0:350          'tfsi' (temp highp 3-component vector of int)

-0:350          textureSize (global highp 3-component vector of int)

-0:350            'samp2DMSAi' (uniform highp isampler2DMSArray)

-0:352      Sequence

-0:352        move second child to first child (temp highp 3-component vector of int)

-0:352          'tfsu' (temp highp 3-component vector of int)

-0:352          textureSize (global highp 3-component vector of int)

-0:352            'samp2DMSAu' (uniform highp usampler2DMSArray)

-0:364  Function Definition: goodImageAtom( (global void)

-0:364    Function Parameters: 

-0:?     Sequence

-0:370      imageAtomicAdd (global highp int)

-0:370        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:370        'P' (uniform highp 2-component vector of int)

-0:370        'dati' (temp highp int)

-0:371      imageAtomicAdd (global highp uint)

-0:371        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:371        'P' (uniform highp 2-component vector of int)

-0:371        'datu' (temp highp uint)

-0:372      imageAtomicMin (global highp int)

-0:372        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:372        'P' (uniform highp 2-component vector of int)

-0:372        'dati' (temp highp int)

-0:373      imageAtomicMin (global highp uint)

-0:373        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:373        'P' (uniform highp 2-component vector of int)

-0:373        'datu' (temp highp uint)

-0:374      imageAtomicMax (global highp int)

-0:374        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:374        'P' (uniform highp 2-component vector of int)

-0:374        'dati' (temp highp int)

-0:375      imageAtomicMax (global highp uint)

-0:375        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:375        'P' (uniform highp 2-component vector of int)

-0:375        'datu' (temp highp uint)

-0:376      imageAtomicAnd (global highp int)

-0:376        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:376        'P' (uniform highp 2-component vector of int)

-0:376        'dati' (temp highp int)

-0:377      imageAtomicAnd (global highp uint)

-0:377        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:377        'P' (uniform highp 2-component vector of int)

-0:377        'datu' (temp highp uint)

-0:378      imageAtomicOr (global highp int)

-0:378        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:378        'P' (uniform highp 2-component vector of int)

-0:378        'dati' (temp highp int)

-0:379      imageAtomicOr (global highp uint)

-0:379        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:379        'P' (uniform highp 2-component vector of int)

-0:379        'datu' (temp highp uint)

-0:380      imageAtomicXor (global highp int)

-0:380        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:380        'P' (uniform highp 2-component vector of int)

-0:380        'dati' (temp highp int)

-0:381      imageAtomicXor (global highp uint)

-0:381        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:381        'P' (uniform highp 2-component vector of int)

-0:381        'datu' (temp highp uint)

-0:382      imageAtomicExchange (global highp int)

-0:382        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:382        'P' (uniform highp 2-component vector of int)

-0:382        'dati' (temp highp int)

-0:383      imageAtomicExchange (global highp uint)

-0:383        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:383        'P' (uniform highp 2-component vector of int)

-0:383        'datu' (temp highp uint)

-0:384      imageAtomicExchange (global highp float)

-0:384        'im2Df' (layout(r32f ) uniform highp image2D)

-0:384        'P' (uniform highp 2-component vector of int)

-0:384        'datf' (temp highp float)

-0:385      imageAtomicCompSwap (global highp int)

-0:385        'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:385        'P' (uniform highp 2-component vector of int)

-0:385        Constant:

-0:385          3 (const int)

-0:385        'dati' (temp highp int)

-0:386      imageAtomicCompSwap (global highp uint)

-0:386        'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:386        'P' (uniform highp 2-component vector of int)

-0:386        Constant:

-0:386          5 (const uint)

-0:386        'datu' (temp highp uint)

-0:398  Function Definition: badInterp( (global void)

-0:398    Function Parameters: 

-0:400    Sequence

-0:400      Constant:

-0:400        0.000000

-0:401      Constant:

-0:401        0.000000

-0:402      Constant:

-0:402        0.000000

-0:?   Linker Objects

-0:?     's' (shared highp 4-component vector of float)

-0:?     'v' (buffer highp 4-component vector of float)

-0:?     'ini' (in highp int)

-0:?     'x' (layout(location=2 ) uniform highp 4X4 matrix of float)

-0:?     'y' (layout(location=3 ) uniform highp 4X4 matrix of float)

-0:?     'xi' (layout(location=2 ) smooth out highp 4X4 matrix of float)

-0:?     'yi' (layout(location=3 ) smooth out highp 4X4 matrix of float)

-0:?     's2dms' (uniform highp sampler2DMS)

-0:?     'is2dms' (uniform highp isampler2DMS)

-0:?     'us2dms' (uniform highp usampler2DMS)

-0:?     'us2dmsa' (uniform mediump usampler2DMSArray)

-0:?     'outb' (smooth out bool)

-0:?     'outo' (smooth out highp sampler2D)

-0:?     'outa' (smooth out 4-element array of highp float)

-0:?     'outaa' (smooth out 4-element array of 2-element array of highp float)

-0:?     'outs' (smooth out structure{global highp float f})

-0:?     'outasa' (smooth out 4-element array of structure{global highp float f})

-0:?     'outsa' (smooth out 4-element array of structure{global highp float f})

-0:?     'outSA' (smooth out structure{global 4-element array of highp float f})

-0:?     'outSS' (smooth out structure{global highp float f, global structure{global highp float f} s})

-0:?     'U430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})

-0:?     'B430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer highp int a})

-0:?     'outbinst' (out block{out highp int a, out highp 4-component vector of float v, out highp sampler2D s})

-0:?     'anon@0' (out block{layout(location=12 ) out highp int aAnon, layout(location=13 ) out highp 4-component vector of float vAnon})

-0:?     'aliased' (layout(location=12 ) smooth out highp int)

-0:?     'inbinst' (in block{in highp int a})

-0:?     'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })

-0:?     'smon' (smooth out block{out highp int i})

-0:?     'fmon' (flat out block{out highp int i})

-0:?     'cmon' (centroid out block{out highp int i})

-0:?     'imon' (invariant out block{out highp int i})

-0:?     'inf' (in highp 2-component vector of float)

-0:?     'ing' (in highp 2-component vector of float)

-0:?     'offsets' (uniform 4-element array of highp 2-component vector of int)

-0:?     'sArray' (uniform 4-element array of highp sampler2D)

-0:?     'sIndex' (uniform highp int)

-0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)

-0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})

-0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})

-0:?     'iArray' (writeonly uniform 5-element array of highp image2D)

-0:?     'constOffsets' (const 4-element array of highp 2-component vector of int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?       0 (const int)

-0:?     'badSamp1' (uniform mediump samplerBuffer)

-0:?     'badSamp2' (uniform mediump isamplerBuffer)

-0:?     'badSamp3' (uniform mediump usamplerBuffer)

-0:?     'badSamp4' (writeonly uniform mediump imageBuffer)

-0:?     'badSamp5' (writeonly uniform mediump iimageBuffer)

-0:?     'badSamp6' (writeonly uniform mediump uimageBuffer)

-0:?     'noPreSamp1' (uniform mediump samplerBuffer)

-0:?     'noPreSamp2' (uniform mediump isamplerBuffer)

-0:?     'noPreSamp3' (uniform mediump usamplerBuffer)

-0:?     'noPreSamp4' (writeonly uniform mediump imageBuffer)

-0:?     'noPreSamp5' (writeonly uniform mediump iimageBuffer)

-0:?     'noPreSamp6' (writeonly uniform mediump uimageBuffer)

-0:?     'bufSamp1' (uniform highp samplerBuffer)

-0:?     'bufSamp2' (uniform highp isamplerBuffer)

-0:?     'bufSamp3' (uniform highp usamplerBuffer)

-0:?     'bufSamp4' (writeonly uniform highp imageBuffer)

-0:?     'bufSamp5' (writeonly uniform highp iimageBuffer)

-0:?     'bufSamp6' (writeonly uniform highp uimageBuffer)

-0:?     'badCA1' (writeonly uniform mediump imageCubeArray)

-0:?     'badCA2' (writeonly uniform mediump iimageCubeArray)

-0:?     'badCA3' (writeonly uniform mediump uimageCubeArray)

-0:?     'badCA4' (uniform mediump samplerCubeArray)

-0:?     'badCA5' (uniform mediump samplerCubeArrayShadow)

-0:?     'badCA6' (uniform mediump isamplerCubeArray)

-0:?     'badCA7' (uniform mediump usamplerCubeArray)

-0:?     'noPreCA1' (writeonly uniform mediump imageCubeArray)

-0:?     'noPreCA2' (writeonly uniform mediump iimageCubeArray)

-0:?     'noPreCA3' (writeonly uniform mediump uimageCubeArray)

-0:?     'noPreCA4' (uniform mediump samplerCubeArray)

-0:?     'noPreCA5' (uniform mediump samplerCubeArrayShadow)

-0:?     'noPreCA6' (uniform mediump isamplerCubeArray)

-0:?     'noPreCA7' (uniform mediump usamplerCubeArray)

-0:?     'CA1' (writeonly uniform highp imageCubeArray)

-0:?     'CA2' (writeonly uniform highp iimageCubeArray)

-0:?     'CA3' (writeonly uniform highp uimageCubeArray)

-0:?     'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)

-0:?     'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)

-0:?     'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)

-0:?     'CA4' (uniform highp samplerCubeArray)

-0:?     'CA5' (uniform highp samplerCubeArrayShadow)

-0:?     'CA6' (uniform highp isamplerCubeArray)

-0:?     'CA7' (uniform highp usamplerCubeArray)

-0:?     'bad2DMS' (uniform mediump sampler2DMSArray)

-0:?     'bad2DMSi' (uniform mediump isampler2DMSArray)

-0:?     'bad2DMSu' (uniform mediump usampler2DMSArray)

-0:?     'noPrec2DMS' (uniform mediump sampler2DMSArray)

-0:?     'noPrec2DMSi' (uniform mediump isampler2DMSArray)

-0:?     'noPrec2DMSu' (uniform mediump usampler2DMSArray)

-0:?     'samp2DMSA' (uniform highp sampler2DMSArray)

-0:?     'samp2DMSAi' (uniform highp isampler2DMSArray)

-0:?     'samp2DMSAu' (uniform highp usampler2DMSArray)

-0:?     'im2Df' (layout(r32f ) uniform highp image2D)

-0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)

-0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)

-0:?     'P' (uniform highp 2-component vector of int)

-0:?     'colorSampInBad' (smooth sample out highp 4-component vector of float)

-0:?     'colorSample' (smooth sample out highp 4-component vector of float)

-0:?     'colorfsi' (flat sample out highp 4-component vector of float)

-0:?     'sampInArray' (smooth sample out 4-element array of highp 3-component vector of float)

-0:?     'inv4' (in highp 4-component vector of float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+310.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'shared' : not supported in this stage: vertex
+ERROR: 0:4: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:5: 'buffer' : buffers can be declared only as blocks 
+ERROR: 0:10: 'location' : overlapping use of location 3
+ERROR: 0:58: 'usampler2DMSArray' : Reserved word. 
+ERROR: 0:58: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:67: 'textureSamples' : no matching overloaded function found 
+ERROR: 0:69: 'assign' :  l-value required "ini" (can't modify shader input)
+ERROR: 0:69: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. 
+ERROR: 0:72: 'out' : cannot be bool 
+ERROR: 0:73: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo
+ERROR: 0:75: 'vertex-shader array-of-array output' : not supported with this profile: es
+ERROR: 0:78: 'vertex-shader array-of-struct output' : not supported with this profile: es
+ERROR: 0:79: 'vertex-shader array-of-struct output' : not supported with this profile: es
+ERROR: 0:81: 'vertex-shader struct output containing an array' : not supported with this profile: es
+ERROR: 0:83: 'vertex-shader struct output containing structure' : not supported with this profile: es
+ERROR: 0:85: 'std430' : requires the 'buffer' storage qualifier 
+ERROR: 0:97: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type 
+ERROR: 0:105: 'location' : overlapping use of location 12
+ERROR: 0:107: 'input block' : not supported in this stage: vertex
+ERROR: 0:109: 'gl_PerVertex' : block redeclaration has extra members 
+ERROR: 0:119: 'gl_PointSize' : member of nameless block was not redeclared 
+ERROR: 0:119: 'assign' :  cannot convert from 'const float' to 'gl_PointSize highp void PointSize'
+ERROR: 0:122: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 
+ERROR: 0:127: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block 
+ERROR: 0:131: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block 
+ERROR: 0:135: 'centroid' : cannot use centroid qualifier on an interface block 
+ERROR: 0:139: 'invariant' : cannot use invariant qualifier on an interface block 
+ERROR: 0:155: 'precise' : Reserved word. 
+ERROR: 0:156: 'fma' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:157: 'variable indexing sampler array' : not supported for this version or the enabled extensions 
+ERROR: 0:161: 'variable indexing uniform block array' : not supported for this version or the enabled extensions 
+ERROR: 0:162: 'variable indexing buffer block array' : not supported with this profile: es
+ERROR: 0:164: 'variable indexing sampler array' : not supported for this version or the enabled extensions 
+ERROR: 0:165: 'non-constant offset argument' : not supported for this version or the enabled extensions 
+ERROR: 0:166: 'textureGatherOffsets' : required extension not requested: Possible extensions include:
+GL_EXT_gpu_shader5
+GL_OES_gpu_shader5
+ERROR: 0:177: 'variable indexing buffer block array' : not supported with this profile: es
+ERROR: 0:182: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:185: 'samplerBuffer' : Reserved word. 
+ERROR: 0:185: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:186: 'isamplerBuffer' : Reserved word. 
+ERROR: 0:186: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:187: 'usamplerBuffer' : Reserved word. 
+ERROR: 0:187: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:188: 'imageBuffer' : Reserved word. 
+ERROR: 0:188: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:189: 'iimageBuffer' : Reserved word. 
+ERROR: 0:189: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:190: 'uimageBuffer' : Reserved word. 
+ERROR: 0:190: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:195: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:196: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:197: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:198: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:199: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:200: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:235: 'imageCubeArray' : Reserved word. 
+ERROR: 0:235: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:236: 'iimageCubeArray' : Reserved word. 
+ERROR: 0:236: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:237: 'uimageCubeArray' : Reserved word. 
+ERROR: 0:237: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:239: 'samplerCubeArray' : Reserved word. 
+ERROR: 0:239: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:240: 'samplerCubeArrayShadow' : Reserved word. 
+ERROR: 0:240: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:241: 'isamplerCubeArray' : Reserved word. 
+ERROR: 0:241: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:242: 'usamplerCubeArray' : Reserved word. 
+ERROR: 0:242: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:246: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:247: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:248: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:250: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:251: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:252: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:253: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:321: 'sampler2DMSArray' : Reserved word. 
+ERROR: 0:321: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:322: 'isampler2DMSArray' : Reserved word. 
+ERROR: 0:322: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:323: 'usampler2DMSArray' : Reserved word. 
+ERROR: 0:323: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:329: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:330: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:331: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:351: 'textureSize' : no matching overloaded function found 
+ERROR: 0:351: '=' :  cannot convert from 'const float' to 'temp highp 3-component vector of int'
+ERROR: 0:389: 'sample' : Reserved word. 
+ERROR: 0:400: 'interpolateAtCentroid' : no matching overloaded function found 
+ERROR: 0:401: 'interpolateAtSample' : no matching overloaded function found 
+ERROR: 0:402: 'interpolateAtOffset' : no matching overloaded function found 
+ERROR: 92 compilation errors.  No code generated.
+
+
+Shader version: 310
+Requested GL_EXT_texture_buffer
+Requested GL_OES_gpu_shader5
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+Requested GL_OES_texture_buffer
+Requested GL_OES_texture_cube_map_array
+Requested GL_OES_texture_storage_multisample_2d_array
+ERROR: node is still EOpNull!
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:?     Sequence
+0:15      move second child to first child (temp highp 2-component vector of uint)
+0:15        'u2' (temp highp 2-component vector of uint)
+0:15        addCarry (global highp 2-component vector of uint)
+0:15          'u2' (temp highp 2-component vector of uint)
+0:15          'u2' (temp highp 2-component vector of uint)
+0:15          'u2' (temp highp 2-component vector of uint)
+0:17      move second child to first child (temp highp uint)
+0:17        'u1' (temp highp uint)
+0:17        subBorrow (global highp uint)
+0:17          'u1' (temp highp uint)
+0:17          'u1' (temp highp uint)
+0:17          'u1' (temp highp uint)
+0:19      uMulExtended (global void)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:21      iMulExtended (global void)
+0:21        'i4' (temp highp 4-component vector of int)
+0:21        'i4' (temp highp 4-component vector of int)
+0:21        'i4' (temp highp 4-component vector of int)
+0:21        'i4' (temp highp 4-component vector of int)
+0:23      move second child to first child (temp highp int)
+0:23        'i1' (temp highp int)
+0:23        bitfieldExtract (global highp int)
+0:23          'i1' (temp highp int)
+0:23          Constant:
+0:23            4 (const int)
+0:23          Constant:
+0:23            5 (const int)
+0:25      move second child to first child (temp highp 3-component vector of uint)
+0:25        'u3' (temp highp 3-component vector of uint)
+0:25        bitfieldExtract (global highp 3-component vector of uint)
+0:25          'u3' (temp highp 3-component vector of uint)
+0:25          Constant:
+0:25            4 (const int)
+0:25          Constant:
+0:25            5 (const int)
+0:27      move second child to first child (temp highp 3-component vector of int)
+0:27        'i3' (temp highp 3-component vector of int)
+0:27        bitfieldInsert (global highp 3-component vector of int)
+0:27          'i3' (temp highp 3-component vector of int)
+0:27          'i3' (temp highp 3-component vector of int)
+0:27          Constant:
+0:27            4 (const int)
+0:27          Constant:
+0:27            5 (const int)
+0:28      move second child to first child (temp highp uint)
+0:28        'u1' (temp highp uint)
+0:28        bitfieldInsert (global highp uint)
+0:28          'u1' (temp highp uint)
+0:28          'u1' (temp highp uint)
+0:28          Constant:
+0:28            4 (const int)
+0:28          Constant:
+0:28            5 (const int)
+0:30      move second child to first child (temp highp 2-component vector of int)
+0:30        'i2' (temp highp 2-component vector of int)
+0:30        bitFieldReverse (global highp 2-component vector of int)
+0:30          'i2' (temp highp 2-component vector of int)
+0:31      move second child to first child (temp highp 4-component vector of uint)
+0:31        'u4' (temp highp 4-component vector of uint)
+0:31        bitFieldReverse (global highp 4-component vector of uint)
+0:31          'u4' (temp highp 4-component vector of uint)
+0:32      move second child to first child (temp highp int)
+0:32        'i1' (temp highp int)
+0:32        bitCount (global highp int)
+0:32          'i1' (temp highp int)
+0:33      move second child to first child (temp highp 3-component vector of int)
+0:33        'i3' (temp highp 3-component vector of int)
+0:33        bitCount (global highp 3-component vector of int)
+0:33          'u3' (temp highp 3-component vector of uint)
+0:34      move second child to first child (temp highp 2-component vector of int)
+0:34        'i2' (temp highp 2-component vector of int)
+0:34        findLSB (global highp 2-component vector of int)
+0:34          'i2' (temp highp 2-component vector of int)
+0:35      move second child to first child (temp highp 4-component vector of int)
+0:35        'i4' (temp highp 4-component vector of int)
+0:35        findLSB (global highp 4-component vector of int)
+0:35          'u4' (temp highp 4-component vector of uint)
+0:36      move second child to first child (temp highp int)
+0:36        'i1' (temp highp int)
+0:36        findMSB (global highp int)
+0:36          'i1' (temp highp int)
+0:37      move second child to first child (temp highp 2-component vector of int)
+0:37        'i2' (temp highp 2-component vector of int)
+0:37        findMSB (global highp 2-component vector of int)
+0:37          'u2' (temp highp 2-component vector of uint)
+0:40      move second child to first child (temp highp 3-component vector of float)
+0:40        'v3' (temp highp 3-component vector of float)
+0:40        frexp (global highp 3-component vector of float)
+0:40          'v3' (temp highp 3-component vector of float)
+0:40          'i3' (temp highp 3-component vector of int)
+0:42      move second child to first child (temp highp 2-component vector of float)
+0:42        'v2' (temp highp 2-component vector of float)
+0:42        ldexp (global highp 2-component vector of float)
+0:42          'v2' (temp highp 2-component vector of float)
+0:42          'i2' (temp highp 2-component vector of int)
+0:45      move second child to first child (temp highp uint)
+0:45        'u1' (temp highp uint)
+0:45        PackUnorm4x8 (global highp uint)
+0:45          'v4' (temp mediump 4-component vector of float)
+0:46      move second child to first child (temp highp uint)
+0:46        'u1' (temp highp uint)
+0:46        PackSnorm4x8 (global highp uint)
+0:46          'v4' (temp mediump 4-component vector of float)
+0:47      move second child to first child (temp mediump 4-component vector of float)
+0:47        'v4' (temp mediump 4-component vector of float)
+0:47        UnpackUnorm4x8 (global mediump 4-component vector of float)
+0:47          'u1' (temp highp uint)
+0:48      move second child to first child (temp mediump 4-component vector of float)
+0:48        'v4' (temp mediump 4-component vector of float)
+0:48        UnpackSnorm4x8 (global mediump 4-component vector of float)
+0:48          'u1' (temp highp uint)
+0:60  Function Definition: foo( (global void)
+0:60    Function Parameters: 
+0:?     Sequence
+0:63      move second child to first child (temp highp 2-component vector of int)
+0:63        'v2' (temp highp 2-component vector of int)
+0:63        textureSize (global highp 2-component vector of int)
+0:63          's2dms' (uniform highp sampler2DMS)
+0:64      move second child to first child (temp highp 2-component vector of int)
+0:64        'v2' (temp highp 2-component vector of int)
+0:64        textureSize (global highp 2-component vector of int)
+0:64          'us2dms' (uniform highp usampler2DMS)
+0:65      Sequence
+0:65        move second child to first child (temp highp 4-component vector of float)
+0:65          'v4' (temp highp 4-component vector of float)
+0:65          textureFetch (global highp 4-component vector of float)
+0:65            's2dms' (uniform highp sampler2DMS)
+0:65            'v2' (temp highp 2-component vector of int)
+0:65            Constant:
+0:65              2 (const int)
+0:66      Sequence
+0:66        move second child to first child (temp highp 4-component vector of int)
+0:66          'iv4' (temp highp 4-component vector of int)
+0:66          textureFetch (global highp 4-component vector of int)
+0:66            'is2dms' (uniform highp isampler2DMS)
+0:66            'v2' (temp highp 2-component vector of int)
+0:66            Constant:
+0:66              2 (const int)
+0:67      Constant:
+0:67        0.000000
+0:69      frexp (global highp float)
+0:69        'f' (temp highp float)
+0:69        'ini' (in highp int)
+0:114  Function Definition: foo_IO( (global void)
+0:114    Function Parameters: 
+0:116    Sequence
+0:116      Sequence
+0:116        move second child to first child (temp highp int)
+0:116          'sum' (temp highp int)
+0:116          add (temp highp int)
+0:116            'gl_VertexID' (gl_VertexId highp int VertexId)
+0:117            'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:118      move second child to first child (temp highp 4-component vector of float)
+0:118        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:118          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:118          Constant:
+0:118            0 (const uint)
+0:118        Constant:
+0:118          1.000000
+0:118          1.000000
+0:118          1.000000
+0:118          1.000000
+0:119      gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)
+0:119        'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:119        Constant:
+0:119          1 (const uint)
+0:153  Function Definition: pfooBad( (global void)
+0:153    Function Parameters: 
+0:?     Sequence
+0:156      move second child to first child (temp highp 2-component vector of float)
+0:156        'h' (temp highp 2-component vector of float)
+0:156        fma (global highp 2-component vector of float)
+0:156          'inf' (in highp 2-component vector of float)
+0:156          'ing' (in highp 2-component vector of float)
+0:156          'h' (temp highp 2-component vector of float)
+0:157      indirect index (temp highp sampler2D)
+0:157        'sArray' (uniform 4-element array of highp sampler2D)
+0:157        add (temp highp int)
+0:157          'sIndex' (uniform highp int)
+0:157          Constant:
+0:157            1 (const int)
+0:158      indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)
+0:158        'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:158        add (temp highp int)
+0:158          'sIndex' (uniform highp int)
+0:158          Constant:
+0:158            1 (const int)
+0:159      direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:159        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:159        Constant:
+0:159          1 (const int)
+0:160      direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:160        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:160        Constant:
+0:160          2 (const int)
+0:161      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:161        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:161        add (temp highp int)
+0:161          'sIndex' (uniform highp int)
+0:161          Constant:
+0:161            1 (const int)
+0:162      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:162        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:162        'sIndex' (uniform highp int)
+0:163      direct index (writeonly temp highp image2D)
+0:163        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:163        Constant:
+0:163          2 (const int)
+0:164      indirect index (writeonly temp highp image2D)
+0:164        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:164        component-wise multiply (temp highp int)
+0:164          'sIndex' (uniform highp int)
+0:164          Constant:
+0:164            2 (const int)
+0:165      textureGatherOffset (global highp 4-component vector of float)
+0:165        direct index (temp highp sampler2D)
+0:165          'sArray' (uniform 4-element array of highp sampler2D)
+0:165          Constant:
+0:165            0 (const int)
+0:165        Constant:
+0:165          0.100000
+0:165          0.100000
+0:165        Convert float to int (temp highp 2-component vector of int)
+0:165          'inf' (in highp 2-component vector of float)
+0:166      textureGatherOffsets (global highp 4-component vector of float)
+0:166        direct index (temp highp sampler2D)
+0:166          'sArray' (uniform 4-element array of highp sampler2D)
+0:166          Constant:
+0:166            0 (const int)
+0:166        Constant:
+0:166          0.100000
+0:166          0.100000
+0:166        Constant:
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:171  Function Definition: pfoo( (global void)
+0:171    Function Parameters: 
+0:?     Sequence
+0:174      move second child to first child (temp highp 2-component vector of float)
+0:174        'h' (temp highp 2-component vector of float)
+0:174        fma (global highp 2-component vector of float)
+0:174          'inf' (in highp 2-component vector of float)
+0:174          'ing' (in highp 2-component vector of float)
+0:174          'h' (temp highp 2-component vector of float)
+0:175      indirect index (temp highp sampler2D)
+0:175        'sArray' (uniform 4-element array of highp sampler2D)
+0:175        add (temp highp int)
+0:175          'sIndex' (uniform highp int)
+0:175          Constant:
+0:175            1 (const int)
+0:176      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:176        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:176        add (temp highp int)
+0:176          'sIndex' (uniform highp int)
+0:176          Constant:
+0:176            1 (const int)
+0:177      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:177        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:177        subtract (temp highp int)
+0:177          'sIndex' (uniform highp int)
+0:177          Constant:
+0:177            2 (const int)
+0:178      direct index (writeonly temp highp image2D)
+0:178        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:178        Constant:
+0:178          2 (const int)
+0:179      indirect index (writeonly temp highp image2D)
+0:179        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:179        subtract (temp highp int)
+0:179          'sIndex' (uniform highp int)
+0:179          Constant:
+0:179            2 (const int)
+0:180      textureGatherOffset (global highp 4-component vector of float)
+0:180        direct index (temp highp sampler2D)
+0:180          'sArray' (uniform 4-element array of highp sampler2D)
+0:180          Constant:
+0:180            0 (const int)
+0:180        Constant:
+0:180          0.100000
+0:180          0.100000
+0:180        Convert float to int (temp highp 2-component vector of int)
+0:180          'inf' (in highp 2-component vector of float)
+0:181      textureGatherOffsets (global highp 4-component vector of float)
+0:181        direct index (temp highp sampler2D)
+0:181          'sArray' (uniform 4-element array of highp sampler2D)
+0:181          Constant:
+0:181            0 (const int)
+0:181        Constant:
+0:181          0.100000
+0:181          0.100000
+0:181        Constant:
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:182      textureGatherOffsets (global highp 4-component vector of float)
+0:182        direct index (temp highp sampler2D)
+0:182          'sArray' (uniform 4-element array of highp sampler2D)
+0:182          Constant:
+0:182            0 (const int)
+0:182        Constant:
+0:182          0.100000
+0:182          0.100000
+0:182        'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:220  Function Definition: bufferT( (global void)
+0:220    Function Parameters: 
+0:222    Sequence
+0:222      Sequence
+0:222        move second child to first child (temp highp int)
+0:222          's1' (temp highp int)
+0:222          textureSize (global highp int)
+0:222            'bufSamp1' (uniform highp samplerBuffer)
+0:223      Sequence
+0:223        move second child to first child (temp highp int)
+0:223          's2' (temp highp int)
+0:223          textureSize (global highp int)
+0:223            'bufSamp2' (uniform highp isamplerBuffer)
+0:224      Sequence
+0:224        move second child to first child (temp highp int)
+0:224          's3' (temp highp int)
+0:224          textureSize (global highp int)
+0:224            'bufSamp3' (uniform highp usamplerBuffer)
+0:226      Sequence
+0:226        move second child to first child (temp highp int)
+0:226          's4' (temp highp int)
+0:226          imageQuerySize (global highp int)
+0:226            'bufSamp4' (writeonly uniform highp imageBuffer)
+0:227      Sequence
+0:227        move second child to first child (temp highp int)
+0:227          's5' (temp highp int)
+0:227          imageQuerySize (global highp int)
+0:227            'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:228      Sequence
+0:228        move second child to first child (temp highp int)
+0:228          's6' (temp highp int)
+0:228          imageQuerySize (global highp int)
+0:228            'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:230      Sequence
+0:230        move second child to first child (temp highp 4-component vector of float)
+0:230          'f1' (temp highp 4-component vector of float)
+0:230          textureFetch (global highp 4-component vector of float)
+0:230            'bufSamp1' (uniform highp samplerBuffer)
+0:230            's1' (temp highp int)
+0:231      Sequence
+0:231        move second child to first child (temp highp 4-component vector of int)
+0:231          'f2' (temp highp 4-component vector of int)
+0:231          textureFetch (global highp 4-component vector of int)
+0:231            'bufSamp2' (uniform highp isamplerBuffer)
+0:231            's2' (temp highp int)
+0:232      Sequence
+0:232        move second child to first child (temp highp 4-component vector of uint)
+0:232          'f3' (temp highp 4-component vector of uint)
+0:232          textureFetch (global highp 4-component vector of uint)
+0:232            'bufSamp3' (uniform highp usamplerBuffer)
+0:232            's3' (temp highp int)
+0:279  Function Definition: CAT( (global void)
+0:279    Function Parameters: 
+0:281    Sequence
+0:281      Sequence
+0:281        move second child to first child (temp highp 3-component vector of int)
+0:281          's4' (temp highp 3-component vector of int)
+0:281          textureSize (global highp 3-component vector of int)
+0:281            'CA4' (uniform highp samplerCubeArray)
+0:281            Constant:
+0:281              1 (const int)
+0:282      Sequence
+0:282        move second child to first child (temp highp 3-component vector of int)
+0:282          's5' (temp highp 3-component vector of int)
+0:282          textureSize (global highp 3-component vector of int)
+0:282            'CA5' (uniform highp samplerCubeArrayShadow)
+0:282            Constant:
+0:282              1 (const int)
+0:283      Sequence
+0:283        move second child to first child (temp highp 3-component vector of int)
+0:283          's6' (temp highp 3-component vector of int)
+0:283          textureSize (global highp 3-component vector of int)
+0:283            'CA6' (uniform highp isamplerCubeArray)
+0:283            Constant:
+0:283              1 (const int)
+0:284      Sequence
+0:284        move second child to first child (temp highp 3-component vector of int)
+0:284          's7' (temp highp 3-component vector of int)
+0:284          textureSize (global highp 3-component vector of int)
+0:284            'CA7' (uniform highp usamplerCubeArray)
+0:284            Constant:
+0:284              1 (const int)
+0:286      Sequence
+0:286        move second child to first child (temp highp 4-component vector of float)
+0:286          't4' (temp highp 4-component vector of float)
+0:286          texture (global highp 4-component vector of float)
+0:286            'CA4' (uniform highp samplerCubeArray)
+0:286            Constant:
+0:286              0.500000
+0:286              0.500000
+0:286              0.500000
+0:286              0.500000
+0:287      Sequence
+0:287        move second child to first child (temp highp float)
+0:287          't5' (temp highp float)
+0:287          texture (global highp float)
+0:287            'CA5' (uniform highp samplerCubeArrayShadow)
+0:287            Constant:
+0:287              0.500000
+0:287              0.500000
+0:287              0.500000
+0:287              0.500000
+0:287            Constant:
+0:287              3.000000
+0:288      Sequence
+0:288        move second child to first child (temp highp 4-component vector of int)
+0:288          't6' (temp highp 4-component vector of int)
+0:288          texture (global highp 4-component vector of int)
+0:288            'CA6' (uniform highp isamplerCubeArray)
+0:288            Constant:
+0:288              0.500000
+0:288              0.500000
+0:288              0.500000
+0:288              0.500000
+0:289      Sequence
+0:289        move second child to first child (temp highp 4-component vector of uint)
+0:289          't7' (temp highp 4-component vector of uint)
+0:289          texture (global highp 4-component vector of uint)
+0:289            'CA7' (uniform highp usamplerCubeArray)
+0:289            Constant:
+0:289              0.500000
+0:289              0.500000
+0:289              0.500000
+0:289              0.500000
+0:291      Sequence
+0:291        move second child to first child (temp highp 4-component vector of float)
+0:291          'L4' (temp highp 4-component vector of float)
+0:291          textureLod (global highp 4-component vector of float)
+0:291            'CA4' (uniform highp samplerCubeArray)
+0:291            Constant:
+0:291              0.500000
+0:291              0.500000
+0:291              0.500000
+0:291              0.500000
+0:291            Constant:
+0:291              0.240000
+0:292      Sequence
+0:292        move second child to first child (temp highp 4-component vector of int)
+0:292          'L6' (temp highp 4-component vector of int)
+0:292          textureLod (global highp 4-component vector of int)
+0:292            'CA6' (uniform highp isamplerCubeArray)
+0:292            Constant:
+0:292              0.500000
+0:292              0.500000
+0:292              0.500000
+0:292              0.500000
+0:292            Constant:
+0:292              0.260000
+0:293      Sequence
+0:293        move second child to first child (temp highp 4-component vector of uint)
+0:293          'L7' (temp highp 4-component vector of uint)
+0:293          textureLod (global highp 4-component vector of uint)
+0:293            'CA7' (uniform highp usamplerCubeArray)
+0:293            Constant:
+0:293              0.500000
+0:293              0.500000
+0:293              0.500000
+0:293              0.500000
+0:293            Constant:
+0:293              0.270000
+0:295      Sequence
+0:295        move second child to first child (temp highp 4-component vector of float)
+0:295          'g4' (temp highp 4-component vector of float)
+0:295          textureGrad (global highp 4-component vector of float)
+0:295            'CA4' (uniform highp samplerCubeArray)
+0:295            Constant:
+0:295              0.500000
+0:295              0.500000
+0:295              0.500000
+0:295              0.500000
+0:295            Constant:
+0:295              0.100000
+0:295              0.100000
+0:295              0.100000
+0:295            Constant:
+0:295              0.200000
+0:295              0.200000
+0:295              0.200000
+0:296      Sequence
+0:296        move second child to first child (temp highp 4-component vector of int)
+0:296          'g6' (temp highp 4-component vector of int)
+0:296          textureGrad (global highp 4-component vector of int)
+0:296            'CA6' (uniform highp isamplerCubeArray)
+0:296            Constant:
+0:296              0.500000
+0:296              0.500000
+0:296              0.500000
+0:296              0.500000
+0:296            Constant:
+0:296              0.100000
+0:296              0.100000
+0:296              0.100000
+0:296            Constant:
+0:296              0.200000
+0:296              0.200000
+0:296              0.200000
+0:297      Sequence
+0:297        move second child to first child (temp highp 4-component vector of uint)
+0:297          'g7' (temp highp 4-component vector of uint)
+0:297          textureGrad (global highp 4-component vector of uint)
+0:297            'CA7' (uniform highp usamplerCubeArray)
+0:297            Constant:
+0:297              0.500000
+0:297              0.500000
+0:297              0.500000
+0:297              0.500000
+0:297            Constant:
+0:297              0.100000
+0:297              0.100000
+0:297              0.100000
+0:297            Constant:
+0:297              0.200000
+0:297              0.200000
+0:297              0.200000
+0:299      Sequence
+0:299        move second child to first child (temp highp 4-component vector of float)
+0:299          'gath4' (temp highp 4-component vector of float)
+0:299          textureGather (global highp 4-component vector of float)
+0:299            'CA4' (uniform highp samplerCubeArray)
+0:299            Constant:
+0:299              0.500000
+0:299              0.500000
+0:299              0.500000
+0:299              0.500000
+0:300      Sequence
+0:300        move second child to first child (temp highp 4-component vector of float)
+0:300          'gathC4' (temp highp 4-component vector of float)
+0:300          textureGather (global highp 4-component vector of float)
+0:300            'CA4' (uniform highp samplerCubeArray)
+0:300            Constant:
+0:300              0.500000
+0:300              0.500000
+0:300              0.500000
+0:300              0.500000
+0:300            Constant:
+0:300              2 (const int)
+0:301      Sequence
+0:301        move second child to first child (temp highp 4-component vector of int)
+0:301          'gath6' (temp highp 4-component vector of int)
+0:301          textureGather (global highp 4-component vector of int)
+0:301            'CA6' (uniform highp isamplerCubeArray)
+0:301            Constant:
+0:301              0.500000
+0:301              0.500000
+0:301              0.500000
+0:301              0.500000
+0:302      Sequence
+0:302        move second child to first child (temp highp 4-component vector of int)
+0:302          'gathC6' (temp highp 4-component vector of int)
+0:302          textureGather (global highp 4-component vector of int)
+0:302            'CA6' (uniform highp isamplerCubeArray)
+0:302            Constant:
+0:302              0.500000
+0:302              0.500000
+0:302              0.500000
+0:302              0.500000
+0:302            Constant:
+0:302              1 (const int)
+0:303      Sequence
+0:303        move second child to first child (temp highp 4-component vector of uint)
+0:303          'gath7' (temp highp 4-component vector of uint)
+0:303          textureGather (global highp 4-component vector of uint)
+0:303            'CA7' (uniform highp usamplerCubeArray)
+0:303            Constant:
+0:303              0.500000
+0:303              0.500000
+0:303              0.500000
+0:303              0.500000
+0:304      Sequence
+0:304        move second child to first child (temp highp 4-component vector of uint)
+0:304          'gathC7' (temp highp 4-component vector of uint)
+0:304          textureGather (global highp 4-component vector of uint)
+0:304            'CA7' (uniform highp usamplerCubeArray)
+0:304            Constant:
+0:304              0.500000
+0:304              0.500000
+0:304              0.500000
+0:304              0.500000
+0:304            Constant:
+0:304              0 (const int)
+0:306      Sequence
+0:306        move second child to first child (temp highp 4-component vector of float)
+0:306          'gath5' (temp highp 4-component vector of float)
+0:306          textureGather (global highp 4-component vector of float)
+0:306            'CA5' (uniform highp samplerCubeArrayShadow)
+0:306            Constant:
+0:306              0.500000
+0:306              0.500000
+0:306              0.500000
+0:306              0.500000
+0:306            Constant:
+0:306              2.500000
+0:308      Sequence
+0:308        move second child to first child (temp highp 3-component vector of int)
+0:308          's1' (temp highp 3-component vector of int)
+0:308          imageQuerySize (global highp 3-component vector of int)
+0:308            'CA1' (writeonly uniform highp imageCubeArray)
+0:309      Sequence
+0:309        move second child to first child (temp highp 3-component vector of int)
+0:309          's2' (temp highp 3-component vector of int)
+0:309          imageQuerySize (global highp 3-component vector of int)
+0:309            'CA2' (writeonly uniform highp iimageCubeArray)
+0:310      Sequence
+0:310        move second child to first child (temp highp 3-component vector of int)
+0:310          's3' (temp highp 3-component vector of int)
+0:310          imageQuerySize (global highp 3-component vector of int)
+0:310            'CA3' (writeonly uniform highp uimageCubeArray)
+0:312      imageStore (global highp void)
+0:312        'CA1' (writeonly uniform highp imageCubeArray)
+0:312        's3' (temp highp 3-component vector of int)
+0:312        Constant:
+0:312          1.000000
+0:312          1.000000
+0:312          1.000000
+0:312          1.000000
+0:313      imageStore (global highp void)
+0:313        'CA2' (writeonly uniform highp iimageCubeArray)
+0:313        's3' (temp highp 3-component vector of int)
+0:313        Constant:
+0:313          1 (const int)
+0:313          1 (const int)
+0:313          1 (const int)
+0:313          1 (const int)
+0:314      imageStore (global highp void)
+0:314        'CA3' (writeonly uniform highp uimageCubeArray)
+0:314        's3' (temp highp 3-component vector of int)
+0:314        Constant:
+0:314          1 (const uint)
+0:314          1 (const uint)
+0:314          1 (const uint)
+0:314          1 (const uint)
+0:316      Sequence
+0:316        move second child to first child (temp highp 4-component vector of float)
+0:316          'cl1' (temp highp 4-component vector of float)
+0:316          imageLoad (global highp 4-component vector of float)
+0:316            'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:316            's3' (temp highp 3-component vector of int)
+0:317      Sequence
+0:317        move second child to first child (temp highp 4-component vector of int)
+0:317          'cl2' (temp highp 4-component vector of int)
+0:317          imageLoad (global highp 4-component vector of int)
+0:317            'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:317            's3' (temp highp 3-component vector of int)
+0:318      Sequence
+0:318        move second child to first child (temp highp 4-component vector of uint)
+0:318          'cl3' (temp highp 4-component vector of uint)
+0:318          imageLoad (global highp 4-component vector of uint)
+0:318            'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:318            's3' (temp highp 3-component vector of int)
+0:343  Function Definition: MSA( (global void)
+0:343    Function Parameters: 
+0:345    Sequence
+0:345      Sequence
+0:345        move second child to first child (temp highp 4-component vector of float)
+0:345          'tf' (temp highp 4-component vector of float)
+0:345          textureFetch (global highp 4-component vector of float)
+0:345            'samp2DMSA' (uniform highp sampler2DMSArray)
+0:345            Constant:
+0:345              5 (const int)
+0:345              5 (const int)
+0:345              5 (const int)
+0:345            Constant:
+0:345              2 (const int)
+0:346      Sequence
+0:346        move second child to first child (temp highp 4-component vector of int)
+0:346          'tfi' (temp highp 4-component vector of int)
+0:346          textureFetch (global highp 4-component vector of int)
+0:346            'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:346            Constant:
+0:346              5 (const int)
+0:346              5 (const int)
+0:346              5 (const int)
+0:346            Constant:
+0:346              2 (const int)
+0:347      Sequence
+0:347        move second child to first child (temp highp 4-component vector of uint)
+0:347          'tfu' (temp highp 4-component vector of uint)
+0:347          textureFetch (global highp 4-component vector of uint)
+0:347            'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:347            Constant:
+0:347              5 (const int)
+0:347              5 (const int)
+0:347              5 (const int)
+0:347            Constant:
+0:347              2 (const int)
+0:349      Sequence
+0:349        move second child to first child (temp highp 3-component vector of int)
+0:349          'tfs' (temp highp 3-component vector of int)
+0:349          textureSize (global highp 3-component vector of int)
+0:349            'samp2DMSA' (uniform highp sampler2DMSArray)
+0:350      Sequence
+0:350        move second child to first child (temp highp 3-component vector of int)
+0:350          'tfsi' (temp highp 3-component vector of int)
+0:350          textureSize (global highp 3-component vector of int)
+0:350            'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:352      Sequence
+0:352        move second child to first child (temp highp 3-component vector of int)
+0:352          'tfsu' (temp highp 3-component vector of int)
+0:352          textureSize (global highp 3-component vector of int)
+0:352            'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:364  Function Definition: goodImageAtom( (global void)
+0:364    Function Parameters: 
+0:?     Sequence
+0:370      imageAtomicAdd (global highp int)
+0:370        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:370        'P' (uniform highp 2-component vector of int)
+0:370        'dati' (temp highp int)
+0:371      imageAtomicAdd (global highp uint)
+0:371        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:371        'P' (uniform highp 2-component vector of int)
+0:371        'datu' (temp highp uint)
+0:372      imageAtomicMin (global highp int)
+0:372        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:372        'P' (uniform highp 2-component vector of int)
+0:372        'dati' (temp highp int)
+0:373      imageAtomicMin (global highp uint)
+0:373        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:373        'P' (uniform highp 2-component vector of int)
+0:373        'datu' (temp highp uint)
+0:374      imageAtomicMax (global highp int)
+0:374        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:374        'P' (uniform highp 2-component vector of int)
+0:374        'dati' (temp highp int)
+0:375      imageAtomicMax (global highp uint)
+0:375        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:375        'P' (uniform highp 2-component vector of int)
+0:375        'datu' (temp highp uint)
+0:376      imageAtomicAnd (global highp int)
+0:376        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:376        'P' (uniform highp 2-component vector of int)
+0:376        'dati' (temp highp int)
+0:377      imageAtomicAnd (global highp uint)
+0:377        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:377        'P' (uniform highp 2-component vector of int)
+0:377        'datu' (temp highp uint)
+0:378      imageAtomicOr (global highp int)
+0:378        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:378        'P' (uniform highp 2-component vector of int)
+0:378        'dati' (temp highp int)
+0:379      imageAtomicOr (global highp uint)
+0:379        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:379        'P' (uniform highp 2-component vector of int)
+0:379        'datu' (temp highp uint)
+0:380      imageAtomicXor (global highp int)
+0:380        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:380        'P' (uniform highp 2-component vector of int)
+0:380        'dati' (temp highp int)
+0:381      imageAtomicXor (global highp uint)
+0:381        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:381        'P' (uniform highp 2-component vector of int)
+0:381        'datu' (temp highp uint)
+0:382      imageAtomicExchange (global highp int)
+0:382        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:382        'P' (uniform highp 2-component vector of int)
+0:382        'dati' (temp highp int)
+0:383      imageAtomicExchange (global highp uint)
+0:383        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:383        'P' (uniform highp 2-component vector of int)
+0:383        'datu' (temp highp uint)
+0:384      imageAtomicExchange (global highp float)
+0:384        'im2Df' (layout(r32f ) uniform highp image2D)
+0:384        'P' (uniform highp 2-component vector of int)
+0:384        'datf' (temp highp float)
+0:385      imageAtomicCompSwap (global highp int)
+0:385        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:385        'P' (uniform highp 2-component vector of int)
+0:385        Constant:
+0:385          3 (const int)
+0:385        'dati' (temp highp int)
+0:386      imageAtomicCompSwap (global highp uint)
+0:386        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:386        'P' (uniform highp 2-component vector of int)
+0:386        Constant:
+0:386          5 (const uint)
+0:386        'datu' (temp highp uint)
+0:398  Function Definition: badInterp( (global void)
+0:398    Function Parameters: 
+0:400    Sequence
+0:400      Constant:
+0:400        0.000000
+0:401      Constant:
+0:401        0.000000
+0:402      Constant:
+0:402        0.000000
+0:?   Linker Objects
+0:?     's' (shared highp 4-component vector of float)
+0:?     'v' (buffer highp 4-component vector of float)
+0:?     'ini' (in highp int)
+0:?     'x' (layout(location=2 ) uniform highp 4X4 matrix of float)
+0:?     'y' (layout(location=3 ) uniform highp 4X4 matrix of float)
+0:?     'xi' (layout(location=2 ) smooth out highp 4X4 matrix of float)
+0:?     'yi' (layout(location=3 ) smooth out highp 4X4 matrix of float)
+0:?     's2dms' (uniform highp sampler2DMS)
+0:?     'is2dms' (uniform highp isampler2DMS)
+0:?     'us2dms' (uniform highp usampler2DMS)
+0:?     'us2dmsa' (uniform mediump usampler2DMSArray)
+0:?     'outb' (smooth out bool)
+0:?     'outo' (smooth out highp sampler2D)
+0:?     'outa' (smooth out 4-element array of highp float)
+0:?     'outaa' (smooth out 4-element array of 2-element array of highp float)
+0:?     'outs' (smooth out structure{global highp float f})
+0:?     'outasa' (smooth out 4-element array of structure{global highp float f})
+0:?     'outsa' (smooth out 4-element array of structure{global highp float f})
+0:?     'outSA' (smooth out structure{global 4-element array of highp float f})
+0:?     'outSS' (smooth out structure{global highp float f, global structure{global highp float f} s})
+0:?     'U430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:?     'B430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer highp int a})
+0:?     'outbinst' (out block{out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
+0:?     'anon@0' (out block{layout(location=12 ) out highp int aAnon, layout(location=13 ) out highp 4-component vector of float vAnon})
+0:?     'aliased' (layout(location=12 ) smooth out highp int)
+0:?     'inbinst' (in block{in highp int a})
+0:?     'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:?     'smon' (smooth out block{out highp int i})
+0:?     'fmon' (flat out block{out highp int i})
+0:?     'cmon' (centroid out block{out highp int i})
+0:?     'imon' (invariant out block{out highp int i})
+0:?     'inf' (in highp 2-component vector of float)
+0:?     'ing' (in highp 2-component vector of float)
+0:?     'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:?     'sArray' (uniform 4-element array of highp sampler2D)
+0:?     'sIndex' (uniform highp int)
+0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:?     'iArray' (writeonly uniform 5-element array of highp image2D)
+0:?     'constOffsets' (const 4-element array of highp 2-component vector of int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?     'badSamp1' (uniform mediump samplerBuffer)
+0:?     'badSamp2' (uniform mediump isamplerBuffer)
+0:?     'badSamp3' (uniform mediump usamplerBuffer)
+0:?     'badSamp4' (writeonly uniform mediump imageBuffer)
+0:?     'badSamp5' (writeonly uniform mediump iimageBuffer)
+0:?     'badSamp6' (writeonly uniform mediump uimageBuffer)
+0:?     'noPreSamp1' (uniform mediump samplerBuffer)
+0:?     'noPreSamp2' (uniform mediump isamplerBuffer)
+0:?     'noPreSamp3' (uniform mediump usamplerBuffer)
+0:?     'noPreSamp4' (writeonly uniform mediump imageBuffer)
+0:?     'noPreSamp5' (writeonly uniform mediump iimageBuffer)
+0:?     'noPreSamp6' (writeonly uniform mediump uimageBuffer)
+0:?     'bufSamp1' (uniform highp samplerBuffer)
+0:?     'bufSamp2' (uniform highp isamplerBuffer)
+0:?     'bufSamp3' (uniform highp usamplerBuffer)
+0:?     'bufSamp4' (writeonly uniform highp imageBuffer)
+0:?     'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:?     'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:?     'badCA1' (writeonly uniform mediump imageCubeArray)
+0:?     'badCA2' (writeonly uniform mediump iimageCubeArray)
+0:?     'badCA3' (writeonly uniform mediump uimageCubeArray)
+0:?     'badCA4' (uniform mediump samplerCubeArray)
+0:?     'badCA5' (uniform mediump samplerCubeArrayShadow)
+0:?     'badCA6' (uniform mediump isamplerCubeArray)
+0:?     'badCA7' (uniform mediump usamplerCubeArray)
+0:?     'noPreCA1' (writeonly uniform mediump imageCubeArray)
+0:?     'noPreCA2' (writeonly uniform mediump iimageCubeArray)
+0:?     'noPreCA3' (writeonly uniform mediump uimageCubeArray)
+0:?     'noPreCA4' (uniform mediump samplerCubeArray)
+0:?     'noPreCA5' (uniform mediump samplerCubeArrayShadow)
+0:?     'noPreCA6' (uniform mediump isamplerCubeArray)
+0:?     'noPreCA7' (uniform mediump usamplerCubeArray)
+0:?     'CA1' (writeonly uniform highp imageCubeArray)
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)
+0:?     'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:?     'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:?     'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:?     'CA4' (uniform highp samplerCubeArray)
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)
+0:?     'CA6' (uniform highp isamplerCubeArray)
+0:?     'CA7' (uniform highp usamplerCubeArray)
+0:?     'bad2DMS' (uniform mediump sampler2DMSArray)
+0:?     'bad2DMSi' (uniform mediump isampler2DMSArray)
+0:?     'bad2DMSu' (uniform mediump usampler2DMSArray)
+0:?     'noPrec2DMS' (uniform mediump sampler2DMSArray)
+0:?     'noPrec2DMSi' (uniform mediump isampler2DMSArray)
+0:?     'noPrec2DMSu' (uniform mediump usampler2DMSArray)
+0:?     'samp2DMSA' (uniform highp sampler2DMSArray)
+0:?     'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:?     'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:?     'im2Df' (layout(r32f ) uniform highp image2D)
+0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:?     'P' (uniform highp 2-component vector of int)
+0:?     'colorSampInBad' (smooth sample out highp 4-component vector of float)
+0:?     'colorSample' (smooth sample out highp 4-component vector of float)
+0:?     'colorfsi' (flat sample out highp 4-component vector of float)
+0:?     'sampInArray' (smooth sample out 4-element array of highp 3-component vector of float)
+0:?     'inv4' (in highp 4-component vector of float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 310
+Requested GL_EXT_texture_buffer
+Requested GL_OES_gpu_shader5
+Requested GL_OES_shader_image_atomic
+Requested GL_OES_shader_io_blocks
+Requested GL_OES_shader_multisample_interpolation
+Requested GL_OES_texture_buffer
+Requested GL_OES_texture_cube_map_array
+Requested GL_OES_texture_storage_multisample_2d_array
+ERROR: node is still EOpNull!
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:?     Sequence
+0:15      move second child to first child (temp highp 2-component vector of uint)
+0:15        'u2' (temp highp 2-component vector of uint)
+0:15        addCarry (global highp 2-component vector of uint)
+0:15          'u2' (temp highp 2-component vector of uint)
+0:15          'u2' (temp highp 2-component vector of uint)
+0:15          'u2' (temp highp 2-component vector of uint)
+0:17      move second child to first child (temp highp uint)
+0:17        'u1' (temp highp uint)
+0:17        subBorrow (global highp uint)
+0:17          'u1' (temp highp uint)
+0:17          'u1' (temp highp uint)
+0:17          'u1' (temp highp uint)
+0:19      uMulExtended (global void)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:19        'u4' (temp highp 4-component vector of uint)
+0:21      iMulExtended (global void)
+0:21        'i4' (temp highp 4-component vector of int)
+0:21        'i4' (temp highp 4-component vector of int)
+0:21        'i4' (temp highp 4-component vector of int)
+0:21        'i4' (temp highp 4-component vector of int)
+0:23      move second child to first child (temp highp int)
+0:23        'i1' (temp highp int)
+0:23        bitfieldExtract (global highp int)
+0:23          'i1' (temp highp int)
+0:23          Constant:
+0:23            4 (const int)
+0:23          Constant:
+0:23            5 (const int)
+0:25      move second child to first child (temp highp 3-component vector of uint)
+0:25        'u3' (temp highp 3-component vector of uint)
+0:25        bitfieldExtract (global highp 3-component vector of uint)
+0:25          'u3' (temp highp 3-component vector of uint)
+0:25          Constant:
+0:25            4 (const int)
+0:25          Constant:
+0:25            5 (const int)
+0:27      move second child to first child (temp highp 3-component vector of int)
+0:27        'i3' (temp highp 3-component vector of int)
+0:27        bitfieldInsert (global highp 3-component vector of int)
+0:27          'i3' (temp highp 3-component vector of int)
+0:27          'i3' (temp highp 3-component vector of int)
+0:27          Constant:
+0:27            4 (const int)
+0:27          Constant:
+0:27            5 (const int)
+0:28      move second child to first child (temp highp uint)
+0:28        'u1' (temp highp uint)
+0:28        bitfieldInsert (global highp uint)
+0:28          'u1' (temp highp uint)
+0:28          'u1' (temp highp uint)
+0:28          Constant:
+0:28            4 (const int)
+0:28          Constant:
+0:28            5 (const int)
+0:30      move second child to first child (temp highp 2-component vector of int)
+0:30        'i2' (temp highp 2-component vector of int)
+0:30        bitFieldReverse (global highp 2-component vector of int)
+0:30          'i2' (temp highp 2-component vector of int)
+0:31      move second child to first child (temp highp 4-component vector of uint)
+0:31        'u4' (temp highp 4-component vector of uint)
+0:31        bitFieldReverse (global highp 4-component vector of uint)
+0:31          'u4' (temp highp 4-component vector of uint)
+0:32      move second child to first child (temp highp int)
+0:32        'i1' (temp highp int)
+0:32        bitCount (global highp int)
+0:32          'i1' (temp highp int)
+0:33      move second child to first child (temp highp 3-component vector of int)
+0:33        'i3' (temp highp 3-component vector of int)
+0:33        bitCount (global highp 3-component vector of int)
+0:33          'u3' (temp highp 3-component vector of uint)
+0:34      move second child to first child (temp highp 2-component vector of int)
+0:34        'i2' (temp highp 2-component vector of int)
+0:34        findLSB (global highp 2-component vector of int)
+0:34          'i2' (temp highp 2-component vector of int)
+0:35      move second child to first child (temp highp 4-component vector of int)
+0:35        'i4' (temp highp 4-component vector of int)
+0:35        findLSB (global highp 4-component vector of int)
+0:35          'u4' (temp highp 4-component vector of uint)
+0:36      move second child to first child (temp highp int)
+0:36        'i1' (temp highp int)
+0:36        findMSB (global highp int)
+0:36          'i1' (temp highp int)
+0:37      move second child to first child (temp highp 2-component vector of int)
+0:37        'i2' (temp highp 2-component vector of int)
+0:37        findMSB (global highp 2-component vector of int)
+0:37          'u2' (temp highp 2-component vector of uint)
+0:40      move second child to first child (temp highp 3-component vector of float)
+0:40        'v3' (temp highp 3-component vector of float)
+0:40        frexp (global highp 3-component vector of float)
+0:40          'v3' (temp highp 3-component vector of float)
+0:40          'i3' (temp highp 3-component vector of int)
+0:42      move second child to first child (temp highp 2-component vector of float)
+0:42        'v2' (temp highp 2-component vector of float)
+0:42        ldexp (global highp 2-component vector of float)
+0:42          'v2' (temp highp 2-component vector of float)
+0:42          'i2' (temp highp 2-component vector of int)
+0:45      move second child to first child (temp highp uint)
+0:45        'u1' (temp highp uint)
+0:45        PackUnorm4x8 (global highp uint)
+0:45          'v4' (temp mediump 4-component vector of float)
+0:46      move second child to first child (temp highp uint)
+0:46        'u1' (temp highp uint)
+0:46        PackSnorm4x8 (global highp uint)
+0:46          'v4' (temp mediump 4-component vector of float)
+0:47      move second child to first child (temp mediump 4-component vector of float)
+0:47        'v4' (temp mediump 4-component vector of float)
+0:47        UnpackUnorm4x8 (global mediump 4-component vector of float)
+0:47          'u1' (temp highp uint)
+0:48      move second child to first child (temp mediump 4-component vector of float)
+0:48        'v4' (temp mediump 4-component vector of float)
+0:48        UnpackSnorm4x8 (global mediump 4-component vector of float)
+0:48          'u1' (temp highp uint)
+0:60  Function Definition: foo( (global void)
+0:60    Function Parameters: 
+0:?     Sequence
+0:63      move second child to first child (temp highp 2-component vector of int)
+0:63        'v2' (temp highp 2-component vector of int)
+0:63        textureSize (global highp 2-component vector of int)
+0:63          's2dms' (uniform highp sampler2DMS)
+0:64      move second child to first child (temp highp 2-component vector of int)
+0:64        'v2' (temp highp 2-component vector of int)
+0:64        textureSize (global highp 2-component vector of int)
+0:64          'us2dms' (uniform highp usampler2DMS)
+0:65      Sequence
+0:65        move second child to first child (temp highp 4-component vector of float)
+0:65          'v4' (temp highp 4-component vector of float)
+0:65          textureFetch (global highp 4-component vector of float)
+0:65            's2dms' (uniform highp sampler2DMS)
+0:65            'v2' (temp highp 2-component vector of int)
+0:65            Constant:
+0:65              2 (const int)
+0:66      Sequence
+0:66        move second child to first child (temp highp 4-component vector of int)
+0:66          'iv4' (temp highp 4-component vector of int)
+0:66          textureFetch (global highp 4-component vector of int)
+0:66            'is2dms' (uniform highp isampler2DMS)
+0:66            'v2' (temp highp 2-component vector of int)
+0:66            Constant:
+0:66              2 (const int)
+0:67      Constant:
+0:67        0.000000
+0:69      frexp (global highp float)
+0:69        'f' (temp highp float)
+0:69        'ini' (in highp int)
+0:114  Function Definition: foo_IO( (global void)
+0:114    Function Parameters: 
+0:116    Sequence
+0:116      Sequence
+0:116        move second child to first child (temp highp int)
+0:116          'sum' (temp highp int)
+0:116          add (temp highp int)
+0:116            'gl_VertexID' (gl_VertexId highp int VertexId)
+0:117            'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+0:118      move second child to first child (temp highp 4-component vector of float)
+0:118        gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position)
+0:118          'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:118          Constant:
+0:118            0 (const uint)
+0:118        Constant:
+0:118          1.000000
+0:118          1.000000
+0:118          1.000000
+0:118          1.000000
+0:119      gl_PointSize: direct index for structure (gl_PointSize highp void PointSize)
+0:119        'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:119        Constant:
+0:119          1 (const uint)
+0:153  Function Definition: pfooBad( (global void)
+0:153    Function Parameters: 
+0:?     Sequence
+0:156      move second child to first child (temp highp 2-component vector of float)
+0:156        'h' (temp highp 2-component vector of float)
+0:156        fma (global highp 2-component vector of float)
+0:156          'inf' (in highp 2-component vector of float)
+0:156          'ing' (in highp 2-component vector of float)
+0:156          'h' (temp highp 2-component vector of float)
+0:157      indirect index (temp highp sampler2D)
+0:157        'sArray' (uniform 4-element array of highp sampler2D)
+0:157        add (temp highp int)
+0:157          'sIndex' (uniform highp int)
+0:157          Constant:
+0:157            1 (const int)
+0:158      indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint)
+0:158        'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:158        add (temp highp int)
+0:158          'sIndex' (uniform highp int)
+0:158          Constant:
+0:158            1 (const int)
+0:159      direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:159        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:159        Constant:
+0:159          1 (const int)
+0:160      direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:160        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:160        Constant:
+0:160          2 (const int)
+0:161      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:161        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:161        add (temp highp int)
+0:161          'sIndex' (uniform highp int)
+0:161          Constant:
+0:161            1 (const int)
+0:162      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:162        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:162        'sIndex' (uniform highp int)
+0:163      direct index (writeonly temp highp image2D)
+0:163        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:163        Constant:
+0:163          2 (const int)
+0:164      indirect index (writeonly temp highp image2D)
+0:164        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:164        component-wise multiply (temp highp int)
+0:164          'sIndex' (uniform highp int)
+0:164          Constant:
+0:164            2 (const int)
+0:165      textureGatherOffset (global highp 4-component vector of float)
+0:165        direct index (temp highp sampler2D)
+0:165          'sArray' (uniform 4-element array of highp sampler2D)
+0:165          Constant:
+0:165            0 (const int)
+0:165        Constant:
+0:165          0.100000
+0:165          0.100000
+0:165        Convert float to int (temp highp 2-component vector of int)
+0:165          'inf' (in highp 2-component vector of float)
+0:166      textureGatherOffsets (global highp 4-component vector of float)
+0:166        direct index (temp highp sampler2D)
+0:166          'sArray' (uniform 4-element array of highp sampler2D)
+0:166          Constant:
+0:166            0 (const int)
+0:166        Constant:
+0:166          0.100000
+0:166          0.100000
+0:166        Constant:
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:166          0 (const int)
+0:171  Function Definition: pfoo( (global void)
+0:171    Function Parameters: 
+0:?     Sequence
+0:174      move second child to first child (temp highp 2-component vector of float)
+0:174        'h' (temp highp 2-component vector of float)
+0:174        fma (global highp 2-component vector of float)
+0:174          'inf' (in highp 2-component vector of float)
+0:174          'ing' (in highp 2-component vector of float)
+0:174          'h' (temp highp 2-component vector of float)
+0:175      indirect index (temp highp sampler2D)
+0:175        'sArray' (uniform 4-element array of highp sampler2D)
+0:175        add (temp highp int)
+0:175          'sIndex' (uniform highp int)
+0:175          Constant:
+0:175            1 (const int)
+0:176      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i})
+0:176        'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:176        add (temp highp int)
+0:176          'sIndex' (uniform highp int)
+0:176          Constant:
+0:176            1 (const int)
+0:177      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i})
+0:177        'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:177        subtract (temp highp int)
+0:177          'sIndex' (uniform highp int)
+0:177          Constant:
+0:177            2 (const int)
+0:178      direct index (writeonly temp highp image2D)
+0:178        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:178        Constant:
+0:178          2 (const int)
+0:179      indirect index (writeonly temp highp image2D)
+0:179        'iArray' (writeonly uniform 5-element array of highp image2D)
+0:179        subtract (temp highp int)
+0:179          'sIndex' (uniform highp int)
+0:179          Constant:
+0:179            2 (const int)
+0:180      textureGatherOffset (global highp 4-component vector of float)
+0:180        direct index (temp highp sampler2D)
+0:180          'sArray' (uniform 4-element array of highp sampler2D)
+0:180          Constant:
+0:180            0 (const int)
+0:180        Constant:
+0:180          0.100000
+0:180          0.100000
+0:180        Convert float to int (temp highp 2-component vector of int)
+0:180          'inf' (in highp 2-component vector of float)
+0:181      textureGatherOffsets (global highp 4-component vector of float)
+0:181        direct index (temp highp sampler2D)
+0:181          'sArray' (uniform 4-element array of highp sampler2D)
+0:181          Constant:
+0:181            0 (const int)
+0:181        Constant:
+0:181          0.100000
+0:181          0.100000
+0:181        Constant:
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:181          0 (const int)
+0:182      textureGatherOffsets (global highp 4-component vector of float)
+0:182        direct index (temp highp sampler2D)
+0:182          'sArray' (uniform 4-element array of highp sampler2D)
+0:182          Constant:
+0:182            0 (const int)
+0:182        Constant:
+0:182          0.100000
+0:182          0.100000
+0:182        'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:220  Function Definition: bufferT( (global void)
+0:220    Function Parameters: 
+0:222    Sequence
+0:222      Sequence
+0:222        move second child to first child (temp highp int)
+0:222          's1' (temp highp int)
+0:222          textureSize (global highp int)
+0:222            'bufSamp1' (uniform highp samplerBuffer)
+0:223      Sequence
+0:223        move second child to first child (temp highp int)
+0:223          's2' (temp highp int)
+0:223          textureSize (global highp int)
+0:223            'bufSamp2' (uniform highp isamplerBuffer)
+0:224      Sequence
+0:224        move second child to first child (temp highp int)
+0:224          's3' (temp highp int)
+0:224          textureSize (global highp int)
+0:224            'bufSamp3' (uniform highp usamplerBuffer)
+0:226      Sequence
+0:226        move second child to first child (temp highp int)
+0:226          's4' (temp highp int)
+0:226          imageQuerySize (global highp int)
+0:226            'bufSamp4' (writeonly uniform highp imageBuffer)
+0:227      Sequence
+0:227        move second child to first child (temp highp int)
+0:227          's5' (temp highp int)
+0:227          imageQuerySize (global highp int)
+0:227            'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:228      Sequence
+0:228        move second child to first child (temp highp int)
+0:228          's6' (temp highp int)
+0:228          imageQuerySize (global highp int)
+0:228            'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:230      Sequence
+0:230        move second child to first child (temp highp 4-component vector of float)
+0:230          'f1' (temp highp 4-component vector of float)
+0:230          textureFetch (global highp 4-component vector of float)
+0:230            'bufSamp1' (uniform highp samplerBuffer)
+0:230            's1' (temp highp int)
+0:231      Sequence
+0:231        move second child to first child (temp highp 4-component vector of int)
+0:231          'f2' (temp highp 4-component vector of int)
+0:231          textureFetch (global highp 4-component vector of int)
+0:231            'bufSamp2' (uniform highp isamplerBuffer)
+0:231            's2' (temp highp int)
+0:232      Sequence
+0:232        move second child to first child (temp highp 4-component vector of uint)
+0:232          'f3' (temp highp 4-component vector of uint)
+0:232          textureFetch (global highp 4-component vector of uint)
+0:232            'bufSamp3' (uniform highp usamplerBuffer)
+0:232            's3' (temp highp int)
+0:279  Function Definition: CAT( (global void)
+0:279    Function Parameters: 
+0:281    Sequence
+0:281      Sequence
+0:281        move second child to first child (temp highp 3-component vector of int)
+0:281          's4' (temp highp 3-component vector of int)
+0:281          textureSize (global highp 3-component vector of int)
+0:281            'CA4' (uniform highp samplerCubeArray)
+0:281            Constant:
+0:281              1 (const int)
+0:282      Sequence
+0:282        move second child to first child (temp highp 3-component vector of int)
+0:282          's5' (temp highp 3-component vector of int)
+0:282          textureSize (global highp 3-component vector of int)
+0:282            'CA5' (uniform highp samplerCubeArrayShadow)
+0:282            Constant:
+0:282              1 (const int)
+0:283      Sequence
+0:283        move second child to first child (temp highp 3-component vector of int)
+0:283          's6' (temp highp 3-component vector of int)
+0:283          textureSize (global highp 3-component vector of int)
+0:283            'CA6' (uniform highp isamplerCubeArray)
+0:283            Constant:
+0:283              1 (const int)
+0:284      Sequence
+0:284        move second child to first child (temp highp 3-component vector of int)
+0:284          's7' (temp highp 3-component vector of int)
+0:284          textureSize (global highp 3-component vector of int)
+0:284            'CA7' (uniform highp usamplerCubeArray)
+0:284            Constant:
+0:284              1 (const int)
+0:286      Sequence
+0:286        move second child to first child (temp highp 4-component vector of float)
+0:286          't4' (temp highp 4-component vector of float)
+0:286          texture (global highp 4-component vector of float)
+0:286            'CA4' (uniform highp samplerCubeArray)
+0:286            Constant:
+0:286              0.500000
+0:286              0.500000
+0:286              0.500000
+0:286              0.500000
+0:287      Sequence
+0:287        move second child to first child (temp highp float)
+0:287          't5' (temp highp float)
+0:287          texture (global highp float)
+0:287            'CA5' (uniform highp samplerCubeArrayShadow)
+0:287            Constant:
+0:287              0.500000
+0:287              0.500000
+0:287              0.500000
+0:287              0.500000
+0:287            Constant:
+0:287              3.000000
+0:288      Sequence
+0:288        move second child to first child (temp highp 4-component vector of int)
+0:288          't6' (temp highp 4-component vector of int)
+0:288          texture (global highp 4-component vector of int)
+0:288            'CA6' (uniform highp isamplerCubeArray)
+0:288            Constant:
+0:288              0.500000
+0:288              0.500000
+0:288              0.500000
+0:288              0.500000
+0:289      Sequence
+0:289        move second child to first child (temp highp 4-component vector of uint)
+0:289          't7' (temp highp 4-component vector of uint)
+0:289          texture (global highp 4-component vector of uint)
+0:289            'CA7' (uniform highp usamplerCubeArray)
+0:289            Constant:
+0:289              0.500000
+0:289              0.500000
+0:289              0.500000
+0:289              0.500000
+0:291      Sequence
+0:291        move second child to first child (temp highp 4-component vector of float)
+0:291          'L4' (temp highp 4-component vector of float)
+0:291          textureLod (global highp 4-component vector of float)
+0:291            'CA4' (uniform highp samplerCubeArray)
+0:291            Constant:
+0:291              0.500000
+0:291              0.500000
+0:291              0.500000
+0:291              0.500000
+0:291            Constant:
+0:291              0.240000
+0:292      Sequence
+0:292        move second child to first child (temp highp 4-component vector of int)
+0:292          'L6' (temp highp 4-component vector of int)
+0:292          textureLod (global highp 4-component vector of int)
+0:292            'CA6' (uniform highp isamplerCubeArray)
+0:292            Constant:
+0:292              0.500000
+0:292              0.500000
+0:292              0.500000
+0:292              0.500000
+0:292            Constant:
+0:292              0.260000
+0:293      Sequence
+0:293        move second child to first child (temp highp 4-component vector of uint)
+0:293          'L7' (temp highp 4-component vector of uint)
+0:293          textureLod (global highp 4-component vector of uint)
+0:293            'CA7' (uniform highp usamplerCubeArray)
+0:293            Constant:
+0:293              0.500000
+0:293              0.500000
+0:293              0.500000
+0:293              0.500000
+0:293            Constant:
+0:293              0.270000
+0:295      Sequence
+0:295        move second child to first child (temp highp 4-component vector of float)
+0:295          'g4' (temp highp 4-component vector of float)
+0:295          textureGrad (global highp 4-component vector of float)
+0:295            'CA4' (uniform highp samplerCubeArray)
+0:295            Constant:
+0:295              0.500000
+0:295              0.500000
+0:295              0.500000
+0:295              0.500000
+0:295            Constant:
+0:295              0.100000
+0:295              0.100000
+0:295              0.100000
+0:295            Constant:
+0:295              0.200000
+0:295              0.200000
+0:295              0.200000
+0:296      Sequence
+0:296        move second child to first child (temp highp 4-component vector of int)
+0:296          'g6' (temp highp 4-component vector of int)
+0:296          textureGrad (global highp 4-component vector of int)
+0:296            'CA6' (uniform highp isamplerCubeArray)
+0:296            Constant:
+0:296              0.500000
+0:296              0.500000
+0:296              0.500000
+0:296              0.500000
+0:296            Constant:
+0:296              0.100000
+0:296              0.100000
+0:296              0.100000
+0:296            Constant:
+0:296              0.200000
+0:296              0.200000
+0:296              0.200000
+0:297      Sequence
+0:297        move second child to first child (temp highp 4-component vector of uint)
+0:297          'g7' (temp highp 4-component vector of uint)
+0:297          textureGrad (global highp 4-component vector of uint)
+0:297            'CA7' (uniform highp usamplerCubeArray)
+0:297            Constant:
+0:297              0.500000
+0:297              0.500000
+0:297              0.500000
+0:297              0.500000
+0:297            Constant:
+0:297              0.100000
+0:297              0.100000
+0:297              0.100000
+0:297            Constant:
+0:297              0.200000
+0:297              0.200000
+0:297              0.200000
+0:299      Sequence
+0:299        move second child to first child (temp highp 4-component vector of float)
+0:299          'gath4' (temp highp 4-component vector of float)
+0:299          textureGather (global highp 4-component vector of float)
+0:299            'CA4' (uniform highp samplerCubeArray)
+0:299            Constant:
+0:299              0.500000
+0:299              0.500000
+0:299              0.500000
+0:299              0.500000
+0:300      Sequence
+0:300        move second child to first child (temp highp 4-component vector of float)
+0:300          'gathC4' (temp highp 4-component vector of float)
+0:300          textureGather (global highp 4-component vector of float)
+0:300            'CA4' (uniform highp samplerCubeArray)
+0:300            Constant:
+0:300              0.500000
+0:300              0.500000
+0:300              0.500000
+0:300              0.500000
+0:300            Constant:
+0:300              2 (const int)
+0:301      Sequence
+0:301        move second child to first child (temp highp 4-component vector of int)
+0:301          'gath6' (temp highp 4-component vector of int)
+0:301          textureGather (global highp 4-component vector of int)
+0:301            'CA6' (uniform highp isamplerCubeArray)
+0:301            Constant:
+0:301              0.500000
+0:301              0.500000
+0:301              0.500000
+0:301              0.500000
+0:302      Sequence
+0:302        move second child to first child (temp highp 4-component vector of int)
+0:302          'gathC6' (temp highp 4-component vector of int)
+0:302          textureGather (global highp 4-component vector of int)
+0:302            'CA6' (uniform highp isamplerCubeArray)
+0:302            Constant:
+0:302              0.500000
+0:302              0.500000
+0:302              0.500000
+0:302              0.500000
+0:302            Constant:
+0:302              1 (const int)
+0:303      Sequence
+0:303        move second child to first child (temp highp 4-component vector of uint)
+0:303          'gath7' (temp highp 4-component vector of uint)
+0:303          textureGather (global highp 4-component vector of uint)
+0:303            'CA7' (uniform highp usamplerCubeArray)
+0:303            Constant:
+0:303              0.500000
+0:303              0.500000
+0:303              0.500000
+0:303              0.500000
+0:304      Sequence
+0:304        move second child to first child (temp highp 4-component vector of uint)
+0:304          'gathC7' (temp highp 4-component vector of uint)
+0:304          textureGather (global highp 4-component vector of uint)
+0:304            'CA7' (uniform highp usamplerCubeArray)
+0:304            Constant:
+0:304              0.500000
+0:304              0.500000
+0:304              0.500000
+0:304              0.500000
+0:304            Constant:
+0:304              0 (const int)
+0:306      Sequence
+0:306        move second child to first child (temp highp 4-component vector of float)
+0:306          'gath5' (temp highp 4-component vector of float)
+0:306          textureGather (global highp 4-component vector of float)
+0:306            'CA5' (uniform highp samplerCubeArrayShadow)
+0:306            Constant:
+0:306              0.500000
+0:306              0.500000
+0:306              0.500000
+0:306              0.500000
+0:306            Constant:
+0:306              2.500000
+0:308      Sequence
+0:308        move second child to first child (temp highp 3-component vector of int)
+0:308          's1' (temp highp 3-component vector of int)
+0:308          imageQuerySize (global highp 3-component vector of int)
+0:308            'CA1' (writeonly uniform highp imageCubeArray)
+0:309      Sequence
+0:309        move second child to first child (temp highp 3-component vector of int)
+0:309          's2' (temp highp 3-component vector of int)
+0:309          imageQuerySize (global highp 3-component vector of int)
+0:309            'CA2' (writeonly uniform highp iimageCubeArray)
+0:310      Sequence
+0:310        move second child to first child (temp highp 3-component vector of int)
+0:310          's3' (temp highp 3-component vector of int)
+0:310          imageQuerySize (global highp 3-component vector of int)
+0:310            'CA3' (writeonly uniform highp uimageCubeArray)
+0:312      imageStore (global highp void)
+0:312        'CA1' (writeonly uniform highp imageCubeArray)
+0:312        's3' (temp highp 3-component vector of int)
+0:312        Constant:
+0:312          1.000000
+0:312          1.000000
+0:312          1.000000
+0:312          1.000000
+0:313      imageStore (global highp void)
+0:313        'CA2' (writeonly uniform highp iimageCubeArray)
+0:313        's3' (temp highp 3-component vector of int)
+0:313        Constant:
+0:313          1 (const int)
+0:313          1 (const int)
+0:313          1 (const int)
+0:313          1 (const int)
+0:314      imageStore (global highp void)
+0:314        'CA3' (writeonly uniform highp uimageCubeArray)
+0:314        's3' (temp highp 3-component vector of int)
+0:314        Constant:
+0:314          1 (const uint)
+0:314          1 (const uint)
+0:314          1 (const uint)
+0:314          1 (const uint)
+0:316      Sequence
+0:316        move second child to first child (temp highp 4-component vector of float)
+0:316          'cl1' (temp highp 4-component vector of float)
+0:316          imageLoad (global highp 4-component vector of float)
+0:316            'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:316            's3' (temp highp 3-component vector of int)
+0:317      Sequence
+0:317        move second child to first child (temp highp 4-component vector of int)
+0:317          'cl2' (temp highp 4-component vector of int)
+0:317          imageLoad (global highp 4-component vector of int)
+0:317            'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:317            's3' (temp highp 3-component vector of int)
+0:318      Sequence
+0:318        move second child to first child (temp highp 4-component vector of uint)
+0:318          'cl3' (temp highp 4-component vector of uint)
+0:318          imageLoad (global highp 4-component vector of uint)
+0:318            'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:318            's3' (temp highp 3-component vector of int)
+0:343  Function Definition: MSA( (global void)
+0:343    Function Parameters: 
+0:345    Sequence
+0:345      Sequence
+0:345        move second child to first child (temp highp 4-component vector of float)
+0:345          'tf' (temp highp 4-component vector of float)
+0:345          textureFetch (global highp 4-component vector of float)
+0:345            'samp2DMSA' (uniform highp sampler2DMSArray)
+0:345            Constant:
+0:345              5 (const int)
+0:345              5 (const int)
+0:345              5 (const int)
+0:345            Constant:
+0:345              2 (const int)
+0:346      Sequence
+0:346        move second child to first child (temp highp 4-component vector of int)
+0:346          'tfi' (temp highp 4-component vector of int)
+0:346          textureFetch (global highp 4-component vector of int)
+0:346            'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:346            Constant:
+0:346              5 (const int)
+0:346              5 (const int)
+0:346              5 (const int)
+0:346            Constant:
+0:346              2 (const int)
+0:347      Sequence
+0:347        move second child to first child (temp highp 4-component vector of uint)
+0:347          'tfu' (temp highp 4-component vector of uint)
+0:347          textureFetch (global highp 4-component vector of uint)
+0:347            'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:347            Constant:
+0:347              5 (const int)
+0:347              5 (const int)
+0:347              5 (const int)
+0:347            Constant:
+0:347              2 (const int)
+0:349      Sequence
+0:349        move second child to first child (temp highp 3-component vector of int)
+0:349          'tfs' (temp highp 3-component vector of int)
+0:349          textureSize (global highp 3-component vector of int)
+0:349            'samp2DMSA' (uniform highp sampler2DMSArray)
+0:350      Sequence
+0:350        move second child to first child (temp highp 3-component vector of int)
+0:350          'tfsi' (temp highp 3-component vector of int)
+0:350          textureSize (global highp 3-component vector of int)
+0:350            'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:352      Sequence
+0:352        move second child to first child (temp highp 3-component vector of int)
+0:352          'tfsu' (temp highp 3-component vector of int)
+0:352          textureSize (global highp 3-component vector of int)
+0:352            'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:364  Function Definition: goodImageAtom( (global void)
+0:364    Function Parameters: 
+0:?     Sequence
+0:370      imageAtomicAdd (global highp int)
+0:370        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:370        'P' (uniform highp 2-component vector of int)
+0:370        'dati' (temp highp int)
+0:371      imageAtomicAdd (global highp uint)
+0:371        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:371        'P' (uniform highp 2-component vector of int)
+0:371        'datu' (temp highp uint)
+0:372      imageAtomicMin (global highp int)
+0:372        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:372        'P' (uniform highp 2-component vector of int)
+0:372        'dati' (temp highp int)
+0:373      imageAtomicMin (global highp uint)
+0:373        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:373        'P' (uniform highp 2-component vector of int)
+0:373        'datu' (temp highp uint)
+0:374      imageAtomicMax (global highp int)
+0:374        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:374        'P' (uniform highp 2-component vector of int)
+0:374        'dati' (temp highp int)
+0:375      imageAtomicMax (global highp uint)
+0:375        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:375        'P' (uniform highp 2-component vector of int)
+0:375        'datu' (temp highp uint)
+0:376      imageAtomicAnd (global highp int)
+0:376        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:376        'P' (uniform highp 2-component vector of int)
+0:376        'dati' (temp highp int)
+0:377      imageAtomicAnd (global highp uint)
+0:377        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:377        'P' (uniform highp 2-component vector of int)
+0:377        'datu' (temp highp uint)
+0:378      imageAtomicOr (global highp int)
+0:378        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:378        'P' (uniform highp 2-component vector of int)
+0:378        'dati' (temp highp int)
+0:379      imageAtomicOr (global highp uint)
+0:379        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:379        'P' (uniform highp 2-component vector of int)
+0:379        'datu' (temp highp uint)
+0:380      imageAtomicXor (global highp int)
+0:380        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:380        'P' (uniform highp 2-component vector of int)
+0:380        'dati' (temp highp int)
+0:381      imageAtomicXor (global highp uint)
+0:381        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:381        'P' (uniform highp 2-component vector of int)
+0:381        'datu' (temp highp uint)
+0:382      imageAtomicExchange (global highp int)
+0:382        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:382        'P' (uniform highp 2-component vector of int)
+0:382        'dati' (temp highp int)
+0:383      imageAtomicExchange (global highp uint)
+0:383        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:383        'P' (uniform highp 2-component vector of int)
+0:383        'datu' (temp highp uint)
+0:384      imageAtomicExchange (global highp float)
+0:384        'im2Df' (layout(r32f ) uniform highp image2D)
+0:384        'P' (uniform highp 2-component vector of int)
+0:384        'datf' (temp highp float)
+0:385      imageAtomicCompSwap (global highp int)
+0:385        'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:385        'P' (uniform highp 2-component vector of int)
+0:385        Constant:
+0:385          3 (const int)
+0:385        'dati' (temp highp int)
+0:386      imageAtomicCompSwap (global highp uint)
+0:386        'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:386        'P' (uniform highp 2-component vector of int)
+0:386        Constant:
+0:386          5 (const uint)
+0:386        'datu' (temp highp uint)
+0:398  Function Definition: badInterp( (global void)
+0:398    Function Parameters: 
+0:400    Sequence
+0:400      Constant:
+0:400        0.000000
+0:401      Constant:
+0:401        0.000000
+0:402      Constant:
+0:402        0.000000
+0:?   Linker Objects
+0:?     's' (shared highp 4-component vector of float)
+0:?     'v' (buffer highp 4-component vector of float)
+0:?     'ini' (in highp int)
+0:?     'x' (layout(location=2 ) uniform highp 4X4 matrix of float)
+0:?     'y' (layout(location=3 ) uniform highp 4X4 matrix of float)
+0:?     'xi' (layout(location=2 ) smooth out highp 4X4 matrix of float)
+0:?     'yi' (layout(location=3 ) smooth out highp 4X4 matrix of float)
+0:?     's2dms' (uniform highp sampler2DMS)
+0:?     'is2dms' (uniform highp isampler2DMS)
+0:?     'us2dms' (uniform highp usampler2DMS)
+0:?     'us2dmsa' (uniform mediump usampler2DMSArray)
+0:?     'outb' (smooth out bool)
+0:?     'outo' (smooth out highp sampler2D)
+0:?     'outa' (smooth out 4-element array of highp float)
+0:?     'outaa' (smooth out 4-element array of 2-element array of highp float)
+0:?     'outs' (smooth out structure{global highp float f})
+0:?     'outasa' (smooth out 4-element array of structure{global highp float f})
+0:?     'outsa' (smooth out 4-element array of structure{global highp float f})
+0:?     'outSA' (smooth out structure{global 4-element array of highp float f})
+0:?     'outSS' (smooth out structure{global highp float f, global structure{global highp float f} s})
+0:?     'U430i' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=0 ) uniform highp int a})
+0:?     'B430i' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer highp int a})
+0:?     'outbinst' (out block{out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
+0:?     'anon@0' (out block{layout(location=12 ) out highp int aAnon, layout(location=13 ) out highp 4-component vector of float vAnon})
+0:?     'aliased' (layout(location=12 ) smooth out highp int)
+0:?     'inbinst' (in block{in highp int a})
+0:?     'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, })
+0:?     'smon' (smooth out block{out highp int i})
+0:?     'fmon' (flat out block{out highp int i})
+0:?     'cmon' (centroid out block{out highp int i})
+0:?     'imon' (invariant out block{out highp int i})
+0:?     'inf' (in highp 2-component vector of float)
+0:?     'ing' (in highp 2-component vector of float)
+0:?     'offsets' (uniform 4-element array of highp 2-component vector of int)
+0:?     'sArray' (uniform 4-element array of highp sampler2D)
+0:?     'sIndex' (uniform highp int)
+0:?     'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint)
+0:?     'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i})
+0:?     'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i})
+0:?     'iArray' (writeonly uniform 5-element array of highp image2D)
+0:?     'constOffsets' (const 4-element array of highp 2-component vector of int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?       0 (const int)
+0:?     'badSamp1' (uniform mediump samplerBuffer)
+0:?     'badSamp2' (uniform mediump isamplerBuffer)
+0:?     'badSamp3' (uniform mediump usamplerBuffer)
+0:?     'badSamp4' (writeonly uniform mediump imageBuffer)
+0:?     'badSamp5' (writeonly uniform mediump iimageBuffer)
+0:?     'badSamp6' (writeonly uniform mediump uimageBuffer)
+0:?     'noPreSamp1' (uniform mediump samplerBuffer)
+0:?     'noPreSamp2' (uniform mediump isamplerBuffer)
+0:?     'noPreSamp3' (uniform mediump usamplerBuffer)
+0:?     'noPreSamp4' (writeonly uniform mediump imageBuffer)
+0:?     'noPreSamp5' (writeonly uniform mediump iimageBuffer)
+0:?     'noPreSamp6' (writeonly uniform mediump uimageBuffer)
+0:?     'bufSamp1' (uniform highp samplerBuffer)
+0:?     'bufSamp2' (uniform highp isamplerBuffer)
+0:?     'bufSamp3' (uniform highp usamplerBuffer)
+0:?     'bufSamp4' (writeonly uniform highp imageBuffer)
+0:?     'bufSamp5' (writeonly uniform highp iimageBuffer)
+0:?     'bufSamp6' (writeonly uniform highp uimageBuffer)
+0:?     'badCA1' (writeonly uniform mediump imageCubeArray)
+0:?     'badCA2' (writeonly uniform mediump iimageCubeArray)
+0:?     'badCA3' (writeonly uniform mediump uimageCubeArray)
+0:?     'badCA4' (uniform mediump samplerCubeArray)
+0:?     'badCA5' (uniform mediump samplerCubeArrayShadow)
+0:?     'badCA6' (uniform mediump isamplerCubeArray)
+0:?     'badCA7' (uniform mediump usamplerCubeArray)
+0:?     'noPreCA1' (writeonly uniform mediump imageCubeArray)
+0:?     'noPreCA2' (writeonly uniform mediump iimageCubeArray)
+0:?     'noPreCA3' (writeonly uniform mediump uimageCubeArray)
+0:?     'noPreCA4' (uniform mediump samplerCubeArray)
+0:?     'noPreCA5' (uniform mediump samplerCubeArrayShadow)
+0:?     'noPreCA6' (uniform mediump isamplerCubeArray)
+0:?     'noPreCA7' (uniform mediump usamplerCubeArray)
+0:?     'CA1' (writeonly uniform highp imageCubeArray)
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)
+0:?     'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray)
+0:?     'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray)
+0:?     'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray)
+0:?     'CA4' (uniform highp samplerCubeArray)
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)
+0:?     'CA6' (uniform highp isamplerCubeArray)
+0:?     'CA7' (uniform highp usamplerCubeArray)
+0:?     'bad2DMS' (uniform mediump sampler2DMSArray)
+0:?     'bad2DMSi' (uniform mediump isampler2DMSArray)
+0:?     'bad2DMSu' (uniform mediump usampler2DMSArray)
+0:?     'noPrec2DMS' (uniform mediump sampler2DMSArray)
+0:?     'noPrec2DMSi' (uniform mediump isampler2DMSArray)
+0:?     'noPrec2DMSu' (uniform mediump usampler2DMSArray)
+0:?     'samp2DMSA' (uniform highp sampler2DMSArray)
+0:?     'samp2DMSAi' (uniform highp isampler2DMSArray)
+0:?     'samp2DMSAu' (uniform highp usampler2DMSArray)
+0:?     'im2Df' (layout(r32f ) uniform highp image2D)
+0:?     'im2Du' (layout(r32ui ) uniform highp uimage2D)
+0:?     'im2Di' (layout(r32i ) uniform highp iimage2D)
+0:?     'P' (uniform highp 2-component vector of int)
+0:?     'colorSampInBad' (smooth sample out highp 4-component vector of float)
+0:?     'colorSample' (smooth sample out highp 4-component vector of float)
+0:?     'colorfsi' (flat sample out highp 4-component vector of float)
+0:?     'sampInArray' (smooth sample out 4-element array of highp 3-component vector of float)
+0:?     'inv4' (in highp 4-component vector of float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out
index 476646c..40c4321 100644
--- a/Test/baseResults/310AofA.vert.out
+++ b/Test/baseResults/310AofA.vert.out
@@ -1,647 +1,647 @@
-310AofA.vert

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:17: '' : array size required 

-ERROR: 0:23: '' : array size required 

-ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized 

-ERROR: 0:40: '' : array size required 

-ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument 

-ERROR: 0:49: 'constructior' : array constructor argument not correct type to construct array element 

-ERROR: 0:62: '[' :  array index out of range '4'

-ERROR: 0:78: 'assign' :  cannot convert from 'global 4-element array of 7-element array of highp float' to 'global 5-element array of 7-element array of highp float'

-ERROR: 0:79: 'assign' :  cannot convert from 'global 4-element array of 7-element array of highp float' to 'global implicitly-sized array of 7-element array of highp float'

-ERROR: 0:81: 'foo' : no matching overloaded function found 

-ERROR: 0:86: '==' :  wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global 4-element array of 7-element array of highp float' and a right operand of type 'global 5-element array of 7-element array of highp float' (or there is no acceptable conversion)

-ERROR: 0:90: '[' :  array index out of range '5'

-ERROR: 0:94: '[' :  index out of range '-1'

-ERROR: 0:96: 'assign' :  cannot convert from 'temp 3-element array of highp 4-component vector of float' to 'layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float'

-ERROR: 0:103: '' : array size required 

-ERROR: 0:104: '' : array size required 

-ERROR: 0:105: '' : array size required 

-ERROR: 0:106: '' : array size required 

-ERROR: 0:107: '' : array size required 

-ERROR: 0:110: 'vertex input arrays' : not supported with this profile: es

-ERROR: 0:111: 'vertex-shader array-of-array output' : not supported with this profile: es

-ERROR: 0:113: 'array-of-array of block' : not supported with this profile: es

-ERROR: 22 compilation errors.  No code generated.

-

-

-Shader version: 310

-ERROR: node is still EOpNull!

-0:8  Function Definition: f(b1;f1;u1[4];i1[3][2]; (global void)

-0:8    Function Parameters: 

-0:8      'a' (in bool)

-0:8      'b' (in highp float)

-0:8      'c' (in 4-element array of highp uint)

-0:8      'd' (in 3-element array of 2-element array of highp int)

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:?     Sequence

-0:13      Function Call: f(b1;f1;u1[4];i1[3][2]; (global void)

-0:13        Constant:

-0:13          false (const bool)

-0:13        Constant:

-0:13          12.100000

-0:13        Constant:

-0:13          0 (const uint)

-0:13          1 (const uint)

-0:13          1 (const uint)

-0:13          2 (const uint)

-0:13        'd' (temp 3-element array of 2-element array of highp int)

-0:44  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:44    Function Parameters: 

-0:44      'a' (in 5-element array of 7-element array of highp float)

-0:?     Sequence

-0:47      move second child to first child (temp 7-element array of highp float)

-0:47        'r' (temp 7-element array of highp float)

-0:47        direct index (temp 7-element array of highp float)

-0:47          'a' (in 5-element array of 7-element array of highp float)

-0:47          Constant:

-0:47            2 (const int)

-0:48      Constant:

-0:48        0.000000

-0:49      Constant:

-0:49        0.000000

-0:50      Branch: Return with expression

-0:50        Construct float (temp 4-element array of 7-element array of float)

-0:50          direct index (temp 7-element array of highp float)

-0:50            'a' (in 5-element array of 7-element array of highp float)

-0:50            Constant:

-0:50              0 (const int)

-0:50          direct index (temp 7-element array of highp float)

-0:50            'a' (in 5-element array of 7-element array of highp float)

-0:50            Constant:

-0:50              1 (const int)

-0:50          'r' (temp 7-element array of highp float)

-0:50          direct index (temp 7-element array of highp float)

-0:50            'a' (in 5-element array of 7-element array of highp float)

-0:50            Constant:

-0:50              3 (const int)

-0:51      Branch: Return with expression

-0:51        Construct float (temp 4-element array of 7-element array of float)

-0:51          direct index (temp 7-element array of highp float)

-0:51            'a' (in 5-element array of 7-element array of highp float)

-0:51            Constant:

-0:51              0 (const int)

-0:51          direct index (temp 7-element array of highp float)

-0:51            'a' (in 5-element array of 7-element array of highp float)

-0:51            Constant:

-0:51              1 (const int)

-0:51          'r' (temp 7-element array of highp float)

-0:51          direct index (temp 7-element array of highp float)

-0:51            'a' (in 5-element array of 7-element array of highp float)

-0:51            Constant:

-0:51              3 (const int)

-0:52      Branch: Return with expression

-0:52        Construct float (temp 4-element array of 7-element array of float)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              0 (const int)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              1 (const int)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              2 (const int)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              3 (const int)

-0:55  Function Definition: bar(f1[5][7]; (global void)

-0:55    Function Parameters: 

-0:55      '' (in 5-element array of 7-element array of highp float)

-0:57  Function Definition: foo2( (global void)

-0:57    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:62        move second child to first child (temp highp float)

-0:62          direct index (temp highp float)

-0:62            direct index (temp 2-element array of highp float)

-0:62              direct index (temp 4-element array of 2-element array of highp float)

-0:62                'gu' (temp 3-element array of 4-element array of 2-element array of highp float)

-0:62                Constant:

-0:62                  2 (const int)

-0:62              Constant:

-0:62                4 (const int)

-0:62            Constant:

-0:62              1 (const int)

-0:62          Constant:

-0:62            4.000000

-0:64      Sequence

-0:64        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:64          'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:66          Constant:

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:67      Sequence

-0:67        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:67          'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:69          Constant:

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:70      Sequence

-0:70        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:70          'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:72          Constant:

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:73      Sequence

-0:73        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:73          'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:75          Constant:

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:77      move second child to first child (temp 4-element array of 7-element array of highp float)

-0:77        'g4' (global 4-element array of 7-element array of highp float)

-0:77        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:77          'g5' (global 5-element array of 7-element array of highp float)

-0:78      'g5' (global 5-element array of 7-element array of highp float)

-0:79      'gu' (global implicitly-sized array of 7-element array of highp float)

-0:81      Constant:

-0:81        0.000000

-0:82      Function Call: bar(f1[5][7]; (global void)

-0:82        'g5' (global 5-element array of 7-element array of highp float)

-0:84      Test condition and select (temp void)

-0:84        Condition

-0:84        Compare Equal (temp bool)

-0:84          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:84            'g5' (global 5-element array of 7-element array of highp float)

-0:84          'g4' (global 4-element array of 7-element array of highp float)

-0:84        true case is null

-0:86      Test condition and select (temp void)

-0:86        Condition

-0:86        Constant:

-0:86          false (const bool)

-0:86        true case is null

-0:90      move second child to first child (temp highp float)

-0:90        direct index (temp highp float)

-0:90          direct index (temp 7-element array of highp float)

-0:90            'u' (temp 5-element array of 7-element array of highp float)

-0:90            Constant:

-0:90              5 (const int)

-0:90          Constant:

-0:90            2 (const int)

-0:90        Constant:

-0:90          5.000000

-0:91      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:91        'u' (temp 5-element array of 7-element array of highp float)

-0:94      direct index (layout(column_major shared ) temp highp 4-component vector of float)

-0:94        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)

-0:94          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:94            'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:94            Constant:

-0:94              1 (const int)

-0:94          Constant:

-0:94            1 (const int)

-0:94        Constant:

-0:94          -1 (const int)

-0:95      move second child to first child (temp highp 4-component vector of float)

-0:95        direct index (layout(column_major shared ) temp highp 4-component vector of float)

-0:95          v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)

-0:95            direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:95              'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:95              Constant:

-0:95                1 (const int)

-0:95            Constant:

-0:95              1 (const int)

-0:95          Constant:

-0:95            1 (const int)

-0:95        Constant:

-0:95          4.300000

-0:95          4.300000

-0:95          4.300000

-0:95          4.300000

-0:96      v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)

-0:96        direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:96          'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:96          Constant:

-0:96            1 (const int)

-0:96        Constant:

-0:96          1 (const int)

-0:98      Constant:

-0:98        7 (const int)

-0:99      array length (temp highp int)

-0:99        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)

-0:99          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

-0:99            'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

-0:99            Constant:

-0:99              0 (const int)

-0:99          Constant:

-0:99            1 (const int)

-0:?   Linker Objects

-0:?     'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:?     'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform implicitly-sized array of highp 4-component vector of float v})

-0:?     'name2' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})

-0:?     'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

-0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)

-0:?     'gu' (global implicitly-sized array of 7-element array of highp float)

-0:?     'g4' (global 4-element array of 7-element array of highp float)

-0:?     'g5' (global 5-element array of 7-element array of highp float)

-0:?     'inArray' (in 2-element array of 3-element array of highp float)

-0:?     'outArray' (smooth out 2-element array of 3-element array of highp float)

-0:?     'ubaaname' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform highp int a})

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 310

-ERROR: node is still EOpNull!

-0:8  Function Definition: f(b1;f1;u1[4];i1[3][2]; (global void)

-0:8    Function Parameters: 

-0:8      'a' (in bool)

-0:8      'b' (in highp float)

-0:8      'c' (in 4-element array of highp uint)

-0:8      'd' (in 3-element array of 2-element array of highp int)

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:?     Sequence

-0:13      Function Call: f(b1;f1;u1[4];i1[3][2]; (global void)

-0:13        Constant:

-0:13          false (const bool)

-0:13        Constant:

-0:13          12.100000

-0:13        Constant:

-0:13          0 (const uint)

-0:13          1 (const uint)

-0:13          1 (const uint)

-0:13          2 (const uint)

-0:13        'd' (temp 3-element array of 2-element array of highp int)

-0:44  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:44    Function Parameters: 

-0:44      'a' (in 5-element array of 7-element array of highp float)

-0:?     Sequence

-0:47      move second child to first child (temp 7-element array of highp float)

-0:47        'r' (temp 7-element array of highp float)

-0:47        direct index (temp 7-element array of highp float)

-0:47          'a' (in 5-element array of 7-element array of highp float)

-0:47          Constant:

-0:47            2 (const int)

-0:48      Constant:

-0:48        0.000000

-0:49      Constant:

-0:49        0.000000

-0:50      Branch: Return with expression

-0:50        Construct float (temp 4-element array of 7-element array of float)

-0:50          direct index (temp 7-element array of highp float)

-0:50            'a' (in 5-element array of 7-element array of highp float)

-0:50            Constant:

-0:50              0 (const int)

-0:50          direct index (temp 7-element array of highp float)

-0:50            'a' (in 5-element array of 7-element array of highp float)

-0:50            Constant:

-0:50              1 (const int)

-0:50          'r' (temp 7-element array of highp float)

-0:50          direct index (temp 7-element array of highp float)

-0:50            'a' (in 5-element array of 7-element array of highp float)

-0:50            Constant:

-0:50              3 (const int)

-0:51      Branch: Return with expression

-0:51        Construct float (temp 4-element array of 7-element array of float)

-0:51          direct index (temp 7-element array of highp float)

-0:51            'a' (in 5-element array of 7-element array of highp float)

-0:51            Constant:

-0:51              0 (const int)

-0:51          direct index (temp 7-element array of highp float)

-0:51            'a' (in 5-element array of 7-element array of highp float)

-0:51            Constant:

-0:51              1 (const int)

-0:51          'r' (temp 7-element array of highp float)

-0:51          direct index (temp 7-element array of highp float)

-0:51            'a' (in 5-element array of 7-element array of highp float)

-0:51            Constant:

-0:51              3 (const int)

-0:52      Branch: Return with expression

-0:52        Construct float (temp 4-element array of 7-element array of float)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              0 (const int)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              1 (const int)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              2 (const int)

-0:52          direct index (temp 7-element array of highp float)

-0:52            'a' (in 5-element array of 7-element array of highp float)

-0:52            Constant:

-0:52              3 (const int)

-0:55  Function Definition: bar(f1[5][7]; (global void)

-0:55    Function Parameters: 

-0:55      '' (in 5-element array of 7-element array of highp float)

-0:57  Function Definition: foo2( (global void)

-0:57    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:62        move second child to first child (temp highp float)

-0:62          direct index (temp highp float)

-0:62            direct index (temp 2-element array of highp float)

-0:62              direct index (temp 4-element array of 2-element array of highp float)

-0:62                'gu' (temp 3-element array of 4-element array of 2-element array of highp float)

-0:62                Constant:

-0:62                  2 (const int)

-0:62              Constant:

-0:62                4 (const int)

-0:62            Constant:

-0:62              1 (const int)

-0:62          Constant:

-0:62            4.000000

-0:64      Sequence

-0:64        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:64          'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:66          Constant:

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            0.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:66            1.000000

-0:67      Sequence

-0:67        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:67          'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:69          Constant:

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            4.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:69            2.000000

-0:70      Sequence

-0:70        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:70          'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:72          Constant:

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            4.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:72            2.000000

-0:73      Sequence

-0:73        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:73          'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)

-0:75          Constant:

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            4.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:75            2.000000

-0:77      move second child to first child (temp 4-element array of 7-element array of highp float)

-0:77        'g4' (global 4-element array of 7-element array of highp float)

-0:77        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:77          'g5' (global 5-element array of 7-element array of highp float)

-0:78      'g5' (global 5-element array of 7-element array of highp float)

-0:79      'gu' (global 1-element array of 7-element array of highp float)

-0:81      Constant:

-0:81        0.000000

-0:82      Function Call: bar(f1[5][7]; (global void)

-0:82        'g5' (global 5-element array of 7-element array of highp float)

-0:84      Test condition and select (temp void)

-0:84        Condition

-0:84        Compare Equal (temp bool)

-0:84          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:84            'g5' (global 5-element array of 7-element array of highp float)

-0:84          'g4' (global 4-element array of 7-element array of highp float)

-0:84        true case is null

-0:86      Test condition and select (temp void)

-0:86        Condition

-0:86        Constant:

-0:86          false (const bool)

-0:86        true case is null

-0:90      move second child to first child (temp highp float)

-0:90        direct index (temp highp float)

-0:90          direct index (temp 7-element array of highp float)

-0:90            'u' (temp 5-element array of 7-element array of highp float)

-0:90            Constant:

-0:90              5 (const int)

-0:90          Constant:

-0:90            2 (const int)

-0:90        Constant:

-0:90          5.000000

-0:91      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)

-0:91        'u' (temp 5-element array of 7-element array of highp float)

-0:94      direct index (layout(column_major shared ) temp highp 4-component vector of float)

-0:94        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)

-0:94          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:94            'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:94            Constant:

-0:94              1 (const int)

-0:94          Constant:

-0:94            1 (const int)

-0:94        Constant:

-0:94          -1 (const int)

-0:95      move second child to first child (temp highp 4-component vector of float)

-0:95        direct index (layout(column_major shared ) temp highp 4-component vector of float)

-0:95          v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)

-0:95            direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:95              'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:95              Constant:

-0:95                1 (const int)

-0:95            Constant:

-0:95              1 (const int)

-0:95          Constant:

-0:95            1 (const int)

-0:95        Constant:

-0:95          4.300000

-0:95          4.300000

-0:95          4.300000

-0:95          4.300000

-0:96      v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)

-0:96        direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:96          'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:96          Constant:

-0:96            1 (const int)

-0:96        Constant:

-0:96          1 (const int)

-0:98      Constant:

-0:98        7 (const int)

-0:99      array length (temp highp int)

-0:99        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)

-0:99          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

-0:99            'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

-0:99            Constant:

-0:99              0 (const int)

-0:99          Constant:

-0:99            1 (const int)

-0:?   Linker Objects

-0:?     'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})

-0:?     'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v})

-0:?     'name2' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})

-0:?     'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})

-0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)

-0:?     'gu' (global 1-element array of 7-element array of highp float)

-0:?     'g4' (global 4-element array of 7-element array of highp float)

-0:?     'g5' (global 5-element array of 7-element array of highp float)

-0:?     'inArray' (in 2-element array of 3-element array of highp float)

-0:?     'outArray' (smooth out 2-element array of 3-element array of highp float)

-0:?     'ubaaname' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform highp int a})

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+310AofA.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:17: '' : array size required 
+ERROR: 0:23: '' : array size required 
+ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized 
+ERROR: 0:40: '' : array size required 
+ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument 
+ERROR: 0:49: 'constructior' : array constructor argument not correct type to construct array element 
+ERROR: 0:62: '[' :  array index out of range '4'
+ERROR: 0:78: 'assign' :  cannot convert from 'global 4-element array of 7-element array of highp float' to 'global 5-element array of 7-element array of highp float'
+ERROR: 0:79: 'assign' :  cannot convert from 'global 4-element array of 7-element array of highp float' to 'global implicitly-sized array of 7-element array of highp float'
+ERROR: 0:81: 'foo' : no matching overloaded function found 
+ERROR: 0:86: '==' :  wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global 4-element array of 7-element array of highp float' and a right operand of type 'global 5-element array of 7-element array of highp float' (or there is no acceptable conversion)
+ERROR: 0:90: '[' :  array index out of range '5'
+ERROR: 0:94: '[' :  index out of range '-1'
+ERROR: 0:96: 'assign' :  cannot convert from 'temp 3-element array of highp 4-component vector of float' to 'layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float'
+ERROR: 0:103: '' : array size required 
+ERROR: 0:104: '' : array size required 
+ERROR: 0:105: '' : array size required 
+ERROR: 0:106: '' : array size required 
+ERROR: 0:107: '' : array size required 
+ERROR: 0:110: 'vertex input arrays' : not supported with this profile: es
+ERROR: 0:111: 'vertex-shader array-of-array output' : not supported with this profile: es
+ERROR: 0:113: 'array-of-array of block' : not supported with this profile: es
+ERROR: 22 compilation errors.  No code generated.
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:8  Function Definition: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:8    Function Parameters: 
+0:8      'a' (in bool)
+0:8      'b' (in highp float)
+0:8      'c' (in 4-element array of highp uint)
+0:8      'd' (in 3-element array of 2-element array of highp int)
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:?     Sequence
+0:13      Function Call: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:13        Constant:
+0:13          false (const bool)
+0:13        Constant:
+0:13          12.100000
+0:13        Constant:
+0:13          0 (const uint)
+0:13          1 (const uint)
+0:13          1 (const uint)
+0:13          2 (const uint)
+0:13        'd' (temp 3-element array of 2-element array of highp int)
+0:44  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:44    Function Parameters: 
+0:44      'a' (in 5-element array of 7-element array of highp float)
+0:?     Sequence
+0:47      move second child to first child (temp 7-element array of highp float)
+0:47        'r' (temp 7-element array of highp float)
+0:47        direct index (temp 7-element array of highp float)
+0:47          'a' (in 5-element array of 7-element array of highp float)
+0:47          Constant:
+0:47            2 (const int)
+0:48      Constant:
+0:48        0.000000
+0:49      Constant:
+0:49        0.000000
+0:50      Branch: Return with expression
+0:50        Construct float (temp 4-element array of 7-element array of float)
+0:50          direct index (temp 7-element array of highp float)
+0:50            'a' (in 5-element array of 7-element array of highp float)
+0:50            Constant:
+0:50              0 (const int)
+0:50          direct index (temp 7-element array of highp float)
+0:50            'a' (in 5-element array of 7-element array of highp float)
+0:50            Constant:
+0:50              1 (const int)
+0:50          'r' (temp 7-element array of highp float)
+0:50          direct index (temp 7-element array of highp float)
+0:50            'a' (in 5-element array of 7-element array of highp float)
+0:50            Constant:
+0:50              3 (const int)
+0:51      Branch: Return with expression
+0:51        Construct float (temp 4-element array of 7-element array of float)
+0:51          direct index (temp 7-element array of highp float)
+0:51            'a' (in 5-element array of 7-element array of highp float)
+0:51            Constant:
+0:51              0 (const int)
+0:51          direct index (temp 7-element array of highp float)
+0:51            'a' (in 5-element array of 7-element array of highp float)
+0:51            Constant:
+0:51              1 (const int)
+0:51          'r' (temp 7-element array of highp float)
+0:51          direct index (temp 7-element array of highp float)
+0:51            'a' (in 5-element array of 7-element array of highp float)
+0:51            Constant:
+0:51              3 (const int)
+0:52      Branch: Return with expression
+0:52        Construct float (temp 4-element array of 7-element array of float)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              0 (const int)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              1 (const int)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              2 (const int)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              3 (const int)
+0:55  Function Definition: bar(f1[5][7]; (global void)
+0:55    Function Parameters: 
+0:55      '' (in 5-element array of 7-element array of highp float)
+0:57  Function Definition: foo2( (global void)
+0:57    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:62        move second child to first child (temp highp float)
+0:62          direct index (temp highp float)
+0:62            direct index (temp 2-element array of highp float)
+0:62              direct index (temp 4-element array of 2-element array of highp float)
+0:62                'gu' (temp 3-element array of 4-element array of 2-element array of highp float)
+0:62                Constant:
+0:62                  2 (const int)
+0:62              Constant:
+0:62                4 (const int)
+0:62            Constant:
+0:62              1 (const int)
+0:62          Constant:
+0:62            4.000000
+0:64      Sequence
+0:64        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:64          'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:66          Constant:
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:67      Sequence
+0:67        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:67          'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:69          Constant:
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:70      Sequence
+0:70        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:70          'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:72          Constant:
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:73      Sequence
+0:73        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:73          'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:75          Constant:
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:77      move second child to first child (temp 4-element array of 7-element array of highp float)
+0:77        'g4' (global 4-element array of 7-element array of highp float)
+0:77        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:77          'g5' (global 5-element array of 7-element array of highp float)
+0:78      'g5' (global 5-element array of 7-element array of highp float)
+0:79      'gu' (global implicitly-sized array of 7-element array of highp float)
+0:81      Constant:
+0:81        0.000000
+0:82      Function Call: bar(f1[5][7]; (global void)
+0:82        'g5' (global 5-element array of 7-element array of highp float)
+0:84      Test condition and select (temp void)
+0:84        Condition
+0:84        Compare Equal (temp bool)
+0:84          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:84            'g5' (global 5-element array of 7-element array of highp float)
+0:84          'g4' (global 4-element array of 7-element array of highp float)
+0:84        true case is null
+0:86      Test condition and select (temp void)
+0:86        Condition
+0:86        Constant:
+0:86          false (const bool)
+0:86        true case is null
+0:90      move second child to first child (temp highp float)
+0:90        direct index (temp highp float)
+0:90          direct index (temp 7-element array of highp float)
+0:90            'u' (temp 5-element array of 7-element array of highp float)
+0:90            Constant:
+0:90              5 (const int)
+0:90          Constant:
+0:90            2 (const int)
+0:90        Constant:
+0:90          5.000000
+0:91      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:91        'u' (temp 5-element array of 7-element array of highp float)
+0:94      direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:94        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:94          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94            'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94            Constant:
+0:94              1 (const int)
+0:94          Constant:
+0:94            1 (const int)
+0:94        Constant:
+0:94          -1 (const int)
+0:95      move second child to first child (temp highp 4-component vector of float)
+0:95        direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:95          v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:95            direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95              'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95              Constant:
+0:95                1 (const int)
+0:95            Constant:
+0:95              1 (const int)
+0:95          Constant:
+0:95            1 (const int)
+0:95        Constant:
+0:95          4.300000
+0:95          4.300000
+0:95          4.300000
+0:95          4.300000
+0:96      v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:96        direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96          'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96          Constant:
+0:96            1 (const int)
+0:96        Constant:
+0:96          1 (const int)
+0:98      Constant:
+0:98        7 (const int)
+0:99      array length (temp highp int)
+0:99        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
+0:99          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99            'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99            Constant:
+0:99              0 (const int)
+0:99          Constant:
+0:99            1 (const int)
+0:?   Linker Objects
+0:?     'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:?     'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform implicitly-sized array of highp 4-component vector of float v})
+0:?     'name2' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})
+0:?     'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
+0:?     'gu' (global implicitly-sized array of 7-element array of highp float)
+0:?     'g4' (global 4-element array of 7-element array of highp float)
+0:?     'g5' (global 5-element array of 7-element array of highp float)
+0:?     'inArray' (in 2-element array of 3-element array of highp float)
+0:?     'outArray' (smooth out 2-element array of 3-element array of highp float)
+0:?     'ubaaname' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform highp int a})
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:8  Function Definition: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:8    Function Parameters: 
+0:8      'a' (in bool)
+0:8      'b' (in highp float)
+0:8      'c' (in 4-element array of highp uint)
+0:8      'd' (in 3-element array of 2-element array of highp int)
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:?     Sequence
+0:13      Function Call: f(b1;f1;u1[4];i1[3][2]; (global void)
+0:13        Constant:
+0:13          false (const bool)
+0:13        Constant:
+0:13          12.100000
+0:13        Constant:
+0:13          0 (const uint)
+0:13          1 (const uint)
+0:13          1 (const uint)
+0:13          2 (const uint)
+0:13        'd' (temp 3-element array of 2-element array of highp int)
+0:44  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:44    Function Parameters: 
+0:44      'a' (in 5-element array of 7-element array of highp float)
+0:?     Sequence
+0:47      move second child to first child (temp 7-element array of highp float)
+0:47        'r' (temp 7-element array of highp float)
+0:47        direct index (temp 7-element array of highp float)
+0:47          'a' (in 5-element array of 7-element array of highp float)
+0:47          Constant:
+0:47            2 (const int)
+0:48      Constant:
+0:48        0.000000
+0:49      Constant:
+0:49        0.000000
+0:50      Branch: Return with expression
+0:50        Construct float (temp 4-element array of 7-element array of float)
+0:50          direct index (temp 7-element array of highp float)
+0:50            'a' (in 5-element array of 7-element array of highp float)
+0:50            Constant:
+0:50              0 (const int)
+0:50          direct index (temp 7-element array of highp float)
+0:50            'a' (in 5-element array of 7-element array of highp float)
+0:50            Constant:
+0:50              1 (const int)
+0:50          'r' (temp 7-element array of highp float)
+0:50          direct index (temp 7-element array of highp float)
+0:50            'a' (in 5-element array of 7-element array of highp float)
+0:50            Constant:
+0:50              3 (const int)
+0:51      Branch: Return with expression
+0:51        Construct float (temp 4-element array of 7-element array of float)
+0:51          direct index (temp 7-element array of highp float)
+0:51            'a' (in 5-element array of 7-element array of highp float)
+0:51            Constant:
+0:51              0 (const int)
+0:51          direct index (temp 7-element array of highp float)
+0:51            'a' (in 5-element array of 7-element array of highp float)
+0:51            Constant:
+0:51              1 (const int)
+0:51          'r' (temp 7-element array of highp float)
+0:51          direct index (temp 7-element array of highp float)
+0:51            'a' (in 5-element array of 7-element array of highp float)
+0:51            Constant:
+0:51              3 (const int)
+0:52      Branch: Return with expression
+0:52        Construct float (temp 4-element array of 7-element array of float)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              0 (const int)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              1 (const int)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              2 (const int)
+0:52          direct index (temp 7-element array of highp float)
+0:52            'a' (in 5-element array of 7-element array of highp float)
+0:52            Constant:
+0:52              3 (const int)
+0:55  Function Definition: bar(f1[5][7]; (global void)
+0:55    Function Parameters: 
+0:55      '' (in 5-element array of 7-element array of highp float)
+0:57  Function Definition: foo2( (global void)
+0:57    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:62        move second child to first child (temp highp float)
+0:62          direct index (temp highp float)
+0:62            direct index (temp 2-element array of highp float)
+0:62              direct index (temp 4-element array of 2-element array of highp float)
+0:62                'gu' (temp 3-element array of 4-element array of 2-element array of highp float)
+0:62                Constant:
+0:62                  2 (const int)
+0:62              Constant:
+0:62                4 (const int)
+0:62            Constant:
+0:62              1 (const int)
+0:62          Constant:
+0:62            4.000000
+0:64      Sequence
+0:64        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:64          'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:66          Constant:
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            0.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:66            1.000000
+0:67      Sequence
+0:67        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:67          'caim' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:69          Constant:
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            4.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:69            2.000000
+0:70      Sequence
+0:70        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:70          'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:72          Constant:
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            4.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:72            2.000000
+0:73      Sequence
+0:73        move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:73          'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float)
+0:75          Constant:
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            4.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:75            2.000000
+0:77      move second child to first child (temp 4-element array of 7-element array of highp float)
+0:77        'g4' (global 4-element array of 7-element array of highp float)
+0:77        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:77          'g5' (global 5-element array of 7-element array of highp float)
+0:78      'g5' (global 5-element array of 7-element array of highp float)
+0:79      'gu' (global 1-element array of 7-element array of highp float)
+0:81      Constant:
+0:81        0.000000
+0:82      Function Call: bar(f1[5][7]; (global void)
+0:82        'g5' (global 5-element array of 7-element array of highp float)
+0:84      Test condition and select (temp void)
+0:84        Condition
+0:84        Compare Equal (temp bool)
+0:84          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:84            'g5' (global 5-element array of 7-element array of highp float)
+0:84          'g4' (global 4-element array of 7-element array of highp float)
+0:84        true case is null
+0:86      Test condition and select (temp void)
+0:86        Condition
+0:86        Constant:
+0:86          false (const bool)
+0:86        true case is null
+0:90      move second child to first child (temp highp float)
+0:90        direct index (temp highp float)
+0:90          direct index (temp 7-element array of highp float)
+0:90            'u' (temp 5-element array of 7-element array of highp float)
+0:90            Constant:
+0:90              5 (const int)
+0:90          Constant:
+0:90            2 (const int)
+0:90        Constant:
+0:90          5.000000
+0:91      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float)
+0:91        'u' (temp 5-element array of 7-element array of highp float)
+0:94      direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:94        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:94          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94            'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:94            Constant:
+0:94              1 (const int)
+0:94          Constant:
+0:94            1 (const int)
+0:94        Constant:
+0:94          -1 (const int)
+0:95      move second child to first child (temp highp 4-component vector of float)
+0:95        direct index (layout(column_major shared ) temp highp 4-component vector of float)
+0:95          v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:95            direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95              'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:95              Constant:
+0:95                1 (const int)
+0:95            Constant:
+0:95              1 (const int)
+0:95          Constant:
+0:95            1 (const int)
+0:95        Constant:
+0:95          4.300000
+0:95          4.300000
+0:95          4.300000
+0:95          4.300000
+0:96      v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float)
+0:96        direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96          'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:96          Constant:
+0:96            1 (const int)
+0:96        Constant:
+0:96          1 (const int)
+0:98      Constant:
+0:98        7 (const int)
+0:99      array length (temp highp int)
+0:99        v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
+0:99          direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99            'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:99            Constant:
+0:99              0 (const int)
+0:99          Constant:
+0:99            1 (const int)
+0:?   Linker Objects
+0:?     'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v})
+0:?     'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v})
+0:?     'name2' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of implicitly-sized array of highp 4-component vector of float v})
+0:?     'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
+0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float)
+0:?     'gu' (global 1-element array of 7-element array of highp float)
+0:?     'g4' (global 4-element array of 7-element array of highp float)
+0:?     'g5' (global 5-element array of 7-element array of highp float)
+0:?     'inArray' (in 2-element array of 3-element array of highp float)
+0:?     'outArray' (smooth out 2-element array of 3-element array of highp float)
+0:?     'ubaaname' (layout(column_major shared ) uniform 2-element array of 3-element array of block{layout(column_major shared ) uniform highp int a})
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/310implicitSizeArrayError.vert.out b/Test/baseResults/310implicitSizeArrayError.vert.out
index a3b98f3..963735d 100644
--- a/Test/baseResults/310implicitSizeArrayError.vert.out
+++ b/Test/baseResults/310implicitSizeArrayError.vert.out
@@ -1,50 +1,50 @@
-310implicitSizeArrayError.vert

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:3: '' : array size required 

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 310

-ERROR: node is still EOpNull!

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:7    Sequence

-0:7      move second child to first child (temp highp int)

-0:7        'o' (layout(location=0 ) smooth out highp int)

-0:7        direct index (layout(column_major shared ) temp highp int)

-0:7          a: direct index for structure (layout(column_major shared ) uniform implicitly-sized array of highp int)

-0:7            'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a})

-0:7            Constant:

-0:7              0 (const int)

-0:7          Constant:

-0:7            2 (const int)

-0:?   Linker Objects

-0:?     'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a})

-0:?     'o' (layout(location=0 ) smooth out highp int)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 310

-ERROR: node is still EOpNull!

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:7    Sequence

-0:7      move second child to first child (temp highp int)

-0:7        'o' (layout(location=0 ) smooth out highp int)

-0:7        direct index (layout(column_major shared ) temp highp int)

-0:7          a: direct index for structure (layout(column_major shared ) uniform 1-element array of highp int)

-0:7            'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a})

-0:7            Constant:

-0:7              0 (const int)

-0:7          Constant:

-0:7            2 (const int)

-0:?   Linker Objects

-0:?     'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a})

-0:?     'o' (layout(location=0 ) smooth out highp int)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+310implicitSizeArrayError.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: '' : array size required 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:7    Sequence
+0:7      move second child to first child (temp highp int)
+0:7        'o' (layout(location=0 ) smooth out highp int)
+0:7        direct index (layout(column_major shared ) temp highp int)
+0:7          a: direct index for structure (layout(column_major shared ) uniform implicitly-sized array of highp int)
+0:7            'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
+0:7            Constant:
+0:7              0 (const int)
+0:7          Constant:
+0:7            2 (const int)
+0:?   Linker Objects
+0:?     'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
+0:?     'o' (layout(location=0 ) smooth out highp int)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 310
+ERROR: node is still EOpNull!
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:7    Sequence
+0:7      move second child to first child (temp highp int)
+0:7        'o' (layout(location=0 ) smooth out highp int)
+0:7        direct index (layout(column_major shared ) temp highp int)
+0:7          a: direct index for structure (layout(column_major shared ) uniform 1-element array of highp int)
+0:7            'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a})
+0:7            Constant:
+0:7              0 (const int)
+0:7          Constant:
+0:7            2 (const int)
+0:?   Linker Objects
+0:?     'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a})
+0:?     'o' (layout(location=0 ) smooth out highp int)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out
index 773a72c..5d145ef 100644
--- a/Test/baseResults/330.frag.out
+++ b/Test/baseResults/330.frag.out
@@ -1,214 +1,214 @@
-330.frag

-ERROR: 0:27: 'block declaration' : cannot redeclare block:  gl_block

-ERROR: 0:31: 'gl_name' : identifiers starting with "gl_" are reserved 

-ERROR: 0:32: 'gl_i' : identifiers starting with "gl_" are reserved 

-ERROR: 0:35: 'gl_in' : no declaration found for redeclaration 

-ERROR: 0:39: 'gl_FragCoord' : cannot redeclare a non block as a block 

-ERROR: 0:44: 'non-literal layout-id value' : not supported for this version or the enabled extensions 

-ERROR: 0:44: 'layout-id value' : cannot be negative 

-ERROR: 0:45: 'non-literal layout-id value' : not supported for this version or the enabled extensions 

-ERROR: 0:46: 'layout-id value' : scalar integer expression required 

-ERROR: 0:46: 'location' : location is too large 

-ERROR: 0:47: 'non-literal layout-id value' : not supported for this version or the enabled extensions 

-ERROR: 0:48: 'non-literal layout-id value' : not supported for this version or the enabled extensions 

-ERROR: 0:52: 'f2' : cannot use layout qualifiers on structure members 

-ERROR: 0:57: 'location on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:62: 'location on block member' : can only use in an in/out block 

-ERROR: 0:62: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 

-ERROR: 0:60: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 

-ERROR: 0:68: 'layout-id value' : cannot be negative 

-ERROR: 0:69: 'layout-id value' : cannot be negative 

-ERROR: 0:76: 'f2' : cannot use layout qualifiers on structure members 

-ERROR: 0:91: 'location on block member' : can only use in an in/out block 

-ERROR: 0:91: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 

-ERROR: 0:91: 'location' : overlapping use of location 3

-ERROR: 0:89: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 

-ERROR: 0:94: 'location' : either the block needs a location, or all members need a location, or no members have a location 

-ERROR: 0:108: 'A' : cannot use layout qualifiers on structure members 

-ERROR: 0:119: 'location' : overlapping use of location 44

-ERROR: 0:122: 'index' : can only be used with an explicit location 

-ERROR: 0:124: 'location' : overlapping use of location 0

-ERROR: 0:125: 'index' : can only be used on an output 

-ERROR: 0:126: 'index' : can only be used on an output 

-ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration 

-ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration 

-ERROR: 0:128: 'output block' : not supported in this stage: fragment

-ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found 

-ERROR: 0:140: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found 

-ERROR: 0:141: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 38 compilation errors.  No code generated.

-

-

-Shader version: 330

-Requested GL_ARB_enhanced_layouts

-Requested GL_ARB_separate_shader_objects

-ERROR: node is still EOpNull!

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:10    Sequence

-0:10      move second child to first child (temp 4-component vector of float)

-0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:10        'varyingVar' (smooth in 4-component vector of float)

-0:11      move second child to first child (temp 4-component vector of float)

-0:11        direct index (temp 4-component vector of float FragData)

-0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:11          Constant:

-0:11            1 (const int)

-0:11        'inVar' (smooth in 4-component vector of float)

-0:12      Sequence

-0:12        move second child to first child (temp int)

-0:12          'buffer' (temp int)

-0:12          Constant:

-0:12            4 (const int)

-0:21  Function Definition: foo( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'c' (temp 4-component vector of float)

-0:23          gl_Color: direct index for structure (in 4-component vector of float Color)

-0:23            'anon@0' (in block{in 4-component vector of float Color gl_Color, })

-0:23            Constant:

-0:23              2 (const uint)

-0:24      move second child to first child (temp 4-component vector of float)

-0:24        'outVar' (layout(location=0 index=0 ) out 4-component vector of float)

-0:24        'inVar' (smooth in 4-component vector of float)

-0:133  Function Definition: qlod( (global void)

-0:133    Function Parameters: 

-0:?     Sequence

-0:140      'lod' (temp 2-component vector of float)

-0:141      'lod' (temp 2-component vector of float)

-0:147  Function Definition: fooKeyMem( (global void)

-0:147    Function Parameters: 

-0:149    Sequence

-0:149      precise: direct index for structure (global int)

-0:149        'KeyMem' (global structure{global int precise})

-0:149        Constant:

-0:149          0 (const int)

-0:?   Linker Objects

-0:?     'inVar' (smooth in 4-component vector of float)

-0:?     'outVar' (layout(location=0 index=0 ) out 4-component vector of float)

-0:?     'varyingVar' (smooth in 4-component vector of float)

-0:?     'anon@0' (in block{in 4-component vector of float Color gl_Color, })

-0:?     'gl_name' (in block{in int gl_i})

-0:?     'start' (const int)

-0:?       6 (const int)

-0:?     'v1' (smooth in 4-component vector of float)

-0:?     'v2' (layout(location=8 ) smooth in 4-component vector of float)

-0:?     'v20' (smooth in 4-component vector of float)

-0:?     'v21' (layout(location=60 ) smooth in float)

-0:?     'v22' (layout(location=2 ) smooth in float)

-0:?     'anon@1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})

-0:?     'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})

-0:?     'v3' (layout(location=6 ) smooth in 4-component vector of float)

-0:?     'v4' (smooth in 4-component vector of float)

-0:?     'v5' (smooth in 4-component vector of float)

-0:?     'v6' (layout(location=30 ) smooth in 4-component vector of float)

-0:?     'v23' (layout(location=61 ) smooth in float)

-0:?     'v24' (layout(location=62 ) smooth in float)

-0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})

-0:?     'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})

-0:?     'in3' (in block{in float f1, layout(location=40 ) in float f2})

-0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})

-0:?     's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})

-0:?     'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})

-0:?     'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float)

-0:?     'outVar3' (layout(location=0 index=1 ) out 4-component vector of float)

-0:?     'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)

-0:?     'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)

-0:?     'indexBlockI' (layout(location=26 index=0 ) out block{out int a})

-0:?     'samp1D' (uniform sampler1D)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-0:?     'precise' (global int)

-0:?     'KeyMem' (global structure{global int precise})

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Cannot use gl_FragColor or gl_FragData when using user-defined outputs

-ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData

-

-Shader version: 330

-Requested GL_ARB_enhanced_layouts

-Requested GL_ARB_separate_shader_objects

-ERROR: node is still EOpNull!

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:10    Sequence

-0:10      move second child to first child (temp 4-component vector of float)

-0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:10        'varyingVar' (smooth in 4-component vector of float)

-0:11      move second child to first child (temp 4-component vector of float)

-0:11        direct index (temp 4-component vector of float FragData)

-0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:11          Constant:

-0:11            1 (const int)

-0:11        'inVar' (smooth in 4-component vector of float)

-0:12      Sequence

-0:12        move second child to first child (temp int)

-0:12          'buffer' (temp int)

-0:12          Constant:

-0:12            4 (const int)

-0:21  Function Definition: foo( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'c' (temp 4-component vector of float)

-0:23          gl_Color: direct index for structure (in 4-component vector of float Color)

-0:23            'anon@0' (in block{in 4-component vector of float Color gl_Color, })

-0:23            Constant:

-0:23              2 (const uint)

-0:24      move second child to first child (temp 4-component vector of float)

-0:24        'outVar' (layout(location=0 index=0 ) out 4-component vector of float)

-0:24        'inVar' (smooth in 4-component vector of float)

-0:133  Function Definition: qlod( (global void)

-0:133    Function Parameters: 

-0:?     Sequence

-0:140      'lod' (temp 2-component vector of float)

-0:141      'lod' (temp 2-component vector of float)

-0:147  Function Definition: fooKeyMem( (global void)

-0:147    Function Parameters: 

-0:149    Sequence

-0:149      precise: direct index for structure (global int)

-0:149        'KeyMem' (global structure{global int precise})

-0:149        Constant:

-0:149          0 (const int)

-0:?   Linker Objects

-0:?     'inVar' (smooth in 4-component vector of float)

-0:?     'outVar' (layout(location=0 index=0 ) out 4-component vector of float)

-0:?     'varyingVar' (smooth in 4-component vector of float)

-0:?     'anon@0' (in block{in 4-component vector of float Color gl_Color, })

-0:?     'gl_name' (in block{in int gl_i})

-0:?     'start' (const int)

-0:?       6 (const int)

-0:?     'v1' (smooth in 4-component vector of float)

-0:?     'v2' (layout(location=8 ) smooth in 4-component vector of float)

-0:?     'v20' (smooth in 4-component vector of float)

-0:?     'v21' (layout(location=60 ) smooth in float)

-0:?     'v22' (layout(location=2 ) smooth in float)

-0:?     'anon@1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})

-0:?     'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})

-0:?     'v3' (layout(location=6 ) smooth in 4-component vector of float)

-0:?     'v4' (smooth in 4-component vector of float)

-0:?     'v5' (smooth in 4-component vector of float)

-0:?     'v6' (layout(location=30 ) smooth in 4-component vector of float)

-0:?     'v23' (layout(location=61 ) smooth in float)

-0:?     'v24' (layout(location=62 ) smooth in float)

-0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})

-0:?     'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})

-0:?     'in3' (in block{in float f1, layout(location=40 ) in float f2})

-0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})

-0:?     's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})

-0:?     'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})

-0:?     'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float)

-0:?     'outVar3' (layout(location=0 index=1 ) out 4-component vector of float)

-0:?     'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)

-0:?     'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)

-0:?     'indexBlockI' (layout(location=26 index=0 ) out block{out int a})

-0:?     'samp1D' (uniform sampler1D)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-0:?     'precise' (global int)

-0:?     'KeyMem' (global structure{global int precise})

-

+330.frag
+ERROR: 0:27: 'block declaration' : cannot redeclare block:  gl_block
+ERROR: 0:31: 'gl_name' : identifiers starting with "gl_" are reserved 
+ERROR: 0:32: 'gl_i' : identifiers starting with "gl_" are reserved 
+ERROR: 0:35: 'gl_in' : no declaration found for redeclaration 
+ERROR: 0:39: 'gl_FragCoord' : cannot redeclare a non block as a block 
+ERROR: 0:44: 'non-literal layout-id value' : not supported for this version or the enabled extensions 
+ERROR: 0:44: 'layout-id value' : cannot be negative 
+ERROR: 0:45: 'non-literal layout-id value' : not supported for this version or the enabled extensions 
+ERROR: 0:46: 'layout-id value' : scalar integer expression required 
+ERROR: 0:46: 'location' : location is too large 
+ERROR: 0:47: 'non-literal layout-id value' : not supported for this version or the enabled extensions 
+ERROR: 0:48: 'non-literal layout-id value' : not supported for this version or the enabled extensions 
+ERROR: 0:52: 'f2' : cannot use layout qualifiers on structure members 
+ERROR: 0:57: 'location on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:62: 'location on block member' : can only use in an in/out block 
+ERROR: 0:62: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
+ERROR: 0:60: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
+ERROR: 0:68: 'layout-id value' : cannot be negative 
+ERROR: 0:69: 'layout-id value' : cannot be negative 
+ERROR: 0:76: 'f2' : cannot use layout qualifiers on structure members 
+ERROR: 0:91: 'location on block member' : can only use in an in/out block 
+ERROR: 0:91: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
+ERROR: 0:91: 'location' : overlapping use of location 3
+ERROR: 0:89: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
+ERROR: 0:94: 'location' : either the block needs a location, or all members need a location, or no members have a location 
+ERROR: 0:108: 'A' : cannot use layout qualifiers on structure members 
+ERROR: 0:119: 'location' : overlapping use of location 44
+ERROR: 0:122: 'index' : can only be used with an explicit location 
+ERROR: 0:124: 'location' : overlapping use of location 0
+ERROR: 0:125: 'index' : can only be used on an output 
+ERROR: 0:126: 'index' : can only be used on an output 
+ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration 
+ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration 
+ERROR: 0:128: 'output block' : not supported in this stage: fragment
+ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:140: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:141: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 38 compilation errors.  No code generated.
+
+
+Shader version: 330
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:10    Sequence
+0:10      move second child to first child (temp 4-component vector of float)
+0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10        'varyingVar' (smooth in 4-component vector of float)
+0:11      move second child to first child (temp 4-component vector of float)
+0:11        direct index (temp 4-component vector of float FragData)
+0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11          Constant:
+0:11            1 (const int)
+0:11        'inVar' (smooth in 4-component vector of float)
+0:12      Sequence
+0:12        move second child to first child (temp int)
+0:12          'buffer' (temp int)
+0:12          Constant:
+0:12            4 (const int)
+0:21  Function Definition: foo( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'c' (temp 4-component vector of float)
+0:23          gl_Color: direct index for structure (in 4-component vector of float Color)
+0:23            'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:23            Constant:
+0:23              2 (const uint)
+0:24      move second child to first child (temp 4-component vector of float)
+0:24        'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:24        'inVar' (smooth in 4-component vector of float)
+0:133  Function Definition: qlod( (global void)
+0:133    Function Parameters: 
+0:?     Sequence
+0:140      'lod' (temp 2-component vector of float)
+0:141      'lod' (temp 2-component vector of float)
+0:147  Function Definition: fooKeyMem( (global void)
+0:147    Function Parameters: 
+0:149    Sequence
+0:149      precise: direct index for structure (global int)
+0:149        'KeyMem' (global structure{global int precise})
+0:149        Constant:
+0:149          0 (const int)
+0:?   Linker Objects
+0:?     'inVar' (smooth in 4-component vector of float)
+0:?     'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:?     'varyingVar' (smooth in 4-component vector of float)
+0:?     'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:?     'gl_name' (in block{in int gl_i})
+0:?     'start' (const int)
+0:?       6 (const int)
+0:?     'v1' (smooth in 4-component vector of float)
+0:?     'v2' (layout(location=8 ) smooth in 4-component vector of float)
+0:?     'v20' (smooth in 4-component vector of float)
+0:?     'v21' (layout(location=60 ) smooth in float)
+0:?     'v22' (layout(location=2 ) smooth in float)
+0:?     'anon@1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})
+0:?     'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:?     'v3' (layout(location=6 ) smooth in 4-component vector of float)
+0:?     'v4' (smooth in 4-component vector of float)
+0:?     'v5' (smooth in 4-component vector of float)
+0:?     'v6' (layout(location=30 ) smooth in 4-component vector of float)
+0:?     'v23' (layout(location=61 ) smooth in float)
+0:?     'v24' (layout(location=62 ) smooth in float)
+0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})
+0:?     'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:?     'in3' (in block{in float f1, layout(location=40 ) in float f2})
+0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:?     's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
+0:?     'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})
+0:?     'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float)
+0:?     'outVar3' (layout(location=0 index=1 ) out 4-component vector of float)
+0:?     'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)
+0:?     'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)
+0:?     'indexBlockI' (layout(location=26 index=0 ) out block{out int a})
+0:?     'samp1D' (uniform sampler1D)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+0:?     'precise' (global int)
+0:?     'KeyMem' (global structure{global int precise})
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Cannot use gl_FragColor or gl_FragData when using user-defined outputs
+ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData
+
+Shader version: 330
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_separate_shader_objects
+ERROR: node is still EOpNull!
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:10    Sequence
+0:10      move second child to first child (temp 4-component vector of float)
+0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10        'varyingVar' (smooth in 4-component vector of float)
+0:11      move second child to first child (temp 4-component vector of float)
+0:11        direct index (temp 4-component vector of float FragData)
+0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11          Constant:
+0:11            1 (const int)
+0:11        'inVar' (smooth in 4-component vector of float)
+0:12      Sequence
+0:12        move second child to first child (temp int)
+0:12          'buffer' (temp int)
+0:12          Constant:
+0:12            4 (const int)
+0:21  Function Definition: foo( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'c' (temp 4-component vector of float)
+0:23          gl_Color: direct index for structure (in 4-component vector of float Color)
+0:23            'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:23            Constant:
+0:23              2 (const uint)
+0:24      move second child to first child (temp 4-component vector of float)
+0:24        'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:24        'inVar' (smooth in 4-component vector of float)
+0:133  Function Definition: qlod( (global void)
+0:133    Function Parameters: 
+0:?     Sequence
+0:140      'lod' (temp 2-component vector of float)
+0:141      'lod' (temp 2-component vector of float)
+0:147  Function Definition: fooKeyMem( (global void)
+0:147    Function Parameters: 
+0:149    Sequence
+0:149      precise: direct index for structure (global int)
+0:149        'KeyMem' (global structure{global int precise})
+0:149        Constant:
+0:149          0 (const int)
+0:?   Linker Objects
+0:?     'inVar' (smooth in 4-component vector of float)
+0:?     'outVar' (layout(location=0 index=0 ) out 4-component vector of float)
+0:?     'varyingVar' (smooth in 4-component vector of float)
+0:?     'anon@0' (in block{in 4-component vector of float Color gl_Color, })
+0:?     'gl_name' (in block{in int gl_i})
+0:?     'start' (const int)
+0:?       6 (const int)
+0:?     'v1' (smooth in 4-component vector of float)
+0:?     'v2' (layout(location=8 ) smooth in 4-component vector of float)
+0:?     'v20' (smooth in 4-component vector of float)
+0:?     'v21' (layout(location=60 ) smooth in float)
+0:?     'v22' (layout(location=2 ) smooth in float)
+0:?     'anon@1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})
+0:?     'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:?     'v3' (layout(location=6 ) smooth in 4-component vector of float)
+0:?     'v4' (smooth in 4-component vector of float)
+0:?     'v5' (smooth in 4-component vector of float)
+0:?     'v6' (layout(location=30 ) smooth in 4-component vector of float)
+0:?     'v23' (layout(location=61 ) smooth in float)
+0:?     'v24' (layout(location=62 ) smooth in float)
+0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})
+0:?     'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
+0:?     'in3' (in block{in float f1, layout(location=40 ) in float f2})
+0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:?     's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A})
+0:?     'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})
+0:?     'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float)
+0:?     'outVar3' (layout(location=0 index=1 ) out 4-component vector of float)
+0:?     'outVar4' (layout(location=0 index=1 ) out 4-component vector of float)
+0:?     'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float)
+0:?     'indexBlockI' (layout(location=26 index=0 ) out block{out int a})
+0:?     'samp1D' (uniform sampler1D)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+0:?     'precise' (global int)
+0:?     'KeyMem' (global structure{global int precise})
+
diff --git a/Test/baseResults/330comp.frag.out b/Test/baseResults/330comp.frag.out
index 58d2e7c..58d6e5f 100644
--- a/Test/baseResults/330comp.frag.out
+++ b/Test/baseResults/330comp.frag.out
@@ -1,48 +1,48 @@
-330comp.frag

-Shader version: 330

-0:? Sequence

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:10    Sequence

-0:10      move second child to first child (temp 4-component vector of float)

-0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:10        'varyingVar' (smooth in 4-component vector of float)

-0:11      move second child to first child (temp 4-component vector of float)

-0:11        direct index (temp 4-component vector of float FragData)

-0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:11          Constant:

-0:11            1 (const int)

-0:11        vector-times-matrix (temp 4-component vector of float)

-0:11          'inVar' (smooth in 4-component vector of float)

-0:11          'gl_ModelViewMatrix' (uniform 4X4 matrix of float)

-0:?   Linker Objects

-0:?     'inVar' (smooth in 4-component vector of float)

-0:?     'outVar' (out 4-component vector of float)

-0:?     'varyingVar' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData

-

-Shader version: 330

-0:? Sequence

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:10    Sequence

-0:10      move second child to first child (temp 4-component vector of float)

-0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:10        'varyingVar' (smooth in 4-component vector of float)

-0:11      move second child to first child (temp 4-component vector of float)

-0:11        direct index (temp 4-component vector of float FragData)

-0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:11          Constant:

-0:11            1 (const int)

-0:11        vector-times-matrix (temp 4-component vector of float)

-0:11          'inVar' (smooth in 4-component vector of float)

-0:11          'gl_ModelViewMatrix' (uniform 4X4 matrix of float)

-0:?   Linker Objects

-0:?     'inVar' (smooth in 4-component vector of float)

-0:?     'outVar' (out 4-component vector of float)

-0:?     'varyingVar' (smooth in 4-component vector of float)

-

+330comp.frag
+Shader version: 330
+0:? Sequence
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:10    Sequence
+0:10      move second child to first child (temp 4-component vector of float)
+0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10        'varyingVar' (smooth in 4-component vector of float)
+0:11      move second child to first child (temp 4-component vector of float)
+0:11        direct index (temp 4-component vector of float FragData)
+0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11          Constant:
+0:11            1 (const int)
+0:11        vector-times-matrix (temp 4-component vector of float)
+0:11          'inVar' (smooth in 4-component vector of float)
+0:11          'gl_ModelViewMatrix' (uniform 4X4 matrix of float)
+0:?   Linker Objects
+0:?     'inVar' (smooth in 4-component vector of float)
+0:?     'outVar' (out 4-component vector of float)
+0:?     'varyingVar' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData
+
+Shader version: 330
+0:? Sequence
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:10    Sequence
+0:10      move second child to first child (temp 4-component vector of float)
+0:10        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:10        'varyingVar' (smooth in 4-component vector of float)
+0:11      move second child to first child (temp 4-component vector of float)
+0:11        direct index (temp 4-component vector of float FragData)
+0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:11          Constant:
+0:11            1 (const int)
+0:11        vector-times-matrix (temp 4-component vector of float)
+0:11          'inVar' (smooth in 4-component vector of float)
+0:11          'gl_ModelViewMatrix' (uniform 4X4 matrix of float)
+0:?   Linker Objects
+0:?     'inVar' (smooth in 4-component vector of float)
+0:?     'outVar' (out 4-component vector of float)
+0:?     'varyingVar' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out
index a7c9ba4..0069585 100644
--- a/Test/baseResults/400.frag.out
+++ b/Test/baseResults/400.frag.out
@@ -1,1014 +1,1014 @@
-400.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument

-ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument

-ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument

-ERROR: 0:30: 'location qualifier on input' : not supported for this version or the enabled extensions 

-ERROR: 0:38: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 

-ERROR: 0:40: 'redeclaration' : cannot apply layout qualifier to gl_Color

-ERROR: 0:41: 'redeclaration' : cannot change qualification of gl_ClipDistance

-ERROR: 0:43: 'gl_FragCoord' : cannot redeclare after use 

-ERROR: 0:51: 'texel offset' : argument must be compile-time constant 

-ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]

-ERROR: 0:57: 'patch' : not supported in this stage: fragment

-ERROR: 0:58: 'patch' : not supported in this stage: fragment

-ERROR: 0:58: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 

-ERROR: 0:73: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control

-ERROR: 0:74: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control

-ERROR: 0:75: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control

-ERROR: 0:75: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control

-ERROR: 0:104: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 

-ERROR: 0:123: 'interpolateAtCentroid' : no matching overloaded function found 

-ERROR: 0:125: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:127: 'interpolateAtSample' : no matching overloaded function found 

-ERROR: 0:132: 'interpolateAtOffset' : no matching overloaded function found 

-ERROR: 0:134: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 

-ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found 

-ERROR: 0:183: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found 

-ERROR: 0:184: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 0:187: '' :  syntax error

-ERROR: 35 compilation errors.  No code generated.

-

-

-Shader version: 400

-Requested GL_ARB_derivative_control

-Requested GL_ARB_separate_shader_objects

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:?     Sequence

-0:13      move second child to first child (temp 4-component vector of float)

-0:13        'v' (temp 4-component vector of float)

-0:13        texture (global 4-component vector of float)

-0:13          indirect index (temp sampler2D)

-0:13            'arrayedSampler' (uniform 5-element array of sampler2D)

-0:13            'i' (flat in int)

-0:13          'c2D' (smooth in 2-component vector of float)

-0:14      move second child to first child (temp float)

-0:14        direct index (temp float)

-0:14          'outp' (out 4-component vector of float)

-0:14          Constant:

-0:14            0 (const int)

-0:14        direct index (smooth temp float ClipDistance)

-0:14          'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)

-0:14          Constant:

-0:14            1 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp 4-component vector of uint)

-0:18          'uv4' (temp 4-component vector of uint)

-0:18          textureGatherOffsets (global 4-component vector of uint)

-0:18            'samp2dr' (uniform usampler2DRect)

-0:18            'c2D' (smooth in 2-component vector of float)

-0:18            'offsets' (temp 4-element array of 2-component vector of int)

-0:18            Constant:

-0:18              2 (const int)

-0:19      move second child to first child (temp 4-component vector of uint)

-0:19        'uv4' (temp 4-component vector of uint)

-0:19        textureGatherOffsets (global 4-component vector of uint)

-0:19          'samp2dr' (uniform usampler2DRect)

-0:19          'c2D' (smooth in 2-component vector of float)

-0:19          Constant:

-0:19            1 (const int)

-0:19            2 (const int)

-0:19            3 (const int)

-0:19            4 (const int)

-0:19            15 (const int)

-0:19            16 (const int)

-0:19            -2 (const int)

-0:19            0 (const int)

-0:19          Constant:

-0:19            2 (const int)

-0:20      Sequence

-0:20        move second child to first child (temp 4-component vector of float)

-0:20          'v4' (temp 4-component vector of float)

-0:20          textureGather (global 4-component vector of float)

-0:20            direct index (temp sampler2D)

-0:20              'arrayedSampler' (uniform 5-element array of sampler2D)

-0:20              Constant:

-0:20                0 (const int)

-0:20            'c2D' (smooth in 2-component vector of float)

-0:21      Sequence

-0:21        move second child to first child (temp 4-component vector of int)

-0:21          'iv4' (temp 4-component vector of int)

-0:21          textureGatherOffset (global 4-component vector of int)

-0:21            'isamp2DA' (uniform isampler2DArray)

-0:21            Constant:

-0:21              0.100000

-0:21              0.100000

-0:21              0.100000

-0:21            Constant:

-0:21              1 (const int)

-0:21              1 (const int)

-0:21            Constant:

-0:21              3 (const int)

-0:22      move second child to first child (temp 4-component vector of int)

-0:22        'iv4' (temp 4-component vector of int)

-0:22        textureGatherOffset (global 4-component vector of int)

-0:22          'isamp2DA' (uniform isampler2DArray)

-0:22          Constant:

-0:22            0.100000

-0:22            0.100000

-0:22            0.100000

-0:22          Constant:

-0:22            1 (const int)

-0:22            1 (const int)

-0:22          'i' (flat in int)

-0:23      move second child to first child (temp 4-component vector of int)

-0:23        'iv4' (temp 4-component vector of int)

-0:23        textureGatherOffset (global 4-component vector of int)

-0:23          'isamp2DA' (uniform isampler2DArray)

-0:23          Constant:

-0:23            0.100000

-0:23            0.100000

-0:23            0.100000

-0:23          Constant:

-0:23            1 (const int)

-0:23            1 (const int)

-0:23          Constant:

-0:23            4 (const int)

-0:24      move second child to first child (temp 4-component vector of int)

-0:24        'iv4' (temp 4-component vector of int)

-0:24        textureGatherOffset (global 4-component vector of int)

-0:24          'isamp2DA' (uniform isampler2DArray)

-0:24          Constant:

-0:24            0.100000

-0:24            0.100000

-0:24            0.100000

-0:24          Constant:

-0:24            1 (const int)

-0:24            1 (const int)

-0:24          Constant:

-0:24            3 (const int)

-0:25      move second child to first child (temp 4-component vector of int)

-0:25        'iv4' (temp 4-component vector of int)

-0:25        textureGatherOffset (global 4-component vector of int)

-0:25          'isamp2DA' (uniform isampler2DArray)

-0:25          Constant:

-0:25            0.100000

-0:25            0.100000

-0:25            0.100000

-0:25          Construct ivec2 (temp 2-component vector of int)

-0:25            'i' (flat in int)

-0:27      Sequence

-0:27        move second child to first child (temp 4-component vector of float)

-0:27          'c' (temp 4-component vector of float)

-0:27          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:47  Function Definition: foo23( (global void)

-0:47    Function Parameters: 

-0:?     Sequence

-0:51      textureProjGradOffset (global float)

-0:51        'u2drs' (uniform sampler2DRectShadow)

-0:51        'outp' (out 4-component vector of float)

-0:51        Constant:

-0:51          0.000000

-0:51          0.000000

-0:51        Constant:

-0:51          0.000000

-0:51          0.000000

-0:51        Convert float to int (temp 2-component vector of int)

-0:51          'c2D' (smooth in 2-component vector of float)

-0:52      textureProjGradOffset (global float)

-0:52        'u2drs' (uniform sampler2DRectShadow)

-0:52        'outp' (out 4-component vector of float)

-0:52        Constant:

-0:52          0.000000

-0:52          0.000000

-0:52        Constant:

-0:52          0.000000

-0:52          0.000000

-0:52        Constant:

-0:52          3 (const int)

-0:52          4 (const int)

-0:53      textureProjGradOffset (global float)

-0:53        'u2drs' (uniform sampler2DRectShadow)

-0:53        'outp' (out 4-component vector of float)

-0:53        Constant:

-0:53          0.000000

-0:53          0.000000

-0:53        Constant:

-0:53          0.000000

-0:53          0.000000

-0:53        Constant:

-0:53          15 (const int)

-0:53          16 (const int)

-0:54      textureProjGradOffset (global float)

-0:54        'u2drs' (uniform sampler2DRectShadow)

-0:54        'outp' (out 4-component vector of float)

-0:54        Constant:

-0:54          0.000000

-0:54          0.000000

-0:54        Constant:

-0:54          0.000000

-0:54          0.000000

-0:54        Constant:

-0:54          -10 (const int)

-0:54          20 (const int)

-0:60  Function Definition: foo24( (global void)

-0:60    Function Parameters: 

-0:?     Sequence

-0:63      move second child to first child (temp 3-component vector of double)

-0:63        'df' (temp 3-component vector of double)

-0:63        Convert float to double (temp 3-component vector of double)

-0:63          Comma (global 3-component vector of float)

-0:63            move second child to first child (temp 3-component vector of float)

-0:63              'tempReturn' (global 3-component vector of float)

-0:63              modf (global 3-component vector of float)

-0:63                vector swizzle (temp 3-component vector of float)

-0:63                  'outp' (out 4-component vector of float)

-0:63                  Sequence

-0:63                    Constant:

-0:63                      0 (const int)

-0:63                    Constant:

-0:63                      1 (const int)

-0:63                    Constant:

-0:63                      2 (const int)

-0:63                'tempArg' (temp 3-component vector of float)

-0:63            move second child to first child (temp 3-component vector of double)

-0:63              'di' (temp 3-component vector of double)

-0:63              Convert float to double (temp 3-component vector of double)

-0:63                'tempArg' (temp 3-component vector of float)

-0:63            'tempReturn' (global 3-component vector of float)

-0:71  Function Definition: foodc1( (global void)

-0:71    Function Parameters: 

-0:73    Sequence

-0:73      Sequence

-0:73        move second child to first child (temp 2-component vector of float)

-0:73          'v2' (temp 2-component vector of float)

-0:73          dPdxFine (global 2-component vector of float)

-0:73            'in2' (smooth in 2-component vector of float)

-0:74      Sequence

-0:74        move second child to first child (temp 3-component vector of float)

-0:74          'v3' (temp 3-component vector of float)

-0:74          dPdyCoarse (global 3-component vector of float)

-0:74            'in3' (smooth in 3-component vector of float)

-0:75      Sequence

-0:75        move second child to first child (temp 4-component vector of float)

-0:75          'v4' (temp 4-component vector of float)

-0:75          add (temp 4-component vector of float)

-0:75            fwidthCoarse (global 4-component vector of float)

-0:75              'in4' (smooth in 4-component vector of float)

-0:75            fwidthFine (global 4-component vector of float)

-0:75              'in4' (smooth in 4-component vector of float)

-0:80  Function Definition: foodc2( (global void)

-0:80    Function Parameters: 

-0:82    Sequence

-0:82      Sequence

-0:82        move second child to first child (temp 2-component vector of float)

-0:82          'v2' (temp 2-component vector of float)

-0:82          dPdxFine (global 2-component vector of float)

-0:82            'in2' (smooth in 2-component vector of float)

-0:83      Sequence

-0:83        move second child to first child (temp 3-component vector of float)

-0:83          'v3' (temp 3-component vector of float)

-0:83          dPdyCoarse (global 3-component vector of float)

-0:83            'in3' (smooth in 3-component vector of float)

-0:84      Sequence

-0:84        move second child to first child (temp 4-component vector of float)

-0:84          'v4' (temp 4-component vector of float)

-0:84          add (temp 4-component vector of float)

-0:84            fwidthCoarse (global 4-component vector of float)

-0:84              'in4' (smooth in 4-component vector of float)

-0:84            fwidthFine (global 4-component vector of float)

-0:84              'in4' (smooth in 4-component vector of float)

-0:89      move second child to first child (temp 2-component vector of float)

-0:89        'v2' (temp 2-component vector of float)

-0:89        frexp (global 2-component vector of float)

-0:89          'v2' (temp 2-component vector of float)

-0:89          'i2' (temp 2-component vector of int)

-0:90      move second child to first child (temp 3-component vector of float)

-0:90        'v3' (temp 3-component vector of float)

-0:90        ldexp (global 3-component vector of float)

-0:90          'v3' (temp 3-component vector of float)

-0:90          'i3' (temp 3-component vector of int)

-0:92      move second child to first child (temp uint)

-0:92        'u1' (temp uint)

-0:92        PackUnorm4x8 (global uint)

-0:92          'v4' (temp 4-component vector of float)

-0:93      move second child to first child (temp uint)

-0:93        'u1' (temp uint)

-0:93        PackSnorm4x8 (global uint)

-0:93          'v4' (temp 4-component vector of float)

-0:94      move second child to first child (temp 4-component vector of float)

-0:94        'v4' (temp 4-component vector of float)

-0:94        UnpackUnorm4x8 (global 4-component vector of float)

-0:94          'u1' (temp uint)

-0:95      move second child to first child (temp 4-component vector of float)

-0:95        'v4' (temp 4-component vector of float)

-0:95        UnpackSnorm4x8 (global 4-component vector of float)

-0:95          'u1' (temp uint)

-0:99      move second child to first child (temp double)

-0:99        'd' (temp double)

-0:99        PackDouble2x32 (global double)

-0:99          'u2' (temp 2-component vector of uint)

-0:100      move second child to first child (temp 2-component vector of uint)

-0:100        'u2' (temp 2-component vector of uint)

-0:100        UnpackDouble2x32 (global 2-component vector of uint)

-0:100          'd' (temp double)

-0:117  Function Definition: interp( (global void)

-0:117    Function Parameters: 

-0:119    Sequence

-0:119      interpolateAtCentroid (global 2-component vector of float)

-0:119        'colorfc' (centroid flat in 2-component vector of float)

-0:120      interpolateAtCentroid (global 4-component vector of float)

-0:120        'colorSampIn' (smooth sample in 4-component vector of float)

-0:121      interpolateAtCentroid (global 4-component vector of float)

-0:121        'colorfsi' (noperspective in 4-component vector of float)

-0:122      interpolateAtCentroid (global float)

-0:122        'scalarIn' (smooth in float)

-0:123      Constant:

-0:123        0.000000

-0:124      interpolateAtCentroid (global 3-component vector of float)

-0:124        direct index (smooth sample temp 3-component vector of float)

-0:124          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:124          Constant:

-0:124            2 (const int)

-0:125      interpolateAtCentroid (global 2-component vector of float)

-0:125        vector swizzle (temp 2-component vector of float)

-0:125          direct index (smooth sample temp 3-component vector of float)

-0:125            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:125            Constant:

-0:125              2 (const int)

-0:125          Sequence

-0:125            Constant:

-0:125              0 (const int)

-0:125            Constant:

-0:125              1 (const int)

-0:127      Constant:

-0:127        0.000000

-0:128      interpolateAtSample (global 3-component vector of float)

-0:128        indirect index (smooth sample temp 3-component vector of float)

-0:128          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:128          'i' (flat in int)

-0:128        Constant:

-0:128          0 (const int)

-0:129      interpolateAtSample (global float)

-0:129        x: direct index for structure (global float)

-0:129          's1' (smooth in structure{global float x})

-0:129          Constant:

-0:129            0 (const int)

-0:129        Constant:

-0:129          2 (const int)

-0:130      interpolateAtSample (global float)

-0:130        'scalarIn' (smooth in float)

-0:130        Constant:

-0:130          1 (const int)

-0:132      Constant:

-0:132        0.000000

-0:133      interpolateAtOffset (global 3-component vector of float)

-0:133        direct index (smooth sample temp 3-component vector of float)

-0:133          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:133          Constant:

-0:133            2 (const int)

-0:133        Constant:

-0:133          0.200000

-0:133          0.200000

-0:134      interpolateAtOffset (global 2-component vector of float)

-0:134        vector swizzle (temp 2-component vector of float)

-0:134          direct index (smooth sample temp 3-component vector of float)

-0:134            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:134            Constant:

-0:134              2 (const int)

-0:134          Sequence

-0:134            Constant:

-0:134              0 (const int)

-0:134            Constant:

-0:134              1 (const int)

-0:134        Constant:

-0:134          0.200000

-0:134          0.200000

-0:135      interpolateAtOffset (global float)

-0:135        add (temp float)

-0:135          'scalarIn' (smooth in float)

-0:135          'scalarIn' (smooth in float)

-0:135        Constant:

-0:135          0.200000

-0:135          0.200000

-0:136      interpolateAtOffset (global float)

-0:136        x: direct index for structure (global float)

-0:136          's2' (sample temp structure{global float x})

-0:136          Constant:

-0:136            0 (const int)

-0:136        Constant:

-0:136          0.200000

-0:136          0.200000

-0:139      interpolateAtCentroid (global float)

-0:139        'f' (temp float)

-0:140      interpolateAtSample (global 4-component vector of float)

-0:140        'outp' (out 4-component vector of float)

-0:140        Constant:

-0:140          0 (const int)

-0:161  Function Definition: qlod( (global void)

-0:161    Function Parameters: 

-0:?     Sequence

-0:168      move second child to first child (temp 2-component vector of float)

-0:168        'lod' (temp 2-component vector of float)

-0:168        textureQueryLod (global 2-component vector of float)

-0:168          'samp1D' (uniform sampler1D)

-0:168          'pf' (temp float)

-0:169      move second child to first child (temp 2-component vector of float)

-0:169        'lod' (temp 2-component vector of float)

-0:169        textureQueryLod (global 2-component vector of float)

-0:169          'isamp2D' (uniform isampler2D)

-0:169          'pf2' (temp 2-component vector of float)

-0:170      move second child to first child (temp 2-component vector of float)

-0:170        'lod' (temp 2-component vector of float)

-0:170        textureQueryLod (global 2-component vector of float)

-0:170          'usamp3D' (uniform usampler3D)

-0:170          'pf3' (temp 3-component vector of float)

-0:171      move second child to first child (temp 2-component vector of float)

-0:171        'lod' (temp 2-component vector of float)

-0:171        textureQueryLod (global 2-component vector of float)

-0:171          'sampCube' (uniform samplerCube)

-0:171          'pf3' (temp 3-component vector of float)

-0:172      move second child to first child (temp 2-component vector of float)

-0:172        'lod' (temp 2-component vector of float)

-0:172        textureQueryLod (global 2-component vector of float)

-0:172          'isamp1DA' (uniform isampler1DArray)

-0:172          'pf' (temp float)

-0:173      move second child to first child (temp 2-component vector of float)

-0:173        'lod' (temp 2-component vector of float)

-0:173        textureQueryLod (global 2-component vector of float)

-0:173          'usamp2DA' (uniform usampler2DArray)

-0:173          'pf2' (temp 2-component vector of float)

-0:174      move second child to first child (temp 2-component vector of float)

-0:174        'lod' (temp 2-component vector of float)

-0:174        textureQueryLod (global 2-component vector of float)

-0:174          'isampCubeA' (uniform isamplerCubeArray)

-0:174          'pf3' (temp 3-component vector of float)

-0:176      move second child to first child (temp 2-component vector of float)

-0:176        'lod' (temp 2-component vector of float)

-0:176        textureQueryLod (global 2-component vector of float)

-0:176          'samp1Ds' (uniform sampler1DShadow)

-0:176          'pf' (temp float)

-0:177      move second child to first child (temp 2-component vector of float)

-0:177        'lod' (temp 2-component vector of float)

-0:177        textureQueryLod (global 2-component vector of float)

-0:177          'samp2Ds' (uniform sampler2DShadow)

-0:177          'pf2' (temp 2-component vector of float)

-0:178      move second child to first child (temp 2-component vector of float)

-0:178        'lod' (temp 2-component vector of float)

-0:178        textureQueryLod (global 2-component vector of float)

-0:178          'sampCubes' (uniform samplerCubeShadow)

-0:178          'pf3' (temp 3-component vector of float)

-0:179      move second child to first child (temp 2-component vector of float)

-0:179        'lod' (temp 2-component vector of float)

-0:179        textureQueryLod (global 2-component vector of float)

-0:179          'samp1DAs' (uniform sampler1DArrayShadow)

-0:179          'pf' (temp float)

-0:180      move second child to first child (temp 2-component vector of float)

-0:180        'lod' (temp 2-component vector of float)

-0:180        textureQueryLod (global 2-component vector of float)

-0:180          'samp2DAs' (uniform sampler2DArrayShadow)

-0:180          'pf2' (temp 2-component vector of float)

-0:181      move second child to first child (temp 2-component vector of float)

-0:181        'lod' (temp 2-component vector of float)

-0:181        textureQueryLod (global 2-component vector of float)

-0:181          'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:181          'pf3' (temp 3-component vector of float)

-0:183      'lod' (temp 2-component vector of float)

-0:184      'lod' (temp 2-component vector of float)

-0:?   Linker Objects

-0:?     'c2D' (smooth in 2-component vector of float)

-0:?     'i' (flat in int)

-0:?     'outp' (out 4-component vector of float)

-0:?     'arrayedSampler' (uniform 5-element array of sampler2D)

-0:?     'samp2dr' (uniform usampler2DRect)

-0:?     'isamp2DA' (uniform isampler2DArray)

-0:?     'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)

-0:?     'vl' (layout(location=4 ) smooth in 4-component vector of float)

-0:?     'vl2' (layout(location=6 ) smooth in 4-component vector of float)

-0:?     'uv3' (layout(location=3 ) uniform 3-component vector of float)

-0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'u2drs' (uniform sampler2DRectShadow)

-0:?     'patchIn' (smooth patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'in1' (smooth in float)

-0:?     'in2' (smooth in 2-component vector of float)

-0:?     'in3' (smooth in 3-component vector of float)

-0:?     'in4' (smooth in 4-component vector of float)

-0:?     'colorSampIn' (smooth sample in 4-component vector of float)

-0:?     'colorSampleBad' (sample out 4-component vector of float)

-0:?     'colorfsi' (noperspective in 4-component vector of float)

-0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:?     'scalarIn' (smooth in float)

-0:?     'colorfc' (centroid flat in 2-component vector of float)

-0:?     's1' (smooth in structure{global float x})

-0:?     's2' (sample temp structure{global float x})

-0:?     'samp1D' (uniform sampler1D)

-0:?     'isamp2D' (uniform isampler2D)

-0:?     'usamp3D' (uniform usampler3D)

-0:?     'sampCube' (uniform samplerCube)

-0:?     'isamp1DA' (uniform isampler1DArray)

-0:?     'usamp2DA' (uniform usampler2DArray)

-0:?     'isampCubeA' (uniform isamplerCubeArray)

-0:?     'samp1Ds' (uniform sampler1DShadow)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-0:?     'sampCubes' (uniform samplerCubeShadow)

-0:?     'samp1DAs' (uniform sampler1DArrayShadow)

-0:?     'samp2DAs' (uniform sampler2DArrayShadow)

-0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:?     'sampBuf' (uniform samplerBuffer)

-0:?     'sampRect' (uniform sampler2DRect)

-

-

-Linked fragment stage:

-

-

-Shader version: 400

-Requested GL_ARB_derivative_control

-Requested GL_ARB_separate_shader_objects

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:?     Sequence

-0:13      move second child to first child (temp 4-component vector of float)

-0:13        'v' (temp 4-component vector of float)

-0:13        texture (global 4-component vector of float)

-0:13          indirect index (temp sampler2D)

-0:13            'arrayedSampler' (uniform 5-element array of sampler2D)

-0:13            'i' (flat in int)

-0:13          'c2D' (smooth in 2-component vector of float)

-0:14      move second child to first child (temp float)

-0:14        direct index (temp float)

-0:14          'outp' (out 4-component vector of float)

-0:14          Constant:

-0:14            0 (const int)

-0:14        direct index (smooth temp float ClipDistance)

-0:14          'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)

-0:14          Constant:

-0:14            1 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp 4-component vector of uint)

-0:18          'uv4' (temp 4-component vector of uint)

-0:18          textureGatherOffsets (global 4-component vector of uint)

-0:18            'samp2dr' (uniform usampler2DRect)

-0:18            'c2D' (smooth in 2-component vector of float)

-0:18            'offsets' (temp 4-element array of 2-component vector of int)

-0:18            Constant:

-0:18              2 (const int)

-0:19      move second child to first child (temp 4-component vector of uint)

-0:19        'uv4' (temp 4-component vector of uint)

-0:19        textureGatherOffsets (global 4-component vector of uint)

-0:19          'samp2dr' (uniform usampler2DRect)

-0:19          'c2D' (smooth in 2-component vector of float)

-0:19          Constant:

-0:19            1 (const int)

-0:19            2 (const int)

-0:19            3 (const int)

-0:19            4 (const int)

-0:19            15 (const int)

-0:19            16 (const int)

-0:19            -2 (const int)

-0:19            0 (const int)

-0:19          Constant:

-0:19            2 (const int)

-0:20      Sequence

-0:20        move second child to first child (temp 4-component vector of float)

-0:20          'v4' (temp 4-component vector of float)

-0:20          textureGather (global 4-component vector of float)

-0:20            direct index (temp sampler2D)

-0:20              'arrayedSampler' (uniform 5-element array of sampler2D)

-0:20              Constant:

-0:20                0 (const int)

-0:20            'c2D' (smooth in 2-component vector of float)

-0:21      Sequence

-0:21        move second child to first child (temp 4-component vector of int)

-0:21          'iv4' (temp 4-component vector of int)

-0:21          textureGatherOffset (global 4-component vector of int)

-0:21            'isamp2DA' (uniform isampler2DArray)

-0:21            Constant:

-0:21              0.100000

-0:21              0.100000

-0:21              0.100000

-0:21            Constant:

-0:21              1 (const int)

-0:21              1 (const int)

-0:21            Constant:

-0:21              3 (const int)

-0:22      move second child to first child (temp 4-component vector of int)

-0:22        'iv4' (temp 4-component vector of int)

-0:22        textureGatherOffset (global 4-component vector of int)

-0:22          'isamp2DA' (uniform isampler2DArray)

-0:22          Constant:

-0:22            0.100000

-0:22            0.100000

-0:22            0.100000

-0:22          Constant:

-0:22            1 (const int)

-0:22            1 (const int)

-0:22          'i' (flat in int)

-0:23      move second child to first child (temp 4-component vector of int)

-0:23        'iv4' (temp 4-component vector of int)

-0:23        textureGatherOffset (global 4-component vector of int)

-0:23          'isamp2DA' (uniform isampler2DArray)

-0:23          Constant:

-0:23            0.100000

-0:23            0.100000

-0:23            0.100000

-0:23          Constant:

-0:23            1 (const int)

-0:23            1 (const int)

-0:23          Constant:

-0:23            4 (const int)

-0:24      move second child to first child (temp 4-component vector of int)

-0:24        'iv4' (temp 4-component vector of int)

-0:24        textureGatherOffset (global 4-component vector of int)

-0:24          'isamp2DA' (uniform isampler2DArray)

-0:24          Constant:

-0:24            0.100000

-0:24            0.100000

-0:24            0.100000

-0:24          Constant:

-0:24            1 (const int)

-0:24            1 (const int)

-0:24          Constant:

-0:24            3 (const int)

-0:25      move second child to first child (temp 4-component vector of int)

-0:25        'iv4' (temp 4-component vector of int)

-0:25        textureGatherOffset (global 4-component vector of int)

-0:25          'isamp2DA' (uniform isampler2DArray)

-0:25          Constant:

-0:25            0.100000

-0:25            0.100000

-0:25            0.100000

-0:25          Construct ivec2 (temp 2-component vector of int)

-0:25            'i' (flat in int)

-0:27      Sequence

-0:27        move second child to first child (temp 4-component vector of float)

-0:27          'c' (temp 4-component vector of float)

-0:27          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:47  Function Definition: foo23( (global void)

-0:47    Function Parameters: 

-0:?     Sequence

-0:51      textureProjGradOffset (global float)

-0:51        'u2drs' (uniform sampler2DRectShadow)

-0:51        'outp' (out 4-component vector of float)

-0:51        Constant:

-0:51          0.000000

-0:51          0.000000

-0:51        Constant:

-0:51          0.000000

-0:51          0.000000

-0:51        Convert float to int (temp 2-component vector of int)

-0:51          'c2D' (smooth in 2-component vector of float)

-0:52      textureProjGradOffset (global float)

-0:52        'u2drs' (uniform sampler2DRectShadow)

-0:52        'outp' (out 4-component vector of float)

-0:52        Constant:

-0:52          0.000000

-0:52          0.000000

-0:52        Constant:

-0:52          0.000000

-0:52          0.000000

-0:52        Constant:

-0:52          3 (const int)

-0:52          4 (const int)

-0:53      textureProjGradOffset (global float)

-0:53        'u2drs' (uniform sampler2DRectShadow)

-0:53        'outp' (out 4-component vector of float)

-0:53        Constant:

-0:53          0.000000

-0:53          0.000000

-0:53        Constant:

-0:53          0.000000

-0:53          0.000000

-0:53        Constant:

-0:53          15 (const int)

-0:53          16 (const int)

-0:54      textureProjGradOffset (global float)

-0:54        'u2drs' (uniform sampler2DRectShadow)

-0:54        'outp' (out 4-component vector of float)

-0:54        Constant:

-0:54          0.000000

-0:54          0.000000

-0:54        Constant:

-0:54          0.000000

-0:54          0.000000

-0:54        Constant:

-0:54          -10 (const int)

-0:54          20 (const int)

-0:60  Function Definition: foo24( (global void)

-0:60    Function Parameters: 

-0:?     Sequence

-0:63      move second child to first child (temp 3-component vector of double)

-0:63        'df' (temp 3-component vector of double)

-0:63        Convert float to double (temp 3-component vector of double)

-0:63          Comma (global 3-component vector of float)

-0:63            move second child to first child (temp 3-component vector of float)

-0:63              'tempReturn' (global 3-component vector of float)

-0:63              modf (global 3-component vector of float)

-0:63                vector swizzle (temp 3-component vector of float)

-0:63                  'outp' (out 4-component vector of float)

-0:63                  Sequence

-0:63                    Constant:

-0:63                      0 (const int)

-0:63                    Constant:

-0:63                      1 (const int)

-0:63                    Constant:

-0:63                      2 (const int)

-0:63                'tempArg' (temp 3-component vector of float)

-0:63            move second child to first child (temp 3-component vector of double)

-0:63              'di' (temp 3-component vector of double)

-0:63              Convert float to double (temp 3-component vector of double)

-0:63                'tempArg' (temp 3-component vector of float)

-0:63            'tempReturn' (global 3-component vector of float)

-0:71  Function Definition: foodc1( (global void)

-0:71    Function Parameters: 

-0:73    Sequence

-0:73      Sequence

-0:73        move second child to first child (temp 2-component vector of float)

-0:73          'v2' (temp 2-component vector of float)

-0:73          dPdxFine (global 2-component vector of float)

-0:73            'in2' (smooth in 2-component vector of float)

-0:74      Sequence

-0:74        move second child to first child (temp 3-component vector of float)

-0:74          'v3' (temp 3-component vector of float)

-0:74          dPdyCoarse (global 3-component vector of float)

-0:74            'in3' (smooth in 3-component vector of float)

-0:75      Sequence

-0:75        move second child to first child (temp 4-component vector of float)

-0:75          'v4' (temp 4-component vector of float)

-0:75          add (temp 4-component vector of float)

-0:75            fwidthCoarse (global 4-component vector of float)

-0:75              'in4' (smooth in 4-component vector of float)

-0:75            fwidthFine (global 4-component vector of float)

-0:75              'in4' (smooth in 4-component vector of float)

-0:80  Function Definition: foodc2( (global void)

-0:80    Function Parameters: 

-0:82    Sequence

-0:82      Sequence

-0:82        move second child to first child (temp 2-component vector of float)

-0:82          'v2' (temp 2-component vector of float)

-0:82          dPdxFine (global 2-component vector of float)

-0:82            'in2' (smooth in 2-component vector of float)

-0:83      Sequence

-0:83        move second child to first child (temp 3-component vector of float)

-0:83          'v3' (temp 3-component vector of float)

-0:83          dPdyCoarse (global 3-component vector of float)

-0:83            'in3' (smooth in 3-component vector of float)

-0:84      Sequence

-0:84        move second child to first child (temp 4-component vector of float)

-0:84          'v4' (temp 4-component vector of float)

-0:84          add (temp 4-component vector of float)

-0:84            fwidthCoarse (global 4-component vector of float)

-0:84              'in4' (smooth in 4-component vector of float)

-0:84            fwidthFine (global 4-component vector of float)

-0:84              'in4' (smooth in 4-component vector of float)

-0:89      move second child to first child (temp 2-component vector of float)

-0:89        'v2' (temp 2-component vector of float)

-0:89        frexp (global 2-component vector of float)

-0:89          'v2' (temp 2-component vector of float)

-0:89          'i2' (temp 2-component vector of int)

-0:90      move second child to first child (temp 3-component vector of float)

-0:90        'v3' (temp 3-component vector of float)

-0:90        ldexp (global 3-component vector of float)

-0:90          'v3' (temp 3-component vector of float)

-0:90          'i3' (temp 3-component vector of int)

-0:92      move second child to first child (temp uint)

-0:92        'u1' (temp uint)

-0:92        PackUnorm4x8 (global uint)

-0:92          'v4' (temp 4-component vector of float)

-0:93      move second child to first child (temp uint)

-0:93        'u1' (temp uint)

-0:93        PackSnorm4x8 (global uint)

-0:93          'v4' (temp 4-component vector of float)

-0:94      move second child to first child (temp 4-component vector of float)

-0:94        'v4' (temp 4-component vector of float)

-0:94        UnpackUnorm4x8 (global 4-component vector of float)

-0:94          'u1' (temp uint)

-0:95      move second child to first child (temp 4-component vector of float)

-0:95        'v4' (temp 4-component vector of float)

-0:95        UnpackSnorm4x8 (global 4-component vector of float)

-0:95          'u1' (temp uint)

-0:99      move second child to first child (temp double)

-0:99        'd' (temp double)

-0:99        PackDouble2x32 (global double)

-0:99          'u2' (temp 2-component vector of uint)

-0:100      move second child to first child (temp 2-component vector of uint)

-0:100        'u2' (temp 2-component vector of uint)

-0:100        UnpackDouble2x32 (global 2-component vector of uint)

-0:100          'd' (temp double)

-0:117  Function Definition: interp( (global void)

-0:117    Function Parameters: 

-0:119    Sequence

-0:119      interpolateAtCentroid (global 2-component vector of float)

-0:119        'colorfc' (centroid flat in 2-component vector of float)

-0:120      interpolateAtCentroid (global 4-component vector of float)

-0:120        'colorSampIn' (smooth sample in 4-component vector of float)

-0:121      interpolateAtCentroid (global 4-component vector of float)

-0:121        'colorfsi' (noperspective in 4-component vector of float)

-0:122      interpolateAtCentroid (global float)

-0:122        'scalarIn' (smooth in float)

-0:123      Constant:

-0:123        0.000000

-0:124      interpolateAtCentroid (global 3-component vector of float)

-0:124        direct index (smooth sample temp 3-component vector of float)

-0:124          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:124          Constant:

-0:124            2 (const int)

-0:125      interpolateAtCentroid (global 2-component vector of float)

-0:125        vector swizzle (temp 2-component vector of float)

-0:125          direct index (smooth sample temp 3-component vector of float)

-0:125            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:125            Constant:

-0:125              2 (const int)

-0:125          Sequence

-0:125            Constant:

-0:125              0 (const int)

-0:125            Constant:

-0:125              1 (const int)

-0:127      Constant:

-0:127        0.000000

-0:128      interpolateAtSample (global 3-component vector of float)

-0:128        indirect index (smooth sample temp 3-component vector of float)

-0:128          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:128          'i' (flat in int)

-0:128        Constant:

-0:128          0 (const int)

-0:129      interpolateAtSample (global float)

-0:129        x: direct index for structure (global float)

-0:129          's1' (smooth in structure{global float x})

-0:129          Constant:

-0:129            0 (const int)

-0:129        Constant:

-0:129          2 (const int)

-0:130      interpolateAtSample (global float)

-0:130        'scalarIn' (smooth in float)

-0:130        Constant:

-0:130          1 (const int)

-0:132      Constant:

-0:132        0.000000

-0:133      interpolateAtOffset (global 3-component vector of float)

-0:133        direct index (smooth sample temp 3-component vector of float)

-0:133          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:133          Constant:

-0:133            2 (const int)

-0:133        Constant:

-0:133          0.200000

-0:133          0.200000

-0:134      interpolateAtOffset (global 2-component vector of float)

-0:134        vector swizzle (temp 2-component vector of float)

-0:134          direct index (smooth sample temp 3-component vector of float)

-0:134            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:134            Constant:

-0:134              2 (const int)

-0:134          Sequence

-0:134            Constant:

-0:134              0 (const int)

-0:134            Constant:

-0:134              1 (const int)

-0:134        Constant:

-0:134          0.200000

-0:134          0.200000

-0:135      interpolateAtOffset (global float)

-0:135        add (temp float)

-0:135          'scalarIn' (smooth in float)

-0:135          'scalarIn' (smooth in float)

-0:135        Constant:

-0:135          0.200000

-0:135          0.200000

-0:136      interpolateAtOffset (global float)

-0:136        x: direct index for structure (global float)

-0:136          's2' (sample temp structure{global float x})

-0:136          Constant:

-0:136            0 (const int)

-0:136        Constant:

-0:136          0.200000

-0:136          0.200000

-0:139      interpolateAtCentroid (global float)

-0:139        'f' (temp float)

-0:140      interpolateAtSample (global 4-component vector of float)

-0:140        'outp' (out 4-component vector of float)

-0:140        Constant:

-0:140          0 (const int)

-0:161  Function Definition: qlod( (global void)

-0:161    Function Parameters: 

-0:?     Sequence

-0:168      move second child to first child (temp 2-component vector of float)

-0:168        'lod' (temp 2-component vector of float)

-0:168        textureQueryLod (global 2-component vector of float)

-0:168          'samp1D' (uniform sampler1D)

-0:168          'pf' (temp float)

-0:169      move second child to first child (temp 2-component vector of float)

-0:169        'lod' (temp 2-component vector of float)

-0:169        textureQueryLod (global 2-component vector of float)

-0:169          'isamp2D' (uniform isampler2D)

-0:169          'pf2' (temp 2-component vector of float)

-0:170      move second child to first child (temp 2-component vector of float)

-0:170        'lod' (temp 2-component vector of float)

-0:170        textureQueryLod (global 2-component vector of float)

-0:170          'usamp3D' (uniform usampler3D)

-0:170          'pf3' (temp 3-component vector of float)

-0:171      move second child to first child (temp 2-component vector of float)

-0:171        'lod' (temp 2-component vector of float)

-0:171        textureQueryLod (global 2-component vector of float)

-0:171          'sampCube' (uniform samplerCube)

-0:171          'pf3' (temp 3-component vector of float)

-0:172      move second child to first child (temp 2-component vector of float)

-0:172        'lod' (temp 2-component vector of float)

-0:172        textureQueryLod (global 2-component vector of float)

-0:172          'isamp1DA' (uniform isampler1DArray)

-0:172          'pf' (temp float)

-0:173      move second child to first child (temp 2-component vector of float)

-0:173        'lod' (temp 2-component vector of float)

-0:173        textureQueryLod (global 2-component vector of float)

-0:173          'usamp2DA' (uniform usampler2DArray)

-0:173          'pf2' (temp 2-component vector of float)

-0:174      move second child to first child (temp 2-component vector of float)

-0:174        'lod' (temp 2-component vector of float)

-0:174        textureQueryLod (global 2-component vector of float)

-0:174          'isampCubeA' (uniform isamplerCubeArray)

-0:174          'pf3' (temp 3-component vector of float)

-0:176      move second child to first child (temp 2-component vector of float)

-0:176        'lod' (temp 2-component vector of float)

-0:176        textureQueryLod (global 2-component vector of float)

-0:176          'samp1Ds' (uniform sampler1DShadow)

-0:176          'pf' (temp float)

-0:177      move second child to first child (temp 2-component vector of float)

-0:177        'lod' (temp 2-component vector of float)

-0:177        textureQueryLod (global 2-component vector of float)

-0:177          'samp2Ds' (uniform sampler2DShadow)

-0:177          'pf2' (temp 2-component vector of float)

-0:178      move second child to first child (temp 2-component vector of float)

-0:178        'lod' (temp 2-component vector of float)

-0:178        textureQueryLod (global 2-component vector of float)

-0:178          'sampCubes' (uniform samplerCubeShadow)

-0:178          'pf3' (temp 3-component vector of float)

-0:179      move second child to first child (temp 2-component vector of float)

-0:179        'lod' (temp 2-component vector of float)

-0:179        textureQueryLod (global 2-component vector of float)

-0:179          'samp1DAs' (uniform sampler1DArrayShadow)

-0:179          'pf' (temp float)

-0:180      move second child to first child (temp 2-component vector of float)

-0:180        'lod' (temp 2-component vector of float)

-0:180        textureQueryLod (global 2-component vector of float)

-0:180          'samp2DAs' (uniform sampler2DArrayShadow)

-0:180          'pf2' (temp 2-component vector of float)

-0:181      move second child to first child (temp 2-component vector of float)

-0:181        'lod' (temp 2-component vector of float)

-0:181        textureQueryLod (global 2-component vector of float)

-0:181          'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:181          'pf3' (temp 3-component vector of float)

-0:183      'lod' (temp 2-component vector of float)

-0:184      'lod' (temp 2-component vector of float)

-0:?   Linker Objects

-0:?     'c2D' (smooth in 2-component vector of float)

-0:?     'i' (flat in int)

-0:?     'outp' (out 4-component vector of float)

-0:?     'arrayedSampler' (uniform 5-element array of sampler2D)

-0:?     'samp2dr' (uniform usampler2DRect)

-0:?     'isamp2DA' (uniform isampler2DArray)

-0:?     'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)

-0:?     'vl' (layout(location=4 ) smooth in 4-component vector of float)

-0:?     'vl2' (layout(location=6 ) smooth in 4-component vector of float)

-0:?     'uv3' (layout(location=3 ) uniform 3-component vector of float)

-0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'u2drs' (uniform sampler2DRectShadow)

-0:?     'patchIn' (smooth patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'in1' (smooth in float)

-0:?     'in2' (smooth in 2-component vector of float)

-0:?     'in3' (smooth in 3-component vector of float)

-0:?     'in4' (smooth in 4-component vector of float)

-0:?     'colorSampIn' (smooth sample in 4-component vector of float)

-0:?     'colorSampleBad' (sample out 4-component vector of float)

-0:?     'colorfsi' (noperspective in 4-component vector of float)

-0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:?     'scalarIn' (smooth in float)

-0:?     'colorfc' (centroid flat in 2-component vector of float)

-0:?     's1' (smooth in structure{global float x})

-0:?     's2' (sample temp structure{global float x})

-0:?     'samp1D' (uniform sampler1D)

-0:?     'isamp2D' (uniform isampler2D)

-0:?     'usamp3D' (uniform usampler3D)

-0:?     'sampCube' (uniform samplerCube)

-0:?     'isamp1DA' (uniform isampler1DArray)

-0:?     'usamp2DA' (uniform usampler2DArray)

-0:?     'isampCubeA' (uniform isamplerCubeArray)

-0:?     'samp1Ds' (uniform sampler1DShadow)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-0:?     'sampCubes' (uniform samplerCubeShadow)

-0:?     'samp1DAs' (uniform sampler1DArrayShadow)

-0:?     'samp2DAs' (uniform sampler2DArrayShadow)

-0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:?     'sampBuf' (uniform samplerBuffer)

-0:?     'sampRect' (uniform sampler2DRect)

-

+400.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
+ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
+ERROR: 0:30: 'location qualifier on input' : not supported for this version or the enabled extensions 
+ERROR: 0:38: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
+ERROR: 0:40: 'redeclaration' : cannot apply layout qualifier to gl_Color
+ERROR: 0:41: 'redeclaration' : cannot change qualification of gl_ClipDistance
+ERROR: 0:43: 'gl_FragCoord' : cannot redeclare after use 
+ERROR: 0:51: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:57: 'patch' : not supported in this stage: fragment
+ERROR: 0:58: 'patch' : not supported in this stage: fragment
+ERROR: 0:58: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
+ERROR: 0:73: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:74: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:75: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:75: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:104: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
+ERROR: 0:123: 'interpolateAtCentroid' : no matching overloaded function found 
+ERROR: 0:125: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:127: 'interpolateAtSample' : no matching overloaded function found 
+ERROR: 0:132: 'interpolateAtOffset' : no matching overloaded function found 
+ERROR: 0:134: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:183: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:184: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:187: '' :  syntax error
+ERROR: 35 compilation errors.  No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_derivative_control
+Requested GL_ARB_separate_shader_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:?     Sequence
+0:13      move second child to first child (temp 4-component vector of float)
+0:13        'v' (temp 4-component vector of float)
+0:13        texture (global 4-component vector of float)
+0:13          indirect index (temp sampler2D)
+0:13            'arrayedSampler' (uniform 5-element array of sampler2D)
+0:13            'i' (flat in int)
+0:13          'c2D' (smooth in 2-component vector of float)
+0:14      move second child to first child (temp float)
+0:14        direct index (temp float)
+0:14          'outp' (out 4-component vector of float)
+0:14          Constant:
+0:14            0 (const int)
+0:14        direct index (smooth temp float ClipDistance)
+0:14          'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:14          Constant:
+0:14            1 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp 4-component vector of uint)
+0:18          'uv4' (temp 4-component vector of uint)
+0:18          textureGatherOffsets (global 4-component vector of uint)
+0:18            'samp2dr' (uniform usampler2DRect)
+0:18            'c2D' (smooth in 2-component vector of float)
+0:18            'offsets' (temp 4-element array of 2-component vector of int)
+0:18            Constant:
+0:18              2 (const int)
+0:19      move second child to first child (temp 4-component vector of uint)
+0:19        'uv4' (temp 4-component vector of uint)
+0:19        textureGatherOffsets (global 4-component vector of uint)
+0:19          'samp2dr' (uniform usampler2DRect)
+0:19          'c2D' (smooth in 2-component vector of float)
+0:19          Constant:
+0:19            1 (const int)
+0:19            2 (const int)
+0:19            3 (const int)
+0:19            4 (const int)
+0:19            15 (const int)
+0:19            16 (const int)
+0:19            -2 (const int)
+0:19            0 (const int)
+0:19          Constant:
+0:19            2 (const int)
+0:20      Sequence
+0:20        move second child to first child (temp 4-component vector of float)
+0:20          'v4' (temp 4-component vector of float)
+0:20          textureGather (global 4-component vector of float)
+0:20            direct index (temp sampler2D)
+0:20              'arrayedSampler' (uniform 5-element array of sampler2D)
+0:20              Constant:
+0:20                0 (const int)
+0:20            'c2D' (smooth in 2-component vector of float)
+0:21      Sequence
+0:21        move second child to first child (temp 4-component vector of int)
+0:21          'iv4' (temp 4-component vector of int)
+0:21          textureGatherOffset (global 4-component vector of int)
+0:21            'isamp2DA' (uniform isampler2DArray)
+0:21            Constant:
+0:21              0.100000
+0:21              0.100000
+0:21              0.100000
+0:21            Constant:
+0:21              1 (const int)
+0:21              1 (const int)
+0:21            Constant:
+0:21              3 (const int)
+0:22      move second child to first child (temp 4-component vector of int)
+0:22        'iv4' (temp 4-component vector of int)
+0:22        textureGatherOffset (global 4-component vector of int)
+0:22          'isamp2DA' (uniform isampler2DArray)
+0:22          Constant:
+0:22            0.100000
+0:22            0.100000
+0:22            0.100000
+0:22          Constant:
+0:22            1 (const int)
+0:22            1 (const int)
+0:22          'i' (flat in int)
+0:23      move second child to first child (temp 4-component vector of int)
+0:23        'iv4' (temp 4-component vector of int)
+0:23        textureGatherOffset (global 4-component vector of int)
+0:23          'isamp2DA' (uniform isampler2DArray)
+0:23          Constant:
+0:23            0.100000
+0:23            0.100000
+0:23            0.100000
+0:23          Constant:
+0:23            1 (const int)
+0:23            1 (const int)
+0:23          Constant:
+0:23            4 (const int)
+0:24      move second child to first child (temp 4-component vector of int)
+0:24        'iv4' (temp 4-component vector of int)
+0:24        textureGatherOffset (global 4-component vector of int)
+0:24          'isamp2DA' (uniform isampler2DArray)
+0:24          Constant:
+0:24            0.100000
+0:24            0.100000
+0:24            0.100000
+0:24          Constant:
+0:24            1 (const int)
+0:24            1 (const int)
+0:24          Constant:
+0:24            3 (const int)
+0:25      move second child to first child (temp 4-component vector of int)
+0:25        'iv4' (temp 4-component vector of int)
+0:25        textureGatherOffset (global 4-component vector of int)
+0:25          'isamp2DA' (uniform isampler2DArray)
+0:25          Constant:
+0:25            0.100000
+0:25            0.100000
+0:25            0.100000
+0:25          Construct ivec2 (temp 2-component vector of int)
+0:25            'i' (flat in int)
+0:27      Sequence
+0:27        move second child to first child (temp 4-component vector of float)
+0:27          'c' (temp 4-component vector of float)
+0:27          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:47  Function Definition: foo23( (global void)
+0:47    Function Parameters: 
+0:?     Sequence
+0:51      textureProjGradOffset (global float)
+0:51        'u2drs' (uniform sampler2DRectShadow)
+0:51        'outp' (out 4-component vector of float)
+0:51        Constant:
+0:51          0.000000
+0:51          0.000000
+0:51        Constant:
+0:51          0.000000
+0:51          0.000000
+0:51        Convert float to int (temp 2-component vector of int)
+0:51          'c2D' (smooth in 2-component vector of float)
+0:52      textureProjGradOffset (global float)
+0:52        'u2drs' (uniform sampler2DRectShadow)
+0:52        'outp' (out 4-component vector of float)
+0:52        Constant:
+0:52          0.000000
+0:52          0.000000
+0:52        Constant:
+0:52          0.000000
+0:52          0.000000
+0:52        Constant:
+0:52          3 (const int)
+0:52          4 (const int)
+0:53      textureProjGradOffset (global float)
+0:53        'u2drs' (uniform sampler2DRectShadow)
+0:53        'outp' (out 4-component vector of float)
+0:53        Constant:
+0:53          0.000000
+0:53          0.000000
+0:53        Constant:
+0:53          0.000000
+0:53          0.000000
+0:53        Constant:
+0:53          15 (const int)
+0:53          16 (const int)
+0:54      textureProjGradOffset (global float)
+0:54        'u2drs' (uniform sampler2DRectShadow)
+0:54        'outp' (out 4-component vector of float)
+0:54        Constant:
+0:54          0.000000
+0:54          0.000000
+0:54        Constant:
+0:54          0.000000
+0:54          0.000000
+0:54        Constant:
+0:54          -10 (const int)
+0:54          20 (const int)
+0:60  Function Definition: foo24( (global void)
+0:60    Function Parameters: 
+0:?     Sequence
+0:63      move second child to first child (temp 3-component vector of double)
+0:63        'df' (temp 3-component vector of double)
+0:63        Convert float to double (temp 3-component vector of double)
+0:63          Comma (global 3-component vector of float)
+0:63            move second child to first child (temp 3-component vector of float)
+0:63              'tempReturn' (global 3-component vector of float)
+0:63              modf (global 3-component vector of float)
+0:63                vector swizzle (temp 3-component vector of float)
+0:63                  'outp' (out 4-component vector of float)
+0:63                  Sequence
+0:63                    Constant:
+0:63                      0 (const int)
+0:63                    Constant:
+0:63                      1 (const int)
+0:63                    Constant:
+0:63                      2 (const int)
+0:63                'tempArg' (temp 3-component vector of float)
+0:63            move second child to first child (temp 3-component vector of double)
+0:63              'di' (temp 3-component vector of double)
+0:63              Convert float to double (temp 3-component vector of double)
+0:63                'tempArg' (temp 3-component vector of float)
+0:63            'tempReturn' (global 3-component vector of float)
+0:71  Function Definition: foodc1( (global void)
+0:71    Function Parameters: 
+0:73    Sequence
+0:73      Sequence
+0:73        move second child to first child (temp 2-component vector of float)
+0:73          'v2' (temp 2-component vector of float)
+0:73          dPdxFine (global 2-component vector of float)
+0:73            'in2' (smooth in 2-component vector of float)
+0:74      Sequence
+0:74        move second child to first child (temp 3-component vector of float)
+0:74          'v3' (temp 3-component vector of float)
+0:74          dPdyCoarse (global 3-component vector of float)
+0:74            'in3' (smooth in 3-component vector of float)
+0:75      Sequence
+0:75        move second child to first child (temp 4-component vector of float)
+0:75          'v4' (temp 4-component vector of float)
+0:75          add (temp 4-component vector of float)
+0:75            fwidthCoarse (global 4-component vector of float)
+0:75              'in4' (smooth in 4-component vector of float)
+0:75            fwidthFine (global 4-component vector of float)
+0:75              'in4' (smooth in 4-component vector of float)
+0:80  Function Definition: foodc2( (global void)
+0:80    Function Parameters: 
+0:82    Sequence
+0:82      Sequence
+0:82        move second child to first child (temp 2-component vector of float)
+0:82          'v2' (temp 2-component vector of float)
+0:82          dPdxFine (global 2-component vector of float)
+0:82            'in2' (smooth in 2-component vector of float)
+0:83      Sequence
+0:83        move second child to first child (temp 3-component vector of float)
+0:83          'v3' (temp 3-component vector of float)
+0:83          dPdyCoarse (global 3-component vector of float)
+0:83            'in3' (smooth in 3-component vector of float)
+0:84      Sequence
+0:84        move second child to first child (temp 4-component vector of float)
+0:84          'v4' (temp 4-component vector of float)
+0:84          add (temp 4-component vector of float)
+0:84            fwidthCoarse (global 4-component vector of float)
+0:84              'in4' (smooth in 4-component vector of float)
+0:84            fwidthFine (global 4-component vector of float)
+0:84              'in4' (smooth in 4-component vector of float)
+0:89      move second child to first child (temp 2-component vector of float)
+0:89        'v2' (temp 2-component vector of float)
+0:89        frexp (global 2-component vector of float)
+0:89          'v2' (temp 2-component vector of float)
+0:89          'i2' (temp 2-component vector of int)
+0:90      move second child to first child (temp 3-component vector of float)
+0:90        'v3' (temp 3-component vector of float)
+0:90        ldexp (global 3-component vector of float)
+0:90          'v3' (temp 3-component vector of float)
+0:90          'i3' (temp 3-component vector of int)
+0:92      move second child to first child (temp uint)
+0:92        'u1' (temp uint)
+0:92        PackUnorm4x8 (global uint)
+0:92          'v4' (temp 4-component vector of float)
+0:93      move second child to first child (temp uint)
+0:93        'u1' (temp uint)
+0:93        PackSnorm4x8 (global uint)
+0:93          'v4' (temp 4-component vector of float)
+0:94      move second child to first child (temp 4-component vector of float)
+0:94        'v4' (temp 4-component vector of float)
+0:94        UnpackUnorm4x8 (global 4-component vector of float)
+0:94          'u1' (temp uint)
+0:95      move second child to first child (temp 4-component vector of float)
+0:95        'v4' (temp 4-component vector of float)
+0:95        UnpackSnorm4x8 (global 4-component vector of float)
+0:95          'u1' (temp uint)
+0:99      move second child to first child (temp double)
+0:99        'd' (temp double)
+0:99        PackDouble2x32 (global double)
+0:99          'u2' (temp 2-component vector of uint)
+0:100      move second child to first child (temp 2-component vector of uint)
+0:100        'u2' (temp 2-component vector of uint)
+0:100        UnpackDouble2x32 (global 2-component vector of uint)
+0:100          'd' (temp double)
+0:117  Function Definition: interp( (global void)
+0:117    Function Parameters: 
+0:119    Sequence
+0:119      interpolateAtCentroid (global 2-component vector of float)
+0:119        'colorfc' (centroid flat in 2-component vector of float)
+0:120      interpolateAtCentroid (global 4-component vector of float)
+0:120        'colorSampIn' (smooth sample in 4-component vector of float)
+0:121      interpolateAtCentroid (global 4-component vector of float)
+0:121        'colorfsi' (noperspective in 4-component vector of float)
+0:122      interpolateAtCentroid (global float)
+0:122        'scalarIn' (smooth in float)
+0:123      Constant:
+0:123        0.000000
+0:124      interpolateAtCentroid (global 3-component vector of float)
+0:124        direct index (smooth sample temp 3-component vector of float)
+0:124          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:124          Constant:
+0:124            2 (const int)
+0:125      interpolateAtCentroid (global 2-component vector of float)
+0:125        vector swizzle (temp 2-component vector of float)
+0:125          direct index (smooth sample temp 3-component vector of float)
+0:125            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:125            Constant:
+0:125              2 (const int)
+0:125          Sequence
+0:125            Constant:
+0:125              0 (const int)
+0:125            Constant:
+0:125              1 (const int)
+0:127      Constant:
+0:127        0.000000
+0:128      interpolateAtSample (global 3-component vector of float)
+0:128        indirect index (smooth sample temp 3-component vector of float)
+0:128          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:128          'i' (flat in int)
+0:128        Constant:
+0:128          0 (const int)
+0:129      interpolateAtSample (global float)
+0:129        x: direct index for structure (global float)
+0:129          's1' (smooth in structure{global float x})
+0:129          Constant:
+0:129            0 (const int)
+0:129        Constant:
+0:129          2 (const int)
+0:130      interpolateAtSample (global float)
+0:130        'scalarIn' (smooth in float)
+0:130        Constant:
+0:130          1 (const int)
+0:132      Constant:
+0:132        0.000000
+0:133      interpolateAtOffset (global 3-component vector of float)
+0:133        direct index (smooth sample temp 3-component vector of float)
+0:133          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:133          Constant:
+0:133            2 (const int)
+0:133        Constant:
+0:133          0.200000
+0:133          0.200000
+0:134      interpolateAtOffset (global 2-component vector of float)
+0:134        vector swizzle (temp 2-component vector of float)
+0:134          direct index (smooth sample temp 3-component vector of float)
+0:134            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:134            Constant:
+0:134              2 (const int)
+0:134          Sequence
+0:134            Constant:
+0:134              0 (const int)
+0:134            Constant:
+0:134              1 (const int)
+0:134        Constant:
+0:134          0.200000
+0:134          0.200000
+0:135      interpolateAtOffset (global float)
+0:135        add (temp float)
+0:135          'scalarIn' (smooth in float)
+0:135          'scalarIn' (smooth in float)
+0:135        Constant:
+0:135          0.200000
+0:135          0.200000
+0:136      interpolateAtOffset (global float)
+0:136        x: direct index for structure (global float)
+0:136          's2' (sample temp structure{global float x})
+0:136          Constant:
+0:136            0 (const int)
+0:136        Constant:
+0:136          0.200000
+0:136          0.200000
+0:139      interpolateAtCentroid (global float)
+0:139        'f' (temp float)
+0:140      interpolateAtSample (global 4-component vector of float)
+0:140        'outp' (out 4-component vector of float)
+0:140        Constant:
+0:140          0 (const int)
+0:161  Function Definition: qlod( (global void)
+0:161    Function Parameters: 
+0:?     Sequence
+0:168      move second child to first child (temp 2-component vector of float)
+0:168        'lod' (temp 2-component vector of float)
+0:168        textureQueryLod (global 2-component vector of float)
+0:168          'samp1D' (uniform sampler1D)
+0:168          'pf' (temp float)
+0:169      move second child to first child (temp 2-component vector of float)
+0:169        'lod' (temp 2-component vector of float)
+0:169        textureQueryLod (global 2-component vector of float)
+0:169          'isamp2D' (uniform isampler2D)
+0:169          'pf2' (temp 2-component vector of float)
+0:170      move second child to first child (temp 2-component vector of float)
+0:170        'lod' (temp 2-component vector of float)
+0:170        textureQueryLod (global 2-component vector of float)
+0:170          'usamp3D' (uniform usampler3D)
+0:170          'pf3' (temp 3-component vector of float)
+0:171      move second child to first child (temp 2-component vector of float)
+0:171        'lod' (temp 2-component vector of float)
+0:171        textureQueryLod (global 2-component vector of float)
+0:171          'sampCube' (uniform samplerCube)
+0:171          'pf3' (temp 3-component vector of float)
+0:172      move second child to first child (temp 2-component vector of float)
+0:172        'lod' (temp 2-component vector of float)
+0:172        textureQueryLod (global 2-component vector of float)
+0:172          'isamp1DA' (uniform isampler1DArray)
+0:172          'pf' (temp float)
+0:173      move second child to first child (temp 2-component vector of float)
+0:173        'lod' (temp 2-component vector of float)
+0:173        textureQueryLod (global 2-component vector of float)
+0:173          'usamp2DA' (uniform usampler2DArray)
+0:173          'pf2' (temp 2-component vector of float)
+0:174      move second child to first child (temp 2-component vector of float)
+0:174        'lod' (temp 2-component vector of float)
+0:174        textureQueryLod (global 2-component vector of float)
+0:174          'isampCubeA' (uniform isamplerCubeArray)
+0:174          'pf3' (temp 3-component vector of float)
+0:176      move second child to first child (temp 2-component vector of float)
+0:176        'lod' (temp 2-component vector of float)
+0:176        textureQueryLod (global 2-component vector of float)
+0:176          'samp1Ds' (uniform sampler1DShadow)
+0:176          'pf' (temp float)
+0:177      move second child to first child (temp 2-component vector of float)
+0:177        'lod' (temp 2-component vector of float)
+0:177        textureQueryLod (global 2-component vector of float)
+0:177          'samp2Ds' (uniform sampler2DShadow)
+0:177          'pf2' (temp 2-component vector of float)
+0:178      move second child to first child (temp 2-component vector of float)
+0:178        'lod' (temp 2-component vector of float)
+0:178        textureQueryLod (global 2-component vector of float)
+0:178          'sampCubes' (uniform samplerCubeShadow)
+0:178          'pf3' (temp 3-component vector of float)
+0:179      move second child to first child (temp 2-component vector of float)
+0:179        'lod' (temp 2-component vector of float)
+0:179        textureQueryLod (global 2-component vector of float)
+0:179          'samp1DAs' (uniform sampler1DArrayShadow)
+0:179          'pf' (temp float)
+0:180      move second child to first child (temp 2-component vector of float)
+0:180        'lod' (temp 2-component vector of float)
+0:180        textureQueryLod (global 2-component vector of float)
+0:180          'samp2DAs' (uniform sampler2DArrayShadow)
+0:180          'pf2' (temp 2-component vector of float)
+0:181      move second child to first child (temp 2-component vector of float)
+0:181        'lod' (temp 2-component vector of float)
+0:181        textureQueryLod (global 2-component vector of float)
+0:181          'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:181          'pf3' (temp 3-component vector of float)
+0:183      'lod' (temp 2-component vector of float)
+0:184      'lod' (temp 2-component vector of float)
+0:?   Linker Objects
+0:?     'c2D' (smooth in 2-component vector of float)
+0:?     'i' (flat in int)
+0:?     'outp' (out 4-component vector of float)
+0:?     'arrayedSampler' (uniform 5-element array of sampler2D)
+0:?     'samp2dr' (uniform usampler2DRect)
+0:?     'isamp2DA' (uniform isampler2DArray)
+0:?     'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:?     'vl' (layout(location=4 ) smooth in 4-component vector of float)
+0:?     'vl2' (layout(location=6 ) smooth in 4-component vector of float)
+0:?     'uv3' (layout(location=3 ) uniform 3-component vector of float)
+0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'u2drs' (uniform sampler2DRectShadow)
+0:?     'patchIn' (smooth patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'in1' (smooth in float)
+0:?     'in2' (smooth in 2-component vector of float)
+0:?     'in3' (smooth in 3-component vector of float)
+0:?     'in4' (smooth in 4-component vector of float)
+0:?     'colorSampIn' (smooth sample in 4-component vector of float)
+0:?     'colorSampleBad' (sample out 4-component vector of float)
+0:?     'colorfsi' (noperspective in 4-component vector of float)
+0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:?     'scalarIn' (smooth in float)
+0:?     'colorfc' (centroid flat in 2-component vector of float)
+0:?     's1' (smooth in structure{global float x})
+0:?     's2' (sample temp structure{global float x})
+0:?     'samp1D' (uniform sampler1D)
+0:?     'isamp2D' (uniform isampler2D)
+0:?     'usamp3D' (uniform usampler3D)
+0:?     'sampCube' (uniform samplerCube)
+0:?     'isamp1DA' (uniform isampler1DArray)
+0:?     'usamp2DA' (uniform usampler2DArray)
+0:?     'isampCubeA' (uniform isamplerCubeArray)
+0:?     'samp1Ds' (uniform sampler1DShadow)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+0:?     'sampCubes' (uniform samplerCubeShadow)
+0:?     'samp1DAs' (uniform sampler1DArrayShadow)
+0:?     'samp2DAs' (uniform sampler2DArrayShadow)
+0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:?     'sampBuf' (uniform samplerBuffer)
+0:?     'sampRect' (uniform sampler2DRect)
+
+
+Linked fragment stage:
+
+
+Shader version: 400
+Requested GL_ARB_derivative_control
+Requested GL_ARB_separate_shader_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:?     Sequence
+0:13      move second child to first child (temp 4-component vector of float)
+0:13        'v' (temp 4-component vector of float)
+0:13        texture (global 4-component vector of float)
+0:13          indirect index (temp sampler2D)
+0:13            'arrayedSampler' (uniform 5-element array of sampler2D)
+0:13            'i' (flat in int)
+0:13          'c2D' (smooth in 2-component vector of float)
+0:14      move second child to first child (temp float)
+0:14        direct index (temp float)
+0:14          'outp' (out 4-component vector of float)
+0:14          Constant:
+0:14            0 (const int)
+0:14        direct index (smooth temp float ClipDistance)
+0:14          'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:14          Constant:
+0:14            1 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp 4-component vector of uint)
+0:18          'uv4' (temp 4-component vector of uint)
+0:18          textureGatherOffsets (global 4-component vector of uint)
+0:18            'samp2dr' (uniform usampler2DRect)
+0:18            'c2D' (smooth in 2-component vector of float)
+0:18            'offsets' (temp 4-element array of 2-component vector of int)
+0:18            Constant:
+0:18              2 (const int)
+0:19      move second child to first child (temp 4-component vector of uint)
+0:19        'uv4' (temp 4-component vector of uint)
+0:19        textureGatherOffsets (global 4-component vector of uint)
+0:19          'samp2dr' (uniform usampler2DRect)
+0:19          'c2D' (smooth in 2-component vector of float)
+0:19          Constant:
+0:19            1 (const int)
+0:19            2 (const int)
+0:19            3 (const int)
+0:19            4 (const int)
+0:19            15 (const int)
+0:19            16 (const int)
+0:19            -2 (const int)
+0:19            0 (const int)
+0:19          Constant:
+0:19            2 (const int)
+0:20      Sequence
+0:20        move second child to first child (temp 4-component vector of float)
+0:20          'v4' (temp 4-component vector of float)
+0:20          textureGather (global 4-component vector of float)
+0:20            direct index (temp sampler2D)
+0:20              'arrayedSampler' (uniform 5-element array of sampler2D)
+0:20              Constant:
+0:20                0 (const int)
+0:20            'c2D' (smooth in 2-component vector of float)
+0:21      Sequence
+0:21        move second child to first child (temp 4-component vector of int)
+0:21          'iv4' (temp 4-component vector of int)
+0:21          textureGatherOffset (global 4-component vector of int)
+0:21            'isamp2DA' (uniform isampler2DArray)
+0:21            Constant:
+0:21              0.100000
+0:21              0.100000
+0:21              0.100000
+0:21            Constant:
+0:21              1 (const int)
+0:21              1 (const int)
+0:21            Constant:
+0:21              3 (const int)
+0:22      move second child to first child (temp 4-component vector of int)
+0:22        'iv4' (temp 4-component vector of int)
+0:22        textureGatherOffset (global 4-component vector of int)
+0:22          'isamp2DA' (uniform isampler2DArray)
+0:22          Constant:
+0:22            0.100000
+0:22            0.100000
+0:22            0.100000
+0:22          Constant:
+0:22            1 (const int)
+0:22            1 (const int)
+0:22          'i' (flat in int)
+0:23      move second child to first child (temp 4-component vector of int)
+0:23        'iv4' (temp 4-component vector of int)
+0:23        textureGatherOffset (global 4-component vector of int)
+0:23          'isamp2DA' (uniform isampler2DArray)
+0:23          Constant:
+0:23            0.100000
+0:23            0.100000
+0:23            0.100000
+0:23          Constant:
+0:23            1 (const int)
+0:23            1 (const int)
+0:23          Constant:
+0:23            4 (const int)
+0:24      move second child to first child (temp 4-component vector of int)
+0:24        'iv4' (temp 4-component vector of int)
+0:24        textureGatherOffset (global 4-component vector of int)
+0:24          'isamp2DA' (uniform isampler2DArray)
+0:24          Constant:
+0:24            0.100000
+0:24            0.100000
+0:24            0.100000
+0:24          Constant:
+0:24            1 (const int)
+0:24            1 (const int)
+0:24          Constant:
+0:24            3 (const int)
+0:25      move second child to first child (temp 4-component vector of int)
+0:25        'iv4' (temp 4-component vector of int)
+0:25        textureGatherOffset (global 4-component vector of int)
+0:25          'isamp2DA' (uniform isampler2DArray)
+0:25          Constant:
+0:25            0.100000
+0:25            0.100000
+0:25            0.100000
+0:25          Construct ivec2 (temp 2-component vector of int)
+0:25            'i' (flat in int)
+0:27      Sequence
+0:27        move second child to first child (temp 4-component vector of float)
+0:27          'c' (temp 4-component vector of float)
+0:27          'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:47  Function Definition: foo23( (global void)
+0:47    Function Parameters: 
+0:?     Sequence
+0:51      textureProjGradOffset (global float)
+0:51        'u2drs' (uniform sampler2DRectShadow)
+0:51        'outp' (out 4-component vector of float)
+0:51        Constant:
+0:51          0.000000
+0:51          0.000000
+0:51        Constant:
+0:51          0.000000
+0:51          0.000000
+0:51        Convert float to int (temp 2-component vector of int)
+0:51          'c2D' (smooth in 2-component vector of float)
+0:52      textureProjGradOffset (global float)
+0:52        'u2drs' (uniform sampler2DRectShadow)
+0:52        'outp' (out 4-component vector of float)
+0:52        Constant:
+0:52          0.000000
+0:52          0.000000
+0:52        Constant:
+0:52          0.000000
+0:52          0.000000
+0:52        Constant:
+0:52          3 (const int)
+0:52          4 (const int)
+0:53      textureProjGradOffset (global float)
+0:53        'u2drs' (uniform sampler2DRectShadow)
+0:53        'outp' (out 4-component vector of float)
+0:53        Constant:
+0:53          0.000000
+0:53          0.000000
+0:53        Constant:
+0:53          0.000000
+0:53          0.000000
+0:53        Constant:
+0:53          15 (const int)
+0:53          16 (const int)
+0:54      textureProjGradOffset (global float)
+0:54        'u2drs' (uniform sampler2DRectShadow)
+0:54        'outp' (out 4-component vector of float)
+0:54        Constant:
+0:54          0.000000
+0:54          0.000000
+0:54        Constant:
+0:54          0.000000
+0:54          0.000000
+0:54        Constant:
+0:54          -10 (const int)
+0:54          20 (const int)
+0:60  Function Definition: foo24( (global void)
+0:60    Function Parameters: 
+0:?     Sequence
+0:63      move second child to first child (temp 3-component vector of double)
+0:63        'df' (temp 3-component vector of double)
+0:63        Convert float to double (temp 3-component vector of double)
+0:63          Comma (global 3-component vector of float)
+0:63            move second child to first child (temp 3-component vector of float)
+0:63              'tempReturn' (global 3-component vector of float)
+0:63              modf (global 3-component vector of float)
+0:63                vector swizzle (temp 3-component vector of float)
+0:63                  'outp' (out 4-component vector of float)
+0:63                  Sequence
+0:63                    Constant:
+0:63                      0 (const int)
+0:63                    Constant:
+0:63                      1 (const int)
+0:63                    Constant:
+0:63                      2 (const int)
+0:63                'tempArg' (temp 3-component vector of float)
+0:63            move second child to first child (temp 3-component vector of double)
+0:63              'di' (temp 3-component vector of double)
+0:63              Convert float to double (temp 3-component vector of double)
+0:63                'tempArg' (temp 3-component vector of float)
+0:63            'tempReturn' (global 3-component vector of float)
+0:71  Function Definition: foodc1( (global void)
+0:71    Function Parameters: 
+0:73    Sequence
+0:73      Sequence
+0:73        move second child to first child (temp 2-component vector of float)
+0:73          'v2' (temp 2-component vector of float)
+0:73          dPdxFine (global 2-component vector of float)
+0:73            'in2' (smooth in 2-component vector of float)
+0:74      Sequence
+0:74        move second child to first child (temp 3-component vector of float)
+0:74          'v3' (temp 3-component vector of float)
+0:74          dPdyCoarse (global 3-component vector of float)
+0:74            'in3' (smooth in 3-component vector of float)
+0:75      Sequence
+0:75        move second child to first child (temp 4-component vector of float)
+0:75          'v4' (temp 4-component vector of float)
+0:75          add (temp 4-component vector of float)
+0:75            fwidthCoarse (global 4-component vector of float)
+0:75              'in4' (smooth in 4-component vector of float)
+0:75            fwidthFine (global 4-component vector of float)
+0:75              'in4' (smooth in 4-component vector of float)
+0:80  Function Definition: foodc2( (global void)
+0:80    Function Parameters: 
+0:82    Sequence
+0:82      Sequence
+0:82        move second child to first child (temp 2-component vector of float)
+0:82          'v2' (temp 2-component vector of float)
+0:82          dPdxFine (global 2-component vector of float)
+0:82            'in2' (smooth in 2-component vector of float)
+0:83      Sequence
+0:83        move second child to first child (temp 3-component vector of float)
+0:83          'v3' (temp 3-component vector of float)
+0:83          dPdyCoarse (global 3-component vector of float)
+0:83            'in3' (smooth in 3-component vector of float)
+0:84      Sequence
+0:84        move second child to first child (temp 4-component vector of float)
+0:84          'v4' (temp 4-component vector of float)
+0:84          add (temp 4-component vector of float)
+0:84            fwidthCoarse (global 4-component vector of float)
+0:84              'in4' (smooth in 4-component vector of float)
+0:84            fwidthFine (global 4-component vector of float)
+0:84              'in4' (smooth in 4-component vector of float)
+0:89      move second child to first child (temp 2-component vector of float)
+0:89        'v2' (temp 2-component vector of float)
+0:89        frexp (global 2-component vector of float)
+0:89          'v2' (temp 2-component vector of float)
+0:89          'i2' (temp 2-component vector of int)
+0:90      move second child to first child (temp 3-component vector of float)
+0:90        'v3' (temp 3-component vector of float)
+0:90        ldexp (global 3-component vector of float)
+0:90          'v3' (temp 3-component vector of float)
+0:90          'i3' (temp 3-component vector of int)
+0:92      move second child to first child (temp uint)
+0:92        'u1' (temp uint)
+0:92        PackUnorm4x8 (global uint)
+0:92          'v4' (temp 4-component vector of float)
+0:93      move second child to first child (temp uint)
+0:93        'u1' (temp uint)
+0:93        PackSnorm4x8 (global uint)
+0:93          'v4' (temp 4-component vector of float)
+0:94      move second child to first child (temp 4-component vector of float)
+0:94        'v4' (temp 4-component vector of float)
+0:94        UnpackUnorm4x8 (global 4-component vector of float)
+0:94          'u1' (temp uint)
+0:95      move second child to first child (temp 4-component vector of float)
+0:95        'v4' (temp 4-component vector of float)
+0:95        UnpackSnorm4x8 (global 4-component vector of float)
+0:95          'u1' (temp uint)
+0:99      move second child to first child (temp double)
+0:99        'd' (temp double)
+0:99        PackDouble2x32 (global double)
+0:99          'u2' (temp 2-component vector of uint)
+0:100      move second child to first child (temp 2-component vector of uint)
+0:100        'u2' (temp 2-component vector of uint)
+0:100        UnpackDouble2x32 (global 2-component vector of uint)
+0:100          'd' (temp double)
+0:117  Function Definition: interp( (global void)
+0:117    Function Parameters: 
+0:119    Sequence
+0:119      interpolateAtCentroid (global 2-component vector of float)
+0:119        'colorfc' (centroid flat in 2-component vector of float)
+0:120      interpolateAtCentroid (global 4-component vector of float)
+0:120        'colorSampIn' (smooth sample in 4-component vector of float)
+0:121      interpolateAtCentroid (global 4-component vector of float)
+0:121        'colorfsi' (noperspective in 4-component vector of float)
+0:122      interpolateAtCentroid (global float)
+0:122        'scalarIn' (smooth in float)
+0:123      Constant:
+0:123        0.000000
+0:124      interpolateAtCentroid (global 3-component vector of float)
+0:124        direct index (smooth sample temp 3-component vector of float)
+0:124          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:124          Constant:
+0:124            2 (const int)
+0:125      interpolateAtCentroid (global 2-component vector of float)
+0:125        vector swizzle (temp 2-component vector of float)
+0:125          direct index (smooth sample temp 3-component vector of float)
+0:125            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:125            Constant:
+0:125              2 (const int)
+0:125          Sequence
+0:125            Constant:
+0:125              0 (const int)
+0:125            Constant:
+0:125              1 (const int)
+0:127      Constant:
+0:127        0.000000
+0:128      interpolateAtSample (global 3-component vector of float)
+0:128        indirect index (smooth sample temp 3-component vector of float)
+0:128          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:128          'i' (flat in int)
+0:128        Constant:
+0:128          0 (const int)
+0:129      interpolateAtSample (global float)
+0:129        x: direct index for structure (global float)
+0:129          's1' (smooth in structure{global float x})
+0:129          Constant:
+0:129            0 (const int)
+0:129        Constant:
+0:129          2 (const int)
+0:130      interpolateAtSample (global float)
+0:130        'scalarIn' (smooth in float)
+0:130        Constant:
+0:130          1 (const int)
+0:132      Constant:
+0:132        0.000000
+0:133      interpolateAtOffset (global 3-component vector of float)
+0:133        direct index (smooth sample temp 3-component vector of float)
+0:133          'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:133          Constant:
+0:133            2 (const int)
+0:133        Constant:
+0:133          0.200000
+0:133          0.200000
+0:134      interpolateAtOffset (global 2-component vector of float)
+0:134        vector swizzle (temp 2-component vector of float)
+0:134          direct index (smooth sample temp 3-component vector of float)
+0:134            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:134            Constant:
+0:134              2 (const int)
+0:134          Sequence
+0:134            Constant:
+0:134              0 (const int)
+0:134            Constant:
+0:134              1 (const int)
+0:134        Constant:
+0:134          0.200000
+0:134          0.200000
+0:135      interpolateAtOffset (global float)
+0:135        add (temp float)
+0:135          'scalarIn' (smooth in float)
+0:135          'scalarIn' (smooth in float)
+0:135        Constant:
+0:135          0.200000
+0:135          0.200000
+0:136      interpolateAtOffset (global float)
+0:136        x: direct index for structure (global float)
+0:136          's2' (sample temp structure{global float x})
+0:136          Constant:
+0:136            0 (const int)
+0:136        Constant:
+0:136          0.200000
+0:136          0.200000
+0:139      interpolateAtCentroid (global float)
+0:139        'f' (temp float)
+0:140      interpolateAtSample (global 4-component vector of float)
+0:140        'outp' (out 4-component vector of float)
+0:140        Constant:
+0:140          0 (const int)
+0:161  Function Definition: qlod( (global void)
+0:161    Function Parameters: 
+0:?     Sequence
+0:168      move second child to first child (temp 2-component vector of float)
+0:168        'lod' (temp 2-component vector of float)
+0:168        textureQueryLod (global 2-component vector of float)
+0:168          'samp1D' (uniform sampler1D)
+0:168          'pf' (temp float)
+0:169      move second child to first child (temp 2-component vector of float)
+0:169        'lod' (temp 2-component vector of float)
+0:169        textureQueryLod (global 2-component vector of float)
+0:169          'isamp2D' (uniform isampler2D)
+0:169          'pf2' (temp 2-component vector of float)
+0:170      move second child to first child (temp 2-component vector of float)
+0:170        'lod' (temp 2-component vector of float)
+0:170        textureQueryLod (global 2-component vector of float)
+0:170          'usamp3D' (uniform usampler3D)
+0:170          'pf3' (temp 3-component vector of float)
+0:171      move second child to first child (temp 2-component vector of float)
+0:171        'lod' (temp 2-component vector of float)
+0:171        textureQueryLod (global 2-component vector of float)
+0:171          'sampCube' (uniform samplerCube)
+0:171          'pf3' (temp 3-component vector of float)
+0:172      move second child to first child (temp 2-component vector of float)
+0:172        'lod' (temp 2-component vector of float)
+0:172        textureQueryLod (global 2-component vector of float)
+0:172          'isamp1DA' (uniform isampler1DArray)
+0:172          'pf' (temp float)
+0:173      move second child to first child (temp 2-component vector of float)
+0:173        'lod' (temp 2-component vector of float)
+0:173        textureQueryLod (global 2-component vector of float)
+0:173          'usamp2DA' (uniform usampler2DArray)
+0:173          'pf2' (temp 2-component vector of float)
+0:174      move second child to first child (temp 2-component vector of float)
+0:174        'lod' (temp 2-component vector of float)
+0:174        textureQueryLod (global 2-component vector of float)
+0:174          'isampCubeA' (uniform isamplerCubeArray)
+0:174          'pf3' (temp 3-component vector of float)
+0:176      move second child to first child (temp 2-component vector of float)
+0:176        'lod' (temp 2-component vector of float)
+0:176        textureQueryLod (global 2-component vector of float)
+0:176          'samp1Ds' (uniform sampler1DShadow)
+0:176          'pf' (temp float)
+0:177      move second child to first child (temp 2-component vector of float)
+0:177        'lod' (temp 2-component vector of float)
+0:177        textureQueryLod (global 2-component vector of float)
+0:177          'samp2Ds' (uniform sampler2DShadow)
+0:177          'pf2' (temp 2-component vector of float)
+0:178      move second child to first child (temp 2-component vector of float)
+0:178        'lod' (temp 2-component vector of float)
+0:178        textureQueryLod (global 2-component vector of float)
+0:178          'sampCubes' (uniform samplerCubeShadow)
+0:178          'pf3' (temp 3-component vector of float)
+0:179      move second child to first child (temp 2-component vector of float)
+0:179        'lod' (temp 2-component vector of float)
+0:179        textureQueryLod (global 2-component vector of float)
+0:179          'samp1DAs' (uniform sampler1DArrayShadow)
+0:179          'pf' (temp float)
+0:180      move second child to first child (temp 2-component vector of float)
+0:180        'lod' (temp 2-component vector of float)
+0:180        textureQueryLod (global 2-component vector of float)
+0:180          'samp2DAs' (uniform sampler2DArrayShadow)
+0:180          'pf2' (temp 2-component vector of float)
+0:181      move second child to first child (temp 2-component vector of float)
+0:181        'lod' (temp 2-component vector of float)
+0:181        textureQueryLod (global 2-component vector of float)
+0:181          'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:181          'pf3' (temp 3-component vector of float)
+0:183      'lod' (temp 2-component vector of float)
+0:184      'lod' (temp 2-component vector of float)
+0:?   Linker Objects
+0:?     'c2D' (smooth in 2-component vector of float)
+0:?     'i' (flat in int)
+0:?     'outp' (out 4-component vector of float)
+0:?     'arrayedSampler' (uniform 5-element array of sampler2D)
+0:?     'samp2dr' (uniform usampler2DRect)
+0:?     'isamp2DA' (uniform isampler2DArray)
+0:?     'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
+0:?     'vl' (layout(location=4 ) smooth in 4-component vector of float)
+0:?     'vl2' (layout(location=6 ) smooth in 4-component vector of float)
+0:?     'uv3' (layout(location=3 ) uniform 3-component vector of float)
+0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:?     'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'u2drs' (uniform sampler2DRectShadow)
+0:?     'patchIn' (smooth patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'in1' (smooth in float)
+0:?     'in2' (smooth in 2-component vector of float)
+0:?     'in3' (smooth in 3-component vector of float)
+0:?     'in4' (smooth in 4-component vector of float)
+0:?     'colorSampIn' (smooth sample in 4-component vector of float)
+0:?     'colorSampleBad' (sample out 4-component vector of float)
+0:?     'colorfsi' (noperspective in 4-component vector of float)
+0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:?     'scalarIn' (smooth in float)
+0:?     'colorfc' (centroid flat in 2-component vector of float)
+0:?     's1' (smooth in structure{global float x})
+0:?     's2' (sample temp structure{global float x})
+0:?     'samp1D' (uniform sampler1D)
+0:?     'isamp2D' (uniform isampler2D)
+0:?     'usamp3D' (uniform usampler3D)
+0:?     'sampCube' (uniform samplerCube)
+0:?     'isamp1DA' (uniform isampler1DArray)
+0:?     'usamp2DA' (uniform usampler2DArray)
+0:?     'isampCubeA' (uniform isamplerCubeArray)
+0:?     'samp1Ds' (uniform sampler1DShadow)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+0:?     'sampCubes' (uniform samplerCubeShadow)
+0:?     'samp1DAs' (uniform sampler1DArrayShadow)
+0:?     'samp2DAs' (uniform sampler2DArrayShadow)
+0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:?     'sampBuf' (uniform samplerBuffer)
+0:?     'sampRect' (uniform sampler2DRect)
+
diff --git a/Test/baseResults/400.geom.out b/Test/baseResults/400.geom.out
index 856bf7f..f120327 100644
--- a/Test/baseResults/400.geom.out
+++ b/Test/baseResults/400.geom.out
@@ -1,369 +1,369 @@
-400.geom

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:12: 'invocations' : can only apply to a standalone qualifier 

-ERROR: 0:20: 'patch' : not supported in this stage: geometry

-ERROR: 0:20: 'gl_PointSize' : cannot add layout to redeclared block member 

-ERROR: 0:20: 'gl_PointSize' : cannot add patch to redeclared block member 

-ERROR: 0:25: 'length' :  array must first be sized by a redeclaration or layout qualifier

-ERROR: 0:36: 'length' :  array must first be sized by a redeclaration or layout qualifier

-ERROR: 0:40: 'triangles' : inconsistent input primitive for array size of colorBad

-ERROR: 0:44: 'triangles' : inconsistent input primitive for array size of colorbad2

-ERROR: 0:56: 'location' : overlapping use of location 4

-ERROR: 0:58: 'patch' : not supported in this stage: geometry

-ERROR: 0:59: 'patch' : not supported in this stage: geometry

-ERROR: 0:61: 'in' : type must be an array: scalar

-ERROR: 0:63: 'invocations' : can only apply to 'in' 

-ERROR: 0:64: 'max_vertices' : can only apply to 'out' 

-ERROR: 0:65: 'max_vertices' : can only apply to 'out' 

-ERROR: 0:65: 'invocations' : can only apply to 'in' 

-ERROR: 0:67: 'in' : type must be an array: inbls

-ERROR: 0:71: 'triangles' : inconsistent input primitive for array size of inbla

-ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:115: 'textureQueryLod' : no matching overloaded function found 

-ERROR: 0:115: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 0:116: 'textureQueryLod' : no matching overloaded function found 

-ERROR: 0:116: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'

-ERROR: 23 compilation errors.  No code generated.

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-invocations = 4

-max_vertices = 127

-input primitive = triangles

-output primitive = none

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:5    Sequence

-0:5      EmitStreamVertex (global void)

-0:5        Constant:

-0:5          1 (const int)

-0:6      EndStreamPrimitive (global void)

-0:6        Constant:

-0:6          0 (const int)

-0:7      EmitVertex (global void)

-0:8      EndPrimitive (global void)

-0:9      Sequence

-0:9        move second child to first child (temp int)

-0:9          'id' (temp int)

-0:9          'gl_InvocationID' (in int InvocationID)

-0:23  Function Definition: foo( (global void)

-0:23    Function Parameters: 

-0:25    Sequence

-0:25      Constant:

-0:25        1 (const int)

-0:26      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:26        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})

-0:26          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})

-0:26          Constant:

-0:26            1 (const int)

-0:26        Constant:

-0:26          0 (const int)

-0:34  Function Definition: foo2( (global void)

-0:34    Function Parameters: 

-0:36    Sequence

-0:36      Constant:

-0:36        1 (const int)

-0:37      Constant:

-0:37        3 (const int)

-0:46  Function Definition: foo3( (global void)

-0:46    Function Parameters: 

-0:48    Sequence

-0:48      Constant:

-0:48        3 (const int)

-0:49      Constant:

-0:49        3 (const int)

-0:50      Constant:

-0:50        3 (const int)

-0:51      Constant:

-0:51        3 (const int)

-0:75  Function Definition: bits( (global void)

-0:75    Function Parameters: 

-0:?     Sequence

-0:78      move second child to first child (temp 2-component vector of uint)

-0:78        'u2' (temp 2-component vector of uint)

-0:78        addCarry (global 2-component vector of uint)

-0:78          'u2' (temp 2-component vector of uint)

-0:78          'u2' (temp 2-component vector of uint)

-0:78          'u2' (temp 2-component vector of uint)

-0:80      move second child to first child (temp uint)

-0:80        'u1' (temp uint)

-0:80        subBorrow (global uint)

-0:80          'u1' (temp uint)

-0:80          'u1' (temp uint)

-0:80          'u1' (temp uint)

-0:82      uMulExtended (global void)

-0:82        'u4' (temp 4-component vector of uint)

-0:82        'u4' (temp 4-component vector of uint)

-0:82        'u4' (temp 4-component vector of uint)

-0:82        'u4' (temp 4-component vector of uint)

-0:84      iMulExtended (global void)

-0:84        'i4' (temp 4-component vector of int)

-0:84        'i4' (temp 4-component vector of int)

-0:84        'i4' (temp 4-component vector of int)

-0:84        'i4' (temp 4-component vector of int)

-0:86      move second child to first child (temp int)

-0:86        'i1' (temp int)

-0:86        bitfieldExtract (global int)

-0:86          'i1' (temp int)

-0:86          Constant:

-0:86            4 (const int)

-0:86          Constant:

-0:86            5 (const int)

-0:88      move second child to first child (temp 3-component vector of uint)

-0:88        'u3' (temp 3-component vector of uint)

-0:88        bitfieldExtract (global 3-component vector of uint)

-0:88          'u3' (temp 3-component vector of uint)

-0:88          Constant:

-0:88            4 (const int)

-0:88          Constant:

-0:88            5 (const int)

-0:90      move second child to first child (temp 3-component vector of int)

-0:90        'i3' (temp 3-component vector of int)

-0:90        bitfieldInsert (global 3-component vector of int)

-0:90          'i3' (temp 3-component vector of int)

-0:90          'i3' (temp 3-component vector of int)

-0:90          Constant:

-0:90            4 (const int)

-0:90          Constant:

-0:90            5 (const int)

-0:91      move second child to first child (temp uint)

-0:91        'u1' (temp uint)

-0:91        bitfieldInsert (global uint)

-0:91          'u1' (temp uint)

-0:91          'u1' (temp uint)

-0:91          Constant:

-0:91            4 (const int)

-0:91          Constant:

-0:91            5 (const int)

-0:93      move second child to first child (temp 2-component vector of int)

-0:93        'i2' (temp 2-component vector of int)

-0:93        bitFieldReverse (global 2-component vector of int)

-0:93          'i2' (temp 2-component vector of int)

-0:94      move second child to first child (temp 4-component vector of uint)

-0:94        'u4' (temp 4-component vector of uint)

-0:94        bitFieldReverse (global 4-component vector of uint)

-0:94          'u4' (temp 4-component vector of uint)

-0:95      move second child to first child (temp int)

-0:95        'i1' (temp int)

-0:95        bitCount (global int)

-0:95          'i1' (temp int)

-0:96      move second child to first child (temp 3-component vector of int)

-0:96        'i3' (temp 3-component vector of int)

-0:96        bitCount (global 3-component vector of int)

-0:96          'u3' (temp 3-component vector of uint)

-0:97      move second child to first child (temp 2-component vector of int)

-0:97        'i2' (temp 2-component vector of int)

-0:97        findLSB (global 2-component vector of int)

-0:97          'i2' (temp 2-component vector of int)

-0:98      move second child to first child (temp 4-component vector of int)

-0:98        'i4' (temp 4-component vector of int)

-0:98        findLSB (global 4-component vector of int)

-0:98          'u4' (temp 4-component vector of uint)

-0:99      move second child to first child (temp int)

-0:99        'i1' (temp int)

-0:99        findMSB (global int)

-0:99          'i1' (temp int)

-0:100      move second child to first child (temp 2-component vector of int)

-0:100        'i2' (temp 2-component vector of int)

-0:100        findMSB (global 2-component vector of int)

-0:100          'u2' (temp 2-component vector of uint)

-0:108  Function Definition: qlod( (global void)

-0:108    Function Parameters: 

-0:?     Sequence

-0:115      'lod' (temp 2-component vector of float)

-0:116      'lod' (temp 2-component vector of float)

-0:?   Linker Objects

-0:?     'bn' (in 3-element array of block{in int a})

-0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})

-0:?     'color' (in 3-element array of 4-component vector of float)

-0:?     'color2' (in 3-element array of 4-component vector of float)

-0:?     'colorS' (in 3-element array of 4-component vector of float)

-0:?     'colorBad' (in 4-element array of 4-component vector of float)

-0:?     'colorbad2' (in 2-element array of 4-component vector of float)

-0:?     'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)

-0:?     'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)

-0:?     'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)

-0:?     'patchIn' (patch in 3-element array of 4-component vector of float)

-0:?     'patchOut' (layout(stream=0 ) patch out 4-component vector of float)

-0:?     'scalar' (in float)

-0:?     'inbls' (in block{in int a})

-0:?     'inbla' (in 17-element array of block{in int a})

-0:?     'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)

-0:?     'samp1D' (uniform sampler1D)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-

-

-Linked geometry stage:

-

-ERROR: Linking geometry stage: At least one shader must specify an output layout primitive

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-invocations = 4

-max_vertices = 127

-input primitive = triangles

-output primitive = none

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:5    Sequence

-0:5      EmitStreamVertex (global void)

-0:5        Constant:

-0:5          1 (const int)

-0:6      EndStreamPrimitive (global void)

-0:6        Constant:

-0:6          0 (const int)

-0:7      EmitVertex (global void)

-0:8      EndPrimitive (global void)

-0:9      Sequence

-0:9        move second child to first child (temp int)

-0:9          'id' (temp int)

-0:9          'gl_InvocationID' (in int InvocationID)

-0:23  Function Definition: foo( (global void)

-0:23    Function Parameters: 

-0:25    Sequence

-0:25      Constant:

-0:25        1 (const int)

-0:26      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:26        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})

-0:26          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})

-0:26          Constant:

-0:26            1 (const int)

-0:26        Constant:

-0:26          0 (const int)

-0:34  Function Definition: foo2( (global void)

-0:34    Function Parameters: 

-0:36    Sequence

-0:36      Constant:

-0:36        1 (const int)

-0:37      Constant:

-0:37        3 (const int)

-0:46  Function Definition: foo3( (global void)

-0:46    Function Parameters: 

-0:48    Sequence

-0:48      Constant:

-0:48        3 (const int)

-0:49      Constant:

-0:49        3 (const int)

-0:50      Constant:

-0:50        3 (const int)

-0:51      Constant:

-0:51        3 (const int)

-0:75  Function Definition: bits( (global void)

-0:75    Function Parameters: 

-0:?     Sequence

-0:78      move second child to first child (temp 2-component vector of uint)

-0:78        'u2' (temp 2-component vector of uint)

-0:78        addCarry (global 2-component vector of uint)

-0:78          'u2' (temp 2-component vector of uint)

-0:78          'u2' (temp 2-component vector of uint)

-0:78          'u2' (temp 2-component vector of uint)

-0:80      move second child to first child (temp uint)

-0:80        'u1' (temp uint)

-0:80        subBorrow (global uint)

-0:80          'u1' (temp uint)

-0:80          'u1' (temp uint)

-0:80          'u1' (temp uint)

-0:82      uMulExtended (global void)

-0:82        'u4' (temp 4-component vector of uint)

-0:82        'u4' (temp 4-component vector of uint)

-0:82        'u4' (temp 4-component vector of uint)

-0:82        'u4' (temp 4-component vector of uint)

-0:84      iMulExtended (global void)

-0:84        'i4' (temp 4-component vector of int)

-0:84        'i4' (temp 4-component vector of int)

-0:84        'i4' (temp 4-component vector of int)

-0:84        'i4' (temp 4-component vector of int)

-0:86      move second child to first child (temp int)

-0:86        'i1' (temp int)

-0:86        bitfieldExtract (global int)

-0:86          'i1' (temp int)

-0:86          Constant:

-0:86            4 (const int)

-0:86          Constant:

-0:86            5 (const int)

-0:88      move second child to first child (temp 3-component vector of uint)

-0:88        'u3' (temp 3-component vector of uint)

-0:88        bitfieldExtract (global 3-component vector of uint)

-0:88          'u3' (temp 3-component vector of uint)

-0:88          Constant:

-0:88            4 (const int)

-0:88          Constant:

-0:88            5 (const int)

-0:90      move second child to first child (temp 3-component vector of int)

-0:90        'i3' (temp 3-component vector of int)

-0:90        bitfieldInsert (global 3-component vector of int)

-0:90          'i3' (temp 3-component vector of int)

-0:90          'i3' (temp 3-component vector of int)

-0:90          Constant:

-0:90            4 (const int)

-0:90          Constant:

-0:90            5 (const int)

-0:91      move second child to first child (temp uint)

-0:91        'u1' (temp uint)

-0:91        bitfieldInsert (global uint)

-0:91          'u1' (temp uint)

-0:91          'u1' (temp uint)

-0:91          Constant:

-0:91            4 (const int)

-0:91          Constant:

-0:91            5 (const int)

-0:93      move second child to first child (temp 2-component vector of int)

-0:93        'i2' (temp 2-component vector of int)

-0:93        bitFieldReverse (global 2-component vector of int)

-0:93          'i2' (temp 2-component vector of int)

-0:94      move second child to first child (temp 4-component vector of uint)

-0:94        'u4' (temp 4-component vector of uint)

-0:94        bitFieldReverse (global 4-component vector of uint)

-0:94          'u4' (temp 4-component vector of uint)

-0:95      move second child to first child (temp int)

-0:95        'i1' (temp int)

-0:95        bitCount (global int)

-0:95          'i1' (temp int)

-0:96      move second child to first child (temp 3-component vector of int)

-0:96        'i3' (temp 3-component vector of int)

-0:96        bitCount (global 3-component vector of int)

-0:96          'u3' (temp 3-component vector of uint)

-0:97      move second child to first child (temp 2-component vector of int)

-0:97        'i2' (temp 2-component vector of int)

-0:97        findLSB (global 2-component vector of int)

-0:97          'i2' (temp 2-component vector of int)

-0:98      move second child to first child (temp 4-component vector of int)

-0:98        'i4' (temp 4-component vector of int)

-0:98        findLSB (global 4-component vector of int)

-0:98          'u4' (temp 4-component vector of uint)

-0:99      move second child to first child (temp int)

-0:99        'i1' (temp int)

-0:99        findMSB (global int)

-0:99          'i1' (temp int)

-0:100      move second child to first child (temp 2-component vector of int)

-0:100        'i2' (temp 2-component vector of int)

-0:100        findMSB (global 2-component vector of int)

-0:100          'u2' (temp 2-component vector of uint)

-0:108  Function Definition: qlod( (global void)

-0:108    Function Parameters: 

-0:?     Sequence

-0:115      'lod' (temp 2-component vector of float)

-0:116      'lod' (temp 2-component vector of float)

-0:?   Linker Objects

-0:?     'bn' (in 3-element array of block{in int a})

-0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})

-0:?     'color' (in 3-element array of 4-component vector of float)

-0:?     'color2' (in 3-element array of 4-component vector of float)

-0:?     'colorS' (in 3-element array of 4-component vector of float)

-0:?     'colorBad' (in 4-element array of 4-component vector of float)

-0:?     'colorbad2' (in 2-element array of 4-component vector of float)

-0:?     'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)

-0:?     'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)

-0:?     'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)

-0:?     'patchIn' (patch in 3-element array of 4-component vector of float)

-0:?     'patchOut' (layout(stream=0 ) patch out 4-component vector of float)

-0:?     'scalar' (in float)

-0:?     'inbls' (in block{in int a})

-0:?     'inbla' (in 17-element array of block{in int a})

-0:?     'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)

-0:?     'samp1D' (uniform sampler1D)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-

+400.geom
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:12: 'invocations' : can only apply to a standalone qualifier 
+ERROR: 0:20: 'patch' : not supported in this stage: geometry
+ERROR: 0:20: 'gl_PointSize' : cannot add layout to redeclared block member 
+ERROR: 0:20: 'gl_PointSize' : cannot add patch to redeclared block member 
+ERROR: 0:25: 'length' :  array must first be sized by a redeclaration or layout qualifier
+ERROR: 0:36: 'length' :  array must first be sized by a redeclaration or layout qualifier
+ERROR: 0:40: 'triangles' : inconsistent input primitive for array size of colorBad
+ERROR: 0:44: 'triangles' : inconsistent input primitive for array size of colorbad2
+ERROR: 0:56: 'location' : overlapping use of location 4
+ERROR: 0:58: 'patch' : not supported in this stage: geometry
+ERROR: 0:59: 'patch' : not supported in this stage: geometry
+ERROR: 0:61: 'in' : type must be an array: scalar
+ERROR: 0:63: 'invocations' : can only apply to 'in' 
+ERROR: 0:64: 'max_vertices' : can only apply to 'out' 
+ERROR: 0:65: 'max_vertices' : can only apply to 'out' 
+ERROR: 0:65: 'invocations' : can only apply to 'in' 
+ERROR: 0:67: 'in' : type must be an array: inbls
+ERROR: 0:71: 'triangles' : inconsistent input primitive for array size of inbla
+ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:115: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:115: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 0:116: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:116: 'assign' :  cannot convert from 'const float' to 'temp 2-component vector of float'
+ERROR: 23 compilation errors.  No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+invocations = 4
+max_vertices = 127
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:5    Sequence
+0:5      EmitStreamVertex (global void)
+0:5        Constant:
+0:5          1 (const int)
+0:6      EndStreamPrimitive (global void)
+0:6        Constant:
+0:6          0 (const int)
+0:7      EmitVertex (global void)
+0:8      EndPrimitive (global void)
+0:9      Sequence
+0:9        move second child to first child (temp int)
+0:9          'id' (temp int)
+0:9          'gl_InvocationID' (in int InvocationID)
+0:23  Function Definition: foo( (global void)
+0:23    Function Parameters: 
+0:25    Sequence
+0:25      Constant:
+0:25        1 (const int)
+0:26      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:26        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26          Constant:
+0:26            1 (const int)
+0:26        Constant:
+0:26          0 (const int)
+0:34  Function Definition: foo2( (global void)
+0:34    Function Parameters: 
+0:36    Sequence
+0:36      Constant:
+0:36        1 (const int)
+0:37      Constant:
+0:37        3 (const int)
+0:46  Function Definition: foo3( (global void)
+0:46    Function Parameters: 
+0:48    Sequence
+0:48      Constant:
+0:48        3 (const int)
+0:49      Constant:
+0:49        3 (const int)
+0:50      Constant:
+0:50        3 (const int)
+0:51      Constant:
+0:51        3 (const int)
+0:75  Function Definition: bits( (global void)
+0:75    Function Parameters: 
+0:?     Sequence
+0:78      move second child to first child (temp 2-component vector of uint)
+0:78        'u2' (temp 2-component vector of uint)
+0:78        addCarry (global 2-component vector of uint)
+0:78          'u2' (temp 2-component vector of uint)
+0:78          'u2' (temp 2-component vector of uint)
+0:78          'u2' (temp 2-component vector of uint)
+0:80      move second child to first child (temp uint)
+0:80        'u1' (temp uint)
+0:80        subBorrow (global uint)
+0:80          'u1' (temp uint)
+0:80          'u1' (temp uint)
+0:80          'u1' (temp uint)
+0:82      uMulExtended (global void)
+0:82        'u4' (temp 4-component vector of uint)
+0:82        'u4' (temp 4-component vector of uint)
+0:82        'u4' (temp 4-component vector of uint)
+0:82        'u4' (temp 4-component vector of uint)
+0:84      iMulExtended (global void)
+0:84        'i4' (temp 4-component vector of int)
+0:84        'i4' (temp 4-component vector of int)
+0:84        'i4' (temp 4-component vector of int)
+0:84        'i4' (temp 4-component vector of int)
+0:86      move second child to first child (temp int)
+0:86        'i1' (temp int)
+0:86        bitfieldExtract (global int)
+0:86          'i1' (temp int)
+0:86          Constant:
+0:86            4 (const int)
+0:86          Constant:
+0:86            5 (const int)
+0:88      move second child to first child (temp 3-component vector of uint)
+0:88        'u3' (temp 3-component vector of uint)
+0:88        bitfieldExtract (global 3-component vector of uint)
+0:88          'u3' (temp 3-component vector of uint)
+0:88          Constant:
+0:88            4 (const int)
+0:88          Constant:
+0:88            5 (const int)
+0:90      move second child to first child (temp 3-component vector of int)
+0:90        'i3' (temp 3-component vector of int)
+0:90        bitfieldInsert (global 3-component vector of int)
+0:90          'i3' (temp 3-component vector of int)
+0:90          'i3' (temp 3-component vector of int)
+0:90          Constant:
+0:90            4 (const int)
+0:90          Constant:
+0:90            5 (const int)
+0:91      move second child to first child (temp uint)
+0:91        'u1' (temp uint)
+0:91        bitfieldInsert (global uint)
+0:91          'u1' (temp uint)
+0:91          'u1' (temp uint)
+0:91          Constant:
+0:91            4 (const int)
+0:91          Constant:
+0:91            5 (const int)
+0:93      move second child to first child (temp 2-component vector of int)
+0:93        'i2' (temp 2-component vector of int)
+0:93        bitFieldReverse (global 2-component vector of int)
+0:93          'i2' (temp 2-component vector of int)
+0:94      move second child to first child (temp 4-component vector of uint)
+0:94        'u4' (temp 4-component vector of uint)
+0:94        bitFieldReverse (global 4-component vector of uint)
+0:94          'u4' (temp 4-component vector of uint)
+0:95      move second child to first child (temp int)
+0:95        'i1' (temp int)
+0:95        bitCount (global int)
+0:95          'i1' (temp int)
+0:96      move second child to first child (temp 3-component vector of int)
+0:96        'i3' (temp 3-component vector of int)
+0:96        bitCount (global 3-component vector of int)
+0:96          'u3' (temp 3-component vector of uint)
+0:97      move second child to first child (temp 2-component vector of int)
+0:97        'i2' (temp 2-component vector of int)
+0:97        findLSB (global 2-component vector of int)
+0:97          'i2' (temp 2-component vector of int)
+0:98      move second child to first child (temp 4-component vector of int)
+0:98        'i4' (temp 4-component vector of int)
+0:98        findLSB (global 4-component vector of int)
+0:98          'u4' (temp 4-component vector of uint)
+0:99      move second child to first child (temp int)
+0:99        'i1' (temp int)
+0:99        findMSB (global int)
+0:99          'i1' (temp int)
+0:100      move second child to first child (temp 2-component vector of int)
+0:100        'i2' (temp 2-component vector of int)
+0:100        findMSB (global 2-component vector of int)
+0:100          'u2' (temp 2-component vector of uint)
+0:108  Function Definition: qlod( (global void)
+0:108    Function Parameters: 
+0:?     Sequence
+0:115      'lod' (temp 2-component vector of float)
+0:116      'lod' (temp 2-component vector of float)
+0:?   Linker Objects
+0:?     'bn' (in 3-element array of block{in int a})
+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:?     'color' (in 3-element array of 4-component vector of float)
+0:?     'color2' (in 3-element array of 4-component vector of float)
+0:?     'colorS' (in 3-element array of 4-component vector of float)
+0:?     'colorBad' (in 4-element array of 4-component vector of float)
+0:?     'colorbad2' (in 2-element array of 4-component vector of float)
+0:?     'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)
+0:?     'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)
+0:?     'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)
+0:?     'patchIn' (patch in 3-element array of 4-component vector of float)
+0:?     'patchOut' (layout(stream=0 ) patch out 4-component vector of float)
+0:?     'scalar' (in float)
+0:?     'inbls' (in block{in int a})
+0:?     'inbla' (in 17-element array of block{in int a})
+0:?     'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)
+0:?     'samp1D' (uniform sampler1D)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+invocations = 4
+max_vertices = 127
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:5    Sequence
+0:5      EmitStreamVertex (global void)
+0:5        Constant:
+0:5          1 (const int)
+0:6      EndStreamPrimitive (global void)
+0:6        Constant:
+0:6          0 (const int)
+0:7      EmitVertex (global void)
+0:8      EndPrimitive (global void)
+0:9      Sequence
+0:9        move second child to first child (temp int)
+0:9          'id' (temp int)
+0:9          'gl_InvocationID' (in int InvocationID)
+0:23  Function Definition: foo( (global void)
+0:23    Function Parameters: 
+0:25    Sequence
+0:25      Constant:
+0:25        1 (const int)
+0:26      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:26        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:26          Constant:
+0:26            1 (const int)
+0:26        Constant:
+0:26          0 (const int)
+0:34  Function Definition: foo2( (global void)
+0:34    Function Parameters: 
+0:36    Sequence
+0:36      Constant:
+0:36        1 (const int)
+0:37      Constant:
+0:37        3 (const int)
+0:46  Function Definition: foo3( (global void)
+0:46    Function Parameters: 
+0:48    Sequence
+0:48      Constant:
+0:48        3 (const int)
+0:49      Constant:
+0:49        3 (const int)
+0:50      Constant:
+0:50        3 (const int)
+0:51      Constant:
+0:51        3 (const int)
+0:75  Function Definition: bits( (global void)
+0:75    Function Parameters: 
+0:?     Sequence
+0:78      move second child to first child (temp 2-component vector of uint)
+0:78        'u2' (temp 2-component vector of uint)
+0:78        addCarry (global 2-component vector of uint)
+0:78          'u2' (temp 2-component vector of uint)
+0:78          'u2' (temp 2-component vector of uint)
+0:78          'u2' (temp 2-component vector of uint)
+0:80      move second child to first child (temp uint)
+0:80        'u1' (temp uint)
+0:80        subBorrow (global uint)
+0:80          'u1' (temp uint)
+0:80          'u1' (temp uint)
+0:80          'u1' (temp uint)
+0:82      uMulExtended (global void)
+0:82        'u4' (temp 4-component vector of uint)
+0:82        'u4' (temp 4-component vector of uint)
+0:82        'u4' (temp 4-component vector of uint)
+0:82        'u4' (temp 4-component vector of uint)
+0:84      iMulExtended (global void)
+0:84        'i4' (temp 4-component vector of int)
+0:84        'i4' (temp 4-component vector of int)
+0:84        'i4' (temp 4-component vector of int)
+0:84        'i4' (temp 4-component vector of int)
+0:86      move second child to first child (temp int)
+0:86        'i1' (temp int)
+0:86        bitfieldExtract (global int)
+0:86          'i1' (temp int)
+0:86          Constant:
+0:86            4 (const int)
+0:86          Constant:
+0:86            5 (const int)
+0:88      move second child to first child (temp 3-component vector of uint)
+0:88        'u3' (temp 3-component vector of uint)
+0:88        bitfieldExtract (global 3-component vector of uint)
+0:88          'u3' (temp 3-component vector of uint)
+0:88          Constant:
+0:88            4 (const int)
+0:88          Constant:
+0:88            5 (const int)
+0:90      move second child to first child (temp 3-component vector of int)
+0:90        'i3' (temp 3-component vector of int)
+0:90        bitfieldInsert (global 3-component vector of int)
+0:90          'i3' (temp 3-component vector of int)
+0:90          'i3' (temp 3-component vector of int)
+0:90          Constant:
+0:90            4 (const int)
+0:90          Constant:
+0:90            5 (const int)
+0:91      move second child to first child (temp uint)
+0:91        'u1' (temp uint)
+0:91        bitfieldInsert (global uint)
+0:91          'u1' (temp uint)
+0:91          'u1' (temp uint)
+0:91          Constant:
+0:91            4 (const int)
+0:91          Constant:
+0:91            5 (const int)
+0:93      move second child to first child (temp 2-component vector of int)
+0:93        'i2' (temp 2-component vector of int)
+0:93        bitFieldReverse (global 2-component vector of int)
+0:93          'i2' (temp 2-component vector of int)
+0:94      move second child to first child (temp 4-component vector of uint)
+0:94        'u4' (temp 4-component vector of uint)
+0:94        bitFieldReverse (global 4-component vector of uint)
+0:94          'u4' (temp 4-component vector of uint)
+0:95      move second child to first child (temp int)
+0:95        'i1' (temp int)
+0:95        bitCount (global int)
+0:95          'i1' (temp int)
+0:96      move second child to first child (temp 3-component vector of int)
+0:96        'i3' (temp 3-component vector of int)
+0:96        bitCount (global 3-component vector of int)
+0:96          'u3' (temp 3-component vector of uint)
+0:97      move second child to first child (temp 2-component vector of int)
+0:97        'i2' (temp 2-component vector of int)
+0:97        findLSB (global 2-component vector of int)
+0:97          'i2' (temp 2-component vector of int)
+0:98      move second child to first child (temp 4-component vector of int)
+0:98        'i4' (temp 4-component vector of int)
+0:98        findLSB (global 4-component vector of int)
+0:98          'u4' (temp 4-component vector of uint)
+0:99      move second child to first child (temp int)
+0:99        'i1' (temp int)
+0:99        findMSB (global int)
+0:99          'i1' (temp int)
+0:100      move second child to first child (temp 2-component vector of int)
+0:100        'i2' (temp 2-component vector of int)
+0:100        findMSB (global 2-component vector of int)
+0:100          'u2' (temp 2-component vector of uint)
+0:108  Function Definition: qlod( (global void)
+0:108    Function Parameters: 
+0:?     Sequence
+0:115      'lod' (temp 2-component vector of float)
+0:116      'lod' (temp 2-component vector of float)
+0:?   Linker Objects
+0:?     'bn' (in 3-element array of block{in int a})
+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize})
+0:?     'color' (in 3-element array of 4-component vector of float)
+0:?     'color2' (in 3-element array of 4-component vector of float)
+0:?     'colorS' (in 3-element array of 4-component vector of float)
+0:?     'colorBad' (in 4-element array of 4-component vector of float)
+0:?     'colorbad2' (in 2-element array of 4-component vector of float)
+0:?     'cva' (layout(location=4 ) in 3-element array of 4-component vector of float)
+0:?     'cvb' (layout(location=5 ) in 3-element array of 4-component vector of float)
+0:?     'cmc' (layout(location=2 ) in 3-element array of 3X3 matrix of float)
+0:?     'patchIn' (patch in 3-element array of 4-component vector of float)
+0:?     'patchOut' (layout(stream=0 ) patch out 4-component vector of float)
+0:?     'scalar' (in float)
+0:?     'inbls' (in block{in int a})
+0:?     'inbla' (in 17-element array of block{in int a})
+0:?     'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float)
+0:?     'samp1D' (uniform sampler1D)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+
diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out
index a1401d3..6a0b895 100644
--- a/Test/baseResults/400.tesc.out
+++ b/Test/baseResults/400.tesc.out
@@ -1,409 +1,409 @@
-400.tesc

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader 

-ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control 

-ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() 

-ERROR: 0:64: 'vertices' : can only apply to 'out' 

-ERROR: 0:65: 'vertices' : cannot change previously set layout value 

-ERROR: 0:69: '[' :  array index out of range '4'

-ERROR: 0:71: '' : tessellation control barrier() must be in main() 

-ERROR: 0:74: 'in' : type must be an array: ina

-ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:83: 'location' : overlapping use of location 4

-ERROR: 0:87: 'location' : overlapping use of location 4

-ERROR: 18 compilation errors.  No code generated.

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-vertices = 4

-ERROR: node is still EOpNull!

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:15    Sequence

-0:15      Barrier (global void)

-0:17      Sequence

-0:17        move second child to first child (temp int)

-0:17          'a' (temp int)

-0:17          Constant:

-0:17            5392 (const int)

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'p' (temp 4-component vector of float)

-0:23          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:23              Constant:

-0:23                1 (const int)

-0:23            Constant:

-0:23              0 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'ps' (temp float)

-0:24          gl_PointSize: direct index for structure (in float PointSize)

-0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:24              Constant:

-0:24                1 (const int)

-0:24            Constant:

-0:24              1 (const int)

-0:25      Sequence

-0:25        move second child to first child (temp float)

-0:25          'cd' (temp float)

-0:25          direct index (temp float ClipDistance)

-0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:25                Constant:

-0:25                  1 (const int)

-0:25              Constant:

-0:25                2 (const int)

-0:25            Constant:

-0:25              2 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'pvi' (temp int)

-0:27          'gl_PatchVerticesIn' (in int PatchVertices)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'pid' (temp int)

-0:28          'gl_PrimitiveID' (in int PrimitiveID)

-0:29      Sequence

-0:29        move second child to first child (temp int)

-0:29          'iid' (temp int)

-0:29          'gl_InvocationID' (in int InvocationID)

-0:31      move second child to first child (temp 4-component vector of float)

-0:31        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:31            'gl_InvocationID' (in int InvocationID)

-0:31          Constant:

-0:31            0 (const int)

-0:31        'p' (temp 4-component vector of float)

-0:32      move second child to first child (temp float)

-0:32        gl_PointSize: direct index for structure (out float PointSize)

-0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32            'gl_InvocationID' (in int InvocationID)

-0:32          Constant:

-0:32            1 (const int)

-0:32        'ps' (temp float)

-0:33      move second child to first child (temp float)

-0:33        direct index (temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)

-0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_InvocationID' (in int InvocationID)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            1 (const int)

-0:33        'cd' (temp float)

-0:35      move second child to first child (temp float)

-0:35        direct index (patch temp float TessLevelOuter)

-0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)

-0:35          Constant:

-0:35            3 (const int)

-0:35        Constant:

-0:35          3.200000

-0:36      move second child to first child (temp float)

-0:36        direct index (patch temp float TessLevelInner)

-0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)

-0:36          Constant:

-0:36            1 (const int)

-0:36        Constant:

-0:36          1.300000

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Greater Than (temp bool)

-0:38          'a' (temp int)

-0:38          Constant:

-0:38            10 (const int)

-0:38        true case

-0:39        Barrier (global void)

-0:38        false case

-0:41        Barrier (global void)

-0:43      Barrier (global void)

-0:47      Loop with condition not tested first

-0:47        Loop Condition

-0:47        Compare Greater Than (temp bool)

-0:47          'a' (temp int)

-0:47          Constant:

-0:47            10 (const int)

-0:47        Loop Body

-0:46        Sequence

-0:46          Barrier (global void)

-0:49      switch

-0:49      condition

-0:49        'a' (temp int)

-0:49      body

-0:49        Sequence

-0:50          default: 

-0:?           Sequence

-0:51            Barrier (global void)

-0:52            Branch: Break

-0:54      Test condition and select (temp int)

-0:54        Condition

-0:54        Compare Less Than (temp bool)

-0:54          'a' (temp int)

-0:54          Constant:

-0:54            12 (const int)

-0:54        true case

-0:54        'a' (temp int)

-0:54        false case

-0:54        Comma (temp int)

-0:54          Barrier (global void)

-0:54          'a' (temp int)

-0:56      Sequence

-0:56        Barrier (global void)

-0:59      Branch: Return

-0:61      Barrier (global void)

-0:67  Function Definition: foo( (global void)

-0:67    Function Parameters: 

-0:69    Sequence

-0:69      gl_PointSize: direct index for structure (out float PointSize)

-0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:69          Constant:

-0:69            4 (const int)

-0:69        Constant:

-0:69          1 (const int)

-0:71      Barrier (global void)

-0:91  Function Definition: foop( (global void)

-0:91    Function Parameters: 

-0:?     Sequence

-0:95      multiply second child into first child (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:96      move second child to first child (temp 3-component vector of float)

-0:96        'pv3' (temp 3-component vector of float)

-0:96        fma (global 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:97      move second child to first child (temp double)

-0:97        'd' (temp double)

-0:97        fma (global double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 4-element array of int)

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'pv3' (temp 3-component vector of float)

-0:?     'pinbi' (patch out block{out int a})

-

-

-Linked tessellation control stage:

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-vertices = 4

-ERROR: node is still EOpNull!

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:15    Sequence

-0:15      Barrier (global void)

-0:17      Sequence

-0:17        move second child to first child (temp int)

-0:17          'a' (temp int)

-0:17          Constant:

-0:17            5392 (const int)

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'p' (temp 4-component vector of float)

-0:23          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:23              Constant:

-0:23                1 (const int)

-0:23            Constant:

-0:23              0 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'ps' (temp float)

-0:24          gl_PointSize: direct index for structure (in float PointSize)

-0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:24              Constant:

-0:24                1 (const int)

-0:24            Constant:

-0:24              1 (const int)

-0:25      Sequence

-0:25        move second child to first child (temp float)

-0:25          'cd' (temp float)

-0:25          direct index (temp float ClipDistance)

-0:25            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:25                Constant:

-0:25                  1 (const int)

-0:25              Constant:

-0:25                2 (const int)

-0:25            Constant:

-0:25              2 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'pvi' (temp int)

-0:27          'gl_PatchVerticesIn' (in int PatchVertices)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'pid' (temp int)

-0:28          'gl_PrimitiveID' (in int PrimitiveID)

-0:29      Sequence

-0:29        move second child to first child (temp int)

-0:29          'iid' (temp int)

-0:29          'gl_InvocationID' (in int InvocationID)

-0:31      move second child to first child (temp 4-component vector of float)

-0:31        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:31            'gl_InvocationID' (in int InvocationID)

-0:31          Constant:

-0:31            0 (const int)

-0:31        'p' (temp 4-component vector of float)

-0:32      move second child to first child (temp float)

-0:32        gl_PointSize: direct index for structure (out float PointSize)

-0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:32            'gl_InvocationID' (in int InvocationID)

-0:32          Constant:

-0:32            1 (const int)

-0:32        'ps' (temp float)

-0:33      move second child to first child (temp float)

-0:33        direct index (temp float ClipDistance)

-0:33          gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)

-0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_InvocationID' (in int InvocationID)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            1 (const int)

-0:33        'cd' (temp float)

-0:35      move second child to first child (temp float)

-0:35        direct index (patch temp float TessLevelOuter)

-0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)

-0:35          Constant:

-0:35            3 (const int)

-0:35        Constant:

-0:35          3.200000

-0:36      move second child to first child (temp float)

-0:36        direct index (patch temp float TessLevelInner)

-0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)

-0:36          Constant:

-0:36            1 (const int)

-0:36        Constant:

-0:36          1.300000

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Greater Than (temp bool)

-0:38          'a' (temp int)

-0:38          Constant:

-0:38            10 (const int)

-0:38        true case

-0:39        Barrier (global void)

-0:38        false case

-0:41        Barrier (global void)

-0:43      Barrier (global void)

-0:47      Loop with condition not tested first

-0:47        Loop Condition

-0:47        Compare Greater Than (temp bool)

-0:47          'a' (temp int)

-0:47          Constant:

-0:47            10 (const int)

-0:47        Loop Body

-0:46        Sequence

-0:46          Barrier (global void)

-0:49      switch

-0:49      condition

-0:49        'a' (temp int)

-0:49      body

-0:49        Sequence

-0:50          default: 

-0:?           Sequence

-0:51            Barrier (global void)

-0:52            Branch: Break

-0:54      Test condition and select (temp int)

-0:54        Condition

-0:54        Compare Less Than (temp bool)

-0:54          'a' (temp int)

-0:54          Constant:

-0:54            12 (const int)

-0:54        true case

-0:54        'a' (temp int)

-0:54        false case

-0:54        Comma (temp int)

-0:54          Barrier (global void)

-0:54          'a' (temp int)

-0:56      Sequence

-0:56        Barrier (global void)

-0:59      Branch: Return

-0:61      Barrier (global void)

-0:67  Function Definition: foo( (global void)

-0:67    Function Parameters: 

-0:69    Sequence

-0:69      gl_PointSize: direct index for structure (out float PointSize)

-0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:69          Constant:

-0:69            4 (const int)

-0:69        Constant:

-0:69          1 (const int)

-0:71      Barrier (global void)

-0:91  Function Definition: foop( (global void)

-0:91    Function Parameters: 

-0:?     Sequence

-0:95      multiply second child into first child (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:95        'pv3' (temp 3-component vector of float)

-0:96      move second child to first child (temp 3-component vector of float)

-0:96        'pv3' (temp 3-component vector of float)

-0:96        fma (global 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:96          'pv3' (temp 3-component vector of float)

-0:97      move second child to first child (temp double)

-0:97        'd' (temp double)

-0:97        fma (global double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:97          'd' (temp double)

-0:?   Linker Objects

-0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 4-element array of int)

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)

-0:?     'pv3' (temp 3-component vector of float)

-0:?     'pinbi' (patch out block{out int a})

-

+400.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader 
+ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control 
+ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() 
+ERROR: 0:64: 'vertices' : can only apply to 'out' 
+ERROR: 0:65: 'vertices' : cannot change previously set layout value 
+ERROR: 0:69: '[' :  array index out of range '4'
+ERROR: 0:71: '' : tessellation control barrier() must be in main() 
+ERROR: 0:74: 'in' : type must be an array: ina
+ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:83: 'location' : overlapping use of location 4
+ERROR: 0:87: 'location' : overlapping use of location 4
+ERROR: 18 compilation errors.  No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      Barrier (global void)
+0:17      Sequence
+0:17        move second child to first child (temp int)
+0:17          'a' (temp int)
+0:17          Constant:
+0:17            5392 (const int)
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'p' (temp 4-component vector of float)
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:23              Constant:
+0:23                1 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'ps' (temp float)
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:24              Constant:
+0:24                1 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:25      Sequence
+0:25        move second child to first child (temp float)
+0:25          'cd' (temp float)
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:25                Constant:
+0:25                  1 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'pvi' (temp int)
+0:27          'gl_PatchVerticesIn' (in int PatchVertices)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'pid' (temp int)
+0:28          'gl_PrimitiveID' (in int PrimitiveID)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'iid' (temp int)
+0:29          'gl_InvocationID' (in int InvocationID)
+0:31      move second child to first child (temp 4-component vector of float)
+0:31        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:31            'gl_InvocationID' (in int InvocationID)
+0:31          Constant:
+0:31            0 (const int)
+0:31        'p' (temp 4-component vector of float)
+0:32      move second child to first child (temp float)
+0:32        gl_PointSize: direct index for structure (out float PointSize)
+0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32            'gl_InvocationID' (in int InvocationID)
+0:32          Constant:
+0:32            1 (const int)
+0:32        'ps' (temp float)
+0:33      move second child to first child (temp float)
+0:33        direct index (temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_InvocationID' (in int InvocationID)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            1 (const int)
+0:33        'cd' (temp float)
+0:35      move second child to first child (temp float)
+0:35        direct index (patch temp float TessLevelOuter)
+0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35          Constant:
+0:35            3 (const int)
+0:35        Constant:
+0:35          3.200000
+0:36      move second child to first child (temp float)
+0:36        direct index (patch temp float TessLevelInner)
+0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36          Constant:
+0:36            1 (const int)
+0:36        Constant:
+0:36          1.300000
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Greater Than (temp bool)
+0:38          'a' (temp int)
+0:38          Constant:
+0:38            10 (const int)
+0:38        true case
+0:39        Barrier (global void)
+0:38        false case
+0:41        Barrier (global void)
+0:43      Barrier (global void)
+0:47      Loop with condition not tested first
+0:47        Loop Condition
+0:47        Compare Greater Than (temp bool)
+0:47          'a' (temp int)
+0:47          Constant:
+0:47            10 (const int)
+0:47        Loop Body
+0:46        Sequence
+0:46          Barrier (global void)
+0:49      switch
+0:49      condition
+0:49        'a' (temp int)
+0:49      body
+0:49        Sequence
+0:50          default: 
+0:?           Sequence
+0:51            Barrier (global void)
+0:52            Branch: Break
+0:54      Test condition and select (temp int)
+0:54        Condition
+0:54        Compare Less Than (temp bool)
+0:54          'a' (temp int)
+0:54          Constant:
+0:54            12 (const int)
+0:54        true case
+0:54        'a' (temp int)
+0:54        false case
+0:54        Comma (temp int)
+0:54          Barrier (global void)
+0:54          'a' (temp int)
+0:56      Sequence
+0:56        Barrier (global void)
+0:59      Branch: Return
+0:61      Barrier (global void)
+0:67  Function Definition: foo( (global void)
+0:67    Function Parameters: 
+0:69    Sequence
+0:69      gl_PointSize: direct index for structure (out float PointSize)
+0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:69          Constant:
+0:69            4 (const int)
+0:69        Constant:
+0:69          1 (const int)
+0:71      Barrier (global void)
+0:91  Function Definition: foop( (global void)
+0:91    Function Parameters: 
+0:?     Sequence
+0:95      multiply second child into first child (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:96      move second child to first child (temp 3-component vector of float)
+0:96        'pv3' (temp 3-component vector of float)
+0:96        fma (global 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:97      move second child to first child (temp double)
+0:97        'd' (temp double)
+0:97        fma (global double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 4-element array of int)
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'pv3' (temp 3-component vector of float)
+0:?     'pinbi' (patch out block{out int a})
+
+
+Linked tessellation control stage:
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      Barrier (global void)
+0:17      Sequence
+0:17        move second child to first child (temp int)
+0:17          'a' (temp int)
+0:17          Constant:
+0:17            5392 (const int)
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'p' (temp 4-component vector of float)
+0:23          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:23            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:23              Constant:
+0:23                1 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'ps' (temp float)
+0:24          gl_PointSize: direct index for structure (in float PointSize)
+0:24            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:24              Constant:
+0:24                1 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:25      Sequence
+0:25        move second child to first child (temp float)
+0:25          'cd' (temp float)
+0:25          direct index (temp float ClipDistance)
+0:25            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:25              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:25                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:25                Constant:
+0:25                  1 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'pvi' (temp int)
+0:27          'gl_PatchVerticesIn' (in int PatchVertices)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'pid' (temp int)
+0:28          'gl_PrimitiveID' (in int PrimitiveID)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'iid' (temp int)
+0:29          'gl_InvocationID' (in int InvocationID)
+0:31      move second child to first child (temp 4-component vector of float)
+0:31        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:31          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:31            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:31            'gl_InvocationID' (in int InvocationID)
+0:31          Constant:
+0:31            0 (const int)
+0:31        'p' (temp 4-component vector of float)
+0:32      move second child to first child (temp float)
+0:32        gl_PointSize: direct index for structure (out float PointSize)
+0:32          indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:32            'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:32            'gl_InvocationID' (in int InvocationID)
+0:32          Constant:
+0:32            1 (const int)
+0:32        'ps' (temp float)
+0:33      move second child to first child (temp float)
+0:33        direct index (temp float ClipDistance)
+0:33          gl_ClipDistance: direct index for structure (out 1-element array of float ClipDistance)
+0:33            indirect index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_InvocationID' (in int InvocationID)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            1 (const int)
+0:33        'cd' (temp float)
+0:35      move second child to first child (temp float)
+0:35        direct index (patch temp float TessLevelOuter)
+0:35          'gl_TessLevelOuter' (patch out 4-element array of float TessLevelOuter)
+0:35          Constant:
+0:35            3 (const int)
+0:35        Constant:
+0:35          3.200000
+0:36      move second child to first child (temp float)
+0:36        direct index (patch temp float TessLevelInner)
+0:36          'gl_TessLevelInner' (patch out 2-element array of float TessLevelInner)
+0:36          Constant:
+0:36            1 (const int)
+0:36        Constant:
+0:36          1.300000
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Greater Than (temp bool)
+0:38          'a' (temp int)
+0:38          Constant:
+0:38            10 (const int)
+0:38        true case
+0:39        Barrier (global void)
+0:38        false case
+0:41        Barrier (global void)
+0:43      Barrier (global void)
+0:47      Loop with condition not tested first
+0:47        Loop Condition
+0:47        Compare Greater Than (temp bool)
+0:47          'a' (temp int)
+0:47          Constant:
+0:47            10 (const int)
+0:47        Loop Body
+0:46        Sequence
+0:46          Barrier (global void)
+0:49      switch
+0:49      condition
+0:49        'a' (temp int)
+0:49      body
+0:49        Sequence
+0:50          default: 
+0:?           Sequence
+0:51            Barrier (global void)
+0:52            Branch: Break
+0:54      Test condition and select (temp int)
+0:54        Condition
+0:54        Compare Less Than (temp bool)
+0:54          'a' (temp int)
+0:54          Constant:
+0:54            12 (const int)
+0:54        true case
+0:54        'a' (temp int)
+0:54        false case
+0:54        Comma (temp int)
+0:54          Barrier (global void)
+0:54          'a' (temp int)
+0:56      Sequence
+0:56        Barrier (global void)
+0:59      Branch: Return
+0:61      Barrier (global void)
+0:67  Function Definition: foo( (global void)
+0:67    Function Parameters: 
+0:69    Sequence
+0:69      gl_PointSize: direct index for structure (out float PointSize)
+0:69        direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:69          'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:69          Constant:
+0:69            4 (const int)
+0:69        Constant:
+0:69          1 (const int)
+0:71      Barrier (global void)
+0:91  Function Definition: foop( (global void)
+0:91    Function Parameters: 
+0:?     Sequence
+0:95      multiply second child into first child (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:95        'pv3' (temp 3-component vector of float)
+0:96      move second child to first child (temp 3-component vector of float)
+0:96        'pv3' (temp 3-component vector of float)
+0:96        fma (global 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:96          'pv3' (temp 3-component vector of float)
+0:97      move second child to first child (temp double)
+0:97        'd' (temp double)
+0:97        fma (global double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:97          'd' (temp double)
+0:?   Linker Objects
+0:?     'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 4-element array of int)
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'ivla' (layout(location=3 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=4 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=3 ) out 4-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'ovlc' (layout(location=4 ) out 4-element array of 4-component vector of float)
+0:?     'pv3' (temp 3-component vector of float)
+0:?     'pinbi' (patch out block{out int a})
+
diff --git a/Test/baseResults/400.tese.out b/Test/baseResults/400.tese.out
index 53f4243..55670f8 100644
--- a/Test/baseResults/400.tese.out
+++ b/Test/baseResults/400.tese.out
@@ -1,281 +1,281 @@
-400.tese

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:5: 'triangles' : cannot change previously set input primitive 

-ERROR: 0:6: 'isolines' : cannot change previously set input primitive 

-ERROR: 0:8: 'ccw' : cannot change previously set vertex order 

-ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing 

-ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing 

-ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader 

-ERROR: 0:22: 'barrier' : no matching overloaded function found 

-ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch 

-ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 

-ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 

-ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

-ERROR: 0:64: 'quads' : cannot apply to 'out' 

-ERROR: 0:64: 'cw' : can only apply to 'in' 

-ERROR: 0:65: 'triangles' : cannot apply to 'out' 

-ERROR: 0:66: 'isolines' : cannot apply to 'out' 

-ERROR: 0:67: 'cw' : can only apply to 'in' 

-ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' 

-ERROR: 0:69: 'equal_spacing' : can only apply to 'in' 

-ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' 

-ERROR: 0:71: 'point_mode' : can only apply to 'in' 

-ERROR: 0:73: 'in' : type must be an array: ina

-ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:78: 'in' : type must be an array: bla

-ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 

-ERROR: 0:96: 'location' : overlapping use of location 24

-ERROR: 0:99: 'location' : overlapping use of location 24

-ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 

-ERROR: 30 compilation errors.  No code generated.

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:22    Sequence

-0:22      Constant:

-0:22        0.000000

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'a' (temp int)

-0:24          Constant:

-0:24            1512 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp 4-component vector of float)

-0:32          'p' (temp 4-component vector of float)

-0:32          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:32              Constant:

-0:32                1 (const int)

-0:32            Constant:

-0:32              0 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp float)

-0:33          'ps' (temp float)

-0:33          gl_PointSize: direct index for structure (in float PointSize)

-0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              1 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp float)

-0:34          'cd' (temp float)

-0:34          direct index (temp float ClipDistance)

-0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:34                Constant:

-0:34                  1 (const int)

-0:34              Constant:

-0:34                2 (const int)

-0:34            Constant:

-0:34              2 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp int)

-0:36          'pvi' (temp int)

-0:36          'gl_PatchVerticesIn' (in int PatchVertices)

-0:37      Sequence

-0:37        move second child to first child (temp int)

-0:37          'pid' (temp int)

-0:37          'gl_PrimitiveID' (in int PrimitiveID)

-0:38      Sequence

-0:38        move second child to first child (temp 3-component vector of float)

-0:38          'tc' (temp 3-component vector of float)

-0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)

-0:39      Sequence

-0:39        move second child to first child (temp float)

-0:39          'tlo' (temp float)

-0:39          direct index (patch temp float TessLevelOuter)

-0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)

-0:39            Constant:

-0:39              3 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp float)

-0:40          'tli' (temp float)

-0:40          direct index (patch temp float TessLevelInner)

-0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)

-0:40            Constant:

-0:40              1 (const int)

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:42          Constant:

-0:42            0 (const uint)

-0:42        'p' (temp 4-component vector of float)

-0:43      move second child to first child (temp float)

-0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:43          Constant:

-0:43            1 (const uint)

-0:43        'ps' (temp float)

-0:44      move second child to first child (temp float)

-0:44        direct index (temp float ClipDistance)

-0:44          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)

-0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:44            Constant:

-0:44              2 (const uint)

-0:44          Constant:

-0:44            2 (const int)

-0:44        'cd' (temp float)

-0:?   Linker Objects

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'badp1' (smooth patch in 4-component vector of float)

-0:?     'badp2' (flat patch in 4-component vector of float)

-0:?     'badp3' (noperspective patch in 4-component vector of float)

-0:?     'badp4' (patch sample in 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'bla' (in block{in int f})

-0:?     'blb' (in 32-element array of block{in int f})

-0:?     'blc' (in 32-element array of block{in int f})

-0:?     'bld' (in 32-element array of block{in int f})

-0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)

-0:?     'pinbi' (patch in block{in int a})

-

-

-Linked tessellation evaluation stage:

-

-

-Shader version: 400

-Requested GL_ARB_separate_shader_objects

-input primitive = quads

-vertex spacing = fractional_odd_spacing

-triangle order = cw

-using point mode

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:22    Sequence

-0:22      Constant:

-0:22        0.000000

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'a' (temp int)

-0:24          Constant:

-0:24            1512 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp 4-component vector of float)

-0:32          'p' (temp 4-component vector of float)

-0:32          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:32              Constant:

-0:32                1 (const int)

-0:32            Constant:

-0:32              0 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp float)

-0:33          'ps' (temp float)

-0:33          gl_PointSize: direct index for structure (in float PointSize)

-0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              1 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp float)

-0:34          'cd' (temp float)

-0:34          direct index (temp float ClipDistance)

-0:34            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:34                Constant:

-0:34                  1 (const int)

-0:34              Constant:

-0:34                2 (const int)

-0:34            Constant:

-0:34              2 (const int)

-0:36      Sequence

-0:36        move second child to first child (temp int)

-0:36          'pvi' (temp int)

-0:36          'gl_PatchVerticesIn' (in int PatchVertices)

-0:37      Sequence

-0:37        move second child to first child (temp int)

-0:37          'pid' (temp int)

-0:37          'gl_PrimitiveID' (in int PrimitiveID)

-0:38      Sequence

-0:38        move second child to first child (temp 3-component vector of float)

-0:38          'tc' (temp 3-component vector of float)

-0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)

-0:39      Sequence

-0:39        move second child to first child (temp float)

-0:39          'tlo' (temp float)

-0:39          direct index (patch temp float TessLevelOuter)

-0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)

-0:39            Constant:

-0:39              3 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp float)

-0:40          'tli' (temp float)

-0:40          direct index (patch temp float TessLevelInner)

-0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)

-0:40            Constant:

-0:40              1 (const int)

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:42          Constant:

-0:42            0 (const uint)

-0:42        'p' (temp 4-component vector of float)

-0:43      move second child to first child (temp float)

-0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)

-0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:43          Constant:

-0:43            1 (const uint)

-0:43        'ps' (temp float)

-0:44      move second child to first child (temp float)

-0:44        direct index (temp float ClipDistance)

-0:44          gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)

-0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:44            Constant:

-0:44              2 (const uint)

-0:44          Constant:

-0:44            2 (const int)

-0:44        'cd' (temp float)

-0:?   Linker Objects

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (patch out 4-component vector of float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})

-0:?     'badp1' (smooth patch in 4-component vector of float)

-0:?     'badp2' (flat patch in 4-component vector of float)

-0:?     'badp3' (noperspective patch in 4-component vector of float)

-0:?     'badp4' (patch sample in 3-component vector of float)

-0:?     'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'ina' (in 2-component vector of float)

-0:?     'inb' (in 32-element array of 2-component vector of float)

-0:?     'inc' (in 32-element array of 2-component vector of float)

-0:?     'ind' (in 32-element array of 2-component vector of float)

-0:?     'bla' (in block{in int f})

-0:?     'blb' (in 32-element array of block{in int f})

-0:?     'blc' (in 32-element array of block{in int f})

-0:?     'bld' (in 32-element array of block{in int f})

-0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)

-0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)

-0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)

-0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)

-0:?     'pinbi' (patch in block{in int a})

-

+400.tese
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:5: 'triangles' : cannot change previously set input primitive 
+ERROR: 0:6: 'isolines' : cannot change previously set input primitive 
+ERROR: 0:8: 'ccw' : cannot change previously set vertex order 
+ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing 
+ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing 
+ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader 
+ERROR: 0:22: 'barrier' : no matching overloaded function found 
+ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch 
+ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 
+ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 
+ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 
+ERROR: 0:64: 'quads' : cannot apply to 'out' 
+ERROR: 0:64: 'cw' : can only apply to 'in' 
+ERROR: 0:65: 'triangles' : cannot apply to 'out' 
+ERROR: 0:66: 'isolines' : cannot apply to 'out' 
+ERROR: 0:67: 'cw' : can only apply to 'in' 
+ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' 
+ERROR: 0:69: 'equal_spacing' : can only apply to 'in' 
+ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' 
+ERROR: 0:71: 'point_mode' : can only apply to 'in' 
+ERROR: 0:73: 'in' : type must be an array: ina
+ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:78: 'in' : type must be an array: bla
+ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized 
+ERROR: 0:96: 'location' : overlapping use of location 24
+ERROR: 0:99: 'location' : overlapping use of location 24
+ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved 
+ERROR: 30 compilation errors.  No code generated.
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Constant:
+0:22        0.000000
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'a' (temp int)
+0:24          Constant:
+0:24            1512 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp 4-component vector of float)
+0:32          'p' (temp 4-component vector of float)
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:32              Constant:
+0:32                1 (const int)
+0:32            Constant:
+0:32              0 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp float)
+0:33          'ps' (temp float)
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              1 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          'cd' (temp float)
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:34                Constant:
+0:34                  1 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Constant:
+0:34              2 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp int)
+0:36          'pvi' (temp int)
+0:36          'gl_PatchVerticesIn' (in int PatchVertices)
+0:37      Sequence
+0:37        move second child to first child (temp int)
+0:37          'pid' (temp int)
+0:37          'gl_PrimitiveID' (in int PrimitiveID)
+0:38      Sequence
+0:38        move second child to first child (temp 3-component vector of float)
+0:38          'tc' (temp 3-component vector of float)
+0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39      Sequence
+0:39        move second child to first child (temp float)
+0:39          'tlo' (temp float)
+0:39          direct index (patch temp float TessLevelOuter)
+0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39            Constant:
+0:39              3 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'tli' (temp float)
+0:40          direct index (patch temp float TessLevelInner)
+0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40            Constant:
+0:40              1 (const int)
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:42          Constant:
+0:42            0 (const uint)
+0:42        'p' (temp 4-component vector of float)
+0:43      move second child to first child (temp float)
+0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:43          Constant:
+0:43            1 (const uint)
+0:43        'ps' (temp float)
+0:44      move second child to first child (temp float)
+0:44        direct index (temp float ClipDistance)
+0:44          gl_ClipDistance: direct index for structure (out implicitly-sized array of float ClipDistance)
+0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:44            Constant:
+0:44              2 (const uint)
+0:44          Constant:
+0:44            2 (const int)
+0:44        'cd' (temp float)
+0:?   Linker Objects
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'badp1' (smooth patch in 4-component vector of float)
+0:?     'badp2' (flat patch in 4-component vector of float)
+0:?     'badp3' (noperspective patch in 4-component vector of float)
+0:?     'badp4' (patch sample in 3-component vector of float)
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'bla' (in block{in int f})
+0:?     'blb' (in 32-element array of block{in int f})
+0:?     'blc' (in 32-element array of block{in int f})
+0:?     'bld' (in 32-element array of block{in int f})
+0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:?     'pinbi' (patch in block{in int a})
+
+
+Linked tessellation evaluation stage:
+
+
+Shader version: 400
+Requested GL_ARB_separate_shader_objects
+input primitive = quads
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+using point mode
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Constant:
+0:22        0.000000
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'a' (temp int)
+0:24          Constant:
+0:24            1512 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp 4-component vector of float)
+0:32          'p' (temp 4-component vector of float)
+0:32          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:32            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:32              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:32              Constant:
+0:32                1 (const int)
+0:32            Constant:
+0:32              0 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp float)
+0:33          'ps' (temp float)
+0:33          gl_PointSize: direct index for structure (in float PointSize)
+0:33            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              1 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          'cd' (temp float)
+0:34          direct index (temp float ClipDistance)
+0:34            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:34              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:34                Constant:
+0:34                  1 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Constant:
+0:34              2 (const int)
+0:36      Sequence
+0:36        move second child to first child (temp int)
+0:36          'pvi' (temp int)
+0:36          'gl_PatchVerticesIn' (in int PatchVertices)
+0:37      Sequence
+0:37        move second child to first child (temp int)
+0:37          'pid' (temp int)
+0:37          'gl_PrimitiveID' (in int PrimitiveID)
+0:38      Sequence
+0:38        move second child to first child (temp 3-component vector of float)
+0:38          'tc' (temp 3-component vector of float)
+0:38          'gl_TessCoord' (in 3-component vector of float TessCoord)
+0:39      Sequence
+0:39        move second child to first child (temp float)
+0:39          'tlo' (temp float)
+0:39          direct index (patch temp float TessLevelOuter)
+0:39            'gl_TessLevelOuter' (patch in 4-element array of float TessLevelOuter)
+0:39            Constant:
+0:39              3 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'tli' (temp float)
+0:40          direct index (patch temp float TessLevelInner)
+0:40            'gl_TessLevelInner' (patch in 2-element array of float TessLevelInner)
+0:40            Constant:
+0:40              1 (const int)
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:42          Constant:
+0:42            0 (const uint)
+0:42        'p' (temp 4-component vector of float)
+0:43      move second child to first child (temp float)
+0:43        gl_PointSize: direct index for structure (gl_PointSize float PointSize)
+0:43          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:43          Constant:
+0:43            1 (const uint)
+0:43        'ps' (temp float)
+0:44      move second child to first child (temp float)
+0:44        direct index (temp float ClipDistance)
+0:44          gl_ClipDistance: direct index for structure (out 3-element array of float ClipDistance)
+0:44            'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:44            Constant:
+0:44              2 (const uint)
+0:44          Constant:
+0:44            2 (const int)
+0:44        'cd' (temp float)
+0:?   Linker Objects
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (patch out 4-component vector of float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
+0:?     'badp1' (smooth patch in 4-component vector of float)
+0:?     'badp2' (flat patch in 4-component vector of float)
+0:?     'badp3' (noperspective patch in 4-component vector of float)
+0:?     'badp4' (patch sample in 3-component vector of float)
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'ina' (in 2-component vector of float)
+0:?     'inb' (in 32-element array of 2-component vector of float)
+0:?     'inc' (in 32-element array of 2-component vector of float)
+0:?     'ind' (in 32-element array of 2-component vector of float)
+0:?     'bla' (in block{in int f})
+0:?     'blb' (in 32-element array of block{in int f})
+0:?     'blc' (in 32-element array of block{in int f})
+0:?     'bld' (in 32-element array of block{in int f})
+0:?     'ivla' (layout(location=23 ) in 32-element array of 4-component vector of float)
+0:?     'ivlb' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ivlc' (layout(location=24 ) in 32-element array of 4-component vector of float)
+0:?     'ovla' (layout(location=23 ) out 2-element array of 4-component vector of float)
+0:?     'ovlb' (layout(location=24 ) out 2-element array of 4-component vector of float)
+0:?     'pinbi' (patch in block{in int a})
+
diff --git a/Test/baseResults/410.geom.out b/Test/baseResults/410.geom.out
index 84ae0da..51ab993 100644
--- a/Test/baseResults/410.geom.out
+++ b/Test/baseResults/410.geom.out
@@ -1,112 +1,112 @@
-410.geom

-Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name 

-ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration 

-ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

-ERROR: 0:32: 'gl_Position' : no such field in structure 

-ERROR: 0:32: '=' :  cannot convert from 'temp block{in float PointSize gl_PointSize}' to 'temp 4-component vector of float'

-ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared 

-ERROR: 0:33: 'assign' :  cannot convert from 'const 4-component vector of float' to 'layout(stream=0 ) gl_Position void Position'

-WARNING: 0:38: 'return' : type conversion on return values was not explicitly allowed until version 420 

-ERROR: 7 compilation errors.  No code generated.

-

-

-Shader version: 410

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = none

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:5    Sequence

-0:5      move second child to first child (temp int)

-0:5        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)

-0:5        Constant:

-0:5          7 (const int)

-0:28  Function Definition: foo( (global void)

-0:28    Function Parameters: 

-0:30    Sequence

-0:30      Sequence

-0:30        move second child to first child (temp float)

-0:30          'p' (temp float)

-0:30          gl_PointSize: direct index for structure (in float PointSize)

-0:30            direct index (temp block{in float PointSize gl_PointSize})

-0:30              'gl_in' (in implicitly-sized array of block{in float PointSize gl_PointSize})

-0:30              Constant:

-0:30                1 (const int)

-0:30            Constant:

-0:30              0 (const int)

-0:31      move second child to first child (temp float)

-0:31        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)

-0:31          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })

-0:31          Constant:

-0:31            1 (const uint)

-0:31        'p' (temp float)

-0:33      gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)

-0:33        'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })

-0:33        Constant:

-0:33          0 (const uint)

-0:36  Function Definition: foo5( (global float)

-0:36    Function Parameters: 

-0:38    Sequence

-0:38      Branch: Return with expression

-0:38        Constant:

-0:38          4.000000

-0:?   Linker Objects

-0:?     'gl_in' (in implicitly-sized array of block{in float PointSize gl_PointSize})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })

-

-

-Linked geometry stage:

-

-ERROR: Linking geometry stage: At least one shader must specify an input layout primitive

-ERROR: Linking geometry stage: At least one shader must specify an output layout primitive

-ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

-

-Shader version: 410

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = none

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:5    Sequence

-0:5      move second child to first child (temp int)

-0:5        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)

-0:5        Constant:

-0:5          7 (const int)

-0:28  Function Definition: foo( (global void)

-0:28    Function Parameters: 

-0:30    Sequence

-0:30      Sequence

-0:30        move second child to first child (temp float)

-0:30          'p' (temp float)

-0:30          gl_PointSize: direct index for structure (in float PointSize)

-0:30            direct index (temp block{in float PointSize gl_PointSize})

-0:30              'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})

-0:30              Constant:

-0:30                1 (const int)

-0:30            Constant:

-0:30              0 (const int)

-0:31      move second child to first child (temp float)

-0:31        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)

-0:31          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })

-0:31          Constant:

-0:31            1 (const uint)

-0:31        'p' (temp float)

-0:33      gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)

-0:33        'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })

-0:33        Constant:

-0:33          0 (const uint)

-0:36  Function Definition: foo5( (global float)

-0:36    Function Parameters: 

-0:38    Sequence

-0:38      Branch: Return with expression

-0:38        Constant:

-0:38          4.000000

-0:?   Linker Objects

-0:?     'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })

-

+410.geom
+Warning, version 410 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name 
+ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration 
+ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 
+ERROR: 0:32: 'gl_Position' : no such field in structure 
+ERROR: 0:32: '=' :  cannot convert from 'temp block{in float PointSize gl_PointSize}' to 'temp 4-component vector of float'
+ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared 
+ERROR: 0:33: 'assign' :  cannot convert from 'const 4-component vector of float' to 'layout(stream=0 ) gl_Position void Position'
+WARNING: 0:38: 'return' : type conversion on return values was not explicitly allowed until version 420 
+ERROR: 7 compilation errors.  No code generated.
+
+
+Shader version: 410
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = none
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:5    Sequence
+0:5      move second child to first child (temp int)
+0:5        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:5        Constant:
+0:5          7 (const int)
+0:28  Function Definition: foo( (global void)
+0:28    Function Parameters: 
+0:30    Sequence
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'p' (temp float)
+0:30          gl_PointSize: direct index for structure (in float PointSize)
+0:30            direct index (temp block{in float PointSize gl_PointSize})
+0:30              'gl_in' (in implicitly-sized array of block{in float PointSize gl_PointSize})
+0:30              Constant:
+0:30                1 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:31      move second child to first child (temp float)
+0:31        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:31          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:31          Constant:
+0:31            1 (const uint)
+0:31        'p' (temp float)
+0:33      gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)
+0:33        'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:33        Constant:
+0:33          0 (const uint)
+0:36  Function Definition: foo5( (global float)
+0:36    Function Parameters: 
+0:38    Sequence
+0:38      Branch: Return with expression
+0:38        Constant:
+0:38          4.000000
+0:?   Linker Objects
+0:?     'gl_in' (in implicitly-sized array of block{in float PointSize gl_PointSize})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 410
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = none
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:5    Sequence
+0:5      move second child to first child (temp int)
+0:5        'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex)
+0:5        Constant:
+0:5          7 (const int)
+0:28  Function Definition: foo( (global void)
+0:28    Function Parameters: 
+0:30    Sequence
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'p' (temp float)
+0:30          gl_PointSize: direct index for structure (in float PointSize)
+0:30            direct index (temp block{in float PointSize gl_PointSize})
+0:30              'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})
+0:30              Constant:
+0:30                1 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:31      move second child to first child (temp float)
+0:31        gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize)
+0:31          'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:31          Constant:
+0:31            1 (const uint)
+0:31        'p' (temp float)
+0:33      gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position)
+0:33        'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+0:33        Constant:
+0:33          0 (const uint)
+0:36  Function Definition: foo5( (global float)
+0:36    Function Parameters: 
+0:38    Sequence
+0:38      Branch: Return with expression
+0:38        Constant:
+0:38          4.000000
+0:?   Linker Objects
+0:?     'gl_in' (in 2-element array of block{in float PointSize gl_PointSize})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, })
+
diff --git a/Test/baseResults/410.tesc.out b/Test/baseResults/410.tesc.out
index 1440758..7c536c0 100644
--- a/Test/baseResults/410.tesc.out
+++ b/Test/baseResults/410.tesc.out
@@ -1,31 +1,31 @@
-410.tesc

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:4: 'length' :  array must first be sized by a redeclaration or layout qualifier

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 400

-vertices = 0

-ERROR: node is still EOpNull!

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:?   Linker Objects

-0:?     'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 1-element array of int)

-0:?     'patchOut' (patch out 4-component vector of float)

-

-

-Linked tessellation control stage:

-

-ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)

-

-Shader version: 400

-vertices = 0

-ERROR: node is still EOpNull!

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:?   Linker Objects

-0:?     'gl_out' (out 1-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'outa' (global 1-element array of int)

-0:?     'patchOut' (patch out 4-component vector of float)

-

+410.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'length' :  array must first be sized by a redeclaration or layout qualifier
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 400
+vertices = 0
+ERROR: node is still EOpNull!
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:?   Linker Objects
+0:?     'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 1-element array of int)
+0:?     'patchOut' (patch out 4-component vector of float)
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
+
+Shader version: 400
+vertices = 0
+ERROR: node is still EOpNull!
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:?   Linker Objects
+0:?     'gl_out' (out 1-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'outa' (global 1-element array of int)
+0:?     'patchOut' (patch out 4-component vector of float)
+
diff --git a/Test/baseResults/420.frag.out b/Test/baseResults/420.frag.out
index ddb3b99..0697b52 100644
--- a/Test/baseResults/420.frag.out
+++ b/Test/baseResults/420.frag.out
@@ -1,42 +1,42 @@
-420.frag

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth

-ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth 

-ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use 

-ERROR: 3 compilation errors.  No code generated.

-

-

-Shader version: 420

-using depth_any

-ERROR: node is still EOpNull!

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:8    Sequence

-0:8      move second child to first child (temp float)

-0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:8        Constant:

-0:8          0.300000

-0:?   Linker Objects

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'depth' (smooth in float)

-

-

-Linked fragment stage:

-

-

-Shader version: 420

-using depth_any

-ERROR: node is still EOpNull!

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:8    Sequence

-0:8      move second child to first child (temp float)

-0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:8        Constant:

-0:8          0.300000

-0:?   Linker Objects

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'depth' (smooth in float)

-

+420.frag
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth 
+ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use 
+ERROR: 3 compilation errors.  No code generated.
+
+
+Shader version: 420
+using depth_any
+ERROR: node is still EOpNull!
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:8    Sequence
+0:8      move second child to first child (temp float)
+0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8        Constant:
+0:8          0.300000
+0:?   Linker Objects
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'depth' (smooth in float)
+
+
+Linked fragment stage:
+
+
+Shader version: 420
+using depth_any
+ERROR: node is still EOpNull!
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:8    Sequence
+0:8      move second child to first child (temp float)
+0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8        Constant:
+0:8          0.300000
+0:?   Linker Objects
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'depth' (smooth in float)
+
diff --git a/Test/baseResults/420.geom.out b/Test/baseResults/420.geom.out
index cd77ce9..99d6274 100644
--- a/Test/baseResults/420.geom.out
+++ b/Test/baseResults/420.geom.out
@@ -1,258 +1,258 @@
-420.geom

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:9: 'length' :  array must first be sized by a redeclaration or layout qualifier

-ERROR: 0:11: '[' :  array must be sized by a redeclaration or layout qualifier before being indexed with a variable

-ERROR: 0:42: 'assign' :  l-value required (can't modify a const)

-ERROR: 0:43: 'assign' :  l-value required "v4" (can't modify a uniform)

-ERROR: 0:48: 'gl_PointSize' : cannot change arrayness of redeclared block member 

-ERROR: 0:49: 'gl_ClipDistance' : cannot change arrayness of redeclared block member 

-ERROR: 6 compilation errors.  No code generated.

-

-

-Shader version: 420

-invocations = 0

-max_vertices = 0

-input primitive = triangles

-output primitive = none

-ERROR: node is still EOpNull!

-0:7  Function Definition: foo( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Constant:

-0:9        1 (const int)

-0:10      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:10        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:10          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:10          Constant:

-0:10            1 (const int)

-0:10        Constant:

-0:10          0 (const int)

-0:11      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:11        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:11          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:11          'i' (global int)

-0:11        Constant:

-0:11          0 (const int)

-0:18  Function Definition: foo3( (global void)

-0:18    Function Parameters: 

-0:20    Sequence

-0:20      Constant:

-0:20        3 (const int)

-0:21      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:21        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:21          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:21          'i' (global int)

-0:21        Constant:

-0:21          0 (const int)

-0:22      Constant:

-0:22        3 (const int)

-0:29  Function Definition: foo4( (global void)

-0:29    Function Parameters: 

-0:?     Sequence

-0:40      Sequence

-0:40        move second child to first child (temp 4-component vector of float)

-0:40          'v' (temp 4-component vector of float)

-0:40          textureGatherOffset (global 4-component vector of float)

-0:40            's2D' (uniform sampler2D)

-0:40            direct index (temp 2-component vector of float)

-0:40              'coord' (in 3-element array of 2-component vector of float)

-0:40              Constant:

-0:40                0 (const int)

-0:40            vector swizzle (temp 2-component vector of int)

-0:40              indirect index (temp 2-component vector of int)

-0:40                Constant:

-0:40                  0 (const int)

-0:40                  1 (const int)

-0:40                  1 (const int)

-0:40                  -2 (const int)

-0:40                  0 (const int)

-0:40                  3 (const int)

-0:40                  -3 (const int)

-0:40                  0 (const int)

-0:40                  2 (const int)

-0:40                  1 (const int)

-0:40                'i' (global int)

-0:40              Sequence

-0:40                Constant:

-0:40                  0 (const int)

-0:40                Constant:

-0:40                  1 (const int)

-0:42      move second child to first child (temp 2-component vector of int)

-0:42        vector swizzle (temp 2-component vector of int)

-0:42          indirect index (temp 2-component vector of int)

-0:42            Constant:

-0:42              0 (const int)

-0:42              1 (const int)

-0:42              1 (const int)

-0:42              -2 (const int)

-0:42              0 (const int)

-0:42              3 (const int)

-0:42              -3 (const int)

-0:42              0 (const int)

-0:42              2 (const int)

-0:42              1 (const int)

-0:42            'i' (global int)

-0:42          Sequence

-0:42            Constant:

-0:42              0 (const int)

-0:42            Constant:

-0:42              1 (const int)

-0:42        Constant:

-0:42          3 (const int)

-0:42          3 (const int)

-0:43      move second child to first child (temp float)

-0:43        direct index (temp float)

-0:43          'v4' (uniform 4-component vector of float)

-0:43          Constant:

-0:43            0 (const int)

-0:43        Constant:

-0:43          3.200000

-0:44      vector swizzle (temp 2-component vector of float)

-0:44        'v4' (uniform 4-component vector of float)

-0:44        Sequence

-0:44          Constant:

-0:44            0 (const int)

-0:44          Constant:

-0:44            1 (const int)

-0:52  Function Definition: foo5( (global float)

-0:52    Function Parameters: 

-0:54    Sequence

-0:54      Branch: Return with expression

-0:54        Convert int to float (temp float)

-0:54          'i' (global int)

-0:?   Linker Objects

-0:?     'i' (global int)

-0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:?     'color3' (in 3-element array of 4-component vector of float)

-0:?     's2D' (uniform sampler2D)

-0:?     'coord' (in 3-element array of 2-component vector of float)

-0:?     'v4' (uniform 4-component vector of float)

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})

-

-

-Linked geometry stage:

-

-ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point

-ERROR: Linking geometry stage: At least one shader must specify an output layout primitive

-ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

-

-Shader version: 420

-invocations = 0

-max_vertices = 0

-input primitive = triangles

-output primitive = none

-ERROR: node is still EOpNull!

-0:7  Function Definition: foo( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Constant:

-0:9        1 (const int)

-0:10      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:10        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:10          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:10          Constant:

-0:10            1 (const int)

-0:10        Constant:

-0:10          0 (const int)

-0:11      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:11        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:11          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:11          'i' (global int)

-0:11        Constant:

-0:11          0 (const int)

-0:18  Function Definition: foo3( (global void)

-0:18    Function Parameters: 

-0:20    Sequence

-0:20      Constant:

-0:20        3 (const int)

-0:21      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:21        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:21          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:21          'i' (global int)

-0:21        Constant:

-0:21          0 (const int)

-0:22      Constant:

-0:22        3 (const int)

-0:29  Function Definition: foo4( (global void)

-0:29    Function Parameters: 

-0:?     Sequence

-0:40      Sequence

-0:40        move second child to first child (temp 4-component vector of float)

-0:40          'v' (temp 4-component vector of float)

-0:40          textureGatherOffset (global 4-component vector of float)

-0:40            's2D' (uniform sampler2D)

-0:40            direct index (temp 2-component vector of float)

-0:40              'coord' (in 3-element array of 2-component vector of float)

-0:40              Constant:

-0:40                0 (const int)

-0:40            vector swizzle (temp 2-component vector of int)

-0:40              indirect index (temp 2-component vector of int)

-0:40                Constant:

-0:40                  0 (const int)

-0:40                  1 (const int)

-0:40                  1 (const int)

-0:40                  -2 (const int)

-0:40                  0 (const int)

-0:40                  3 (const int)

-0:40                  -3 (const int)

-0:40                  0 (const int)

-0:40                  2 (const int)

-0:40                  1 (const int)

-0:40                'i' (global int)

-0:40              Sequence

-0:40                Constant:

-0:40                  0 (const int)

-0:40                Constant:

-0:40                  1 (const int)

-0:42      move second child to first child (temp 2-component vector of int)

-0:42        vector swizzle (temp 2-component vector of int)

-0:42          indirect index (temp 2-component vector of int)

-0:42            Constant:

-0:42              0 (const int)

-0:42              1 (const int)

-0:42              1 (const int)

-0:42              -2 (const int)

-0:42              0 (const int)

-0:42              3 (const int)

-0:42              -3 (const int)

-0:42              0 (const int)

-0:42              2 (const int)

-0:42              1 (const int)

-0:42            'i' (global int)

-0:42          Sequence

-0:42            Constant:

-0:42              0 (const int)

-0:42            Constant:

-0:42              1 (const int)

-0:42        Constant:

-0:42          3 (const int)

-0:42          3 (const int)

-0:43      move second child to first child (temp float)

-0:43        direct index (temp float)

-0:43          'v4' (uniform 4-component vector of float)

-0:43          Constant:

-0:43            0 (const int)

-0:43        Constant:

-0:43          3.200000

-0:44      vector swizzle (temp 2-component vector of float)

-0:44        'v4' (uniform 4-component vector of float)

-0:44        Sequence

-0:44          Constant:

-0:44            0 (const int)

-0:44          Constant:

-0:44            1 (const int)

-0:52  Function Definition: foo5( (global float)

-0:52    Function Parameters: 

-0:54    Sequence

-0:54      Branch: Return with expression

-0:54        Convert int to float (temp float)

-0:54          'i' (global int)

-0:?   Linker Objects

-0:?     'i' (global int)

-0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:?     'color3' (in 3-element array of 4-component vector of float)

-0:?     's2D' (uniform sampler2D)

-0:?     'coord' (in 3-element array of 2-component vector of float)

-0:?     'v4' (uniform 4-component vector of float)

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 1-element array of float ClipDistance gl_ClipDistance})

-

+420.geom
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:9: 'length' :  array must first be sized by a redeclaration or layout qualifier
+ERROR: 0:11: '[' :  array must be sized by a redeclaration or layout qualifier before being indexed with a variable
+ERROR: 0:42: 'assign' :  l-value required (can't modify a const)
+ERROR: 0:43: 'assign' :  l-value required "v4" (can't modify a uniform)
+ERROR: 0:48: 'gl_PointSize' : cannot change arrayness of redeclared block member 
+ERROR: 0:49: 'gl_ClipDistance' : cannot change arrayness of redeclared block member 
+ERROR: 6 compilation errors.  No code generated.
+
+
+Shader version: 420
+invocations = 0
+max_vertices = 0
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:7  Function Definition: foo( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Constant:
+0:9        1 (const int)
+0:10      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:10        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:10          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:10          Constant:
+0:10            1 (const int)
+0:10        Constant:
+0:10          0 (const int)
+0:11      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:11        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:11          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:11          'i' (global int)
+0:11        Constant:
+0:11          0 (const int)
+0:18  Function Definition: foo3( (global void)
+0:18    Function Parameters: 
+0:20    Sequence
+0:20      Constant:
+0:20        3 (const int)
+0:21      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:21        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:21          'i' (global int)
+0:21        Constant:
+0:21          0 (const int)
+0:22      Constant:
+0:22        3 (const int)
+0:29  Function Definition: foo4( (global void)
+0:29    Function Parameters: 
+0:?     Sequence
+0:40      Sequence
+0:40        move second child to first child (temp 4-component vector of float)
+0:40          'v' (temp 4-component vector of float)
+0:40          textureGatherOffset (global 4-component vector of float)
+0:40            's2D' (uniform sampler2D)
+0:40            direct index (temp 2-component vector of float)
+0:40              'coord' (in 3-element array of 2-component vector of float)
+0:40              Constant:
+0:40                0 (const int)
+0:40            vector swizzle (temp 2-component vector of int)
+0:40              indirect index (temp 2-component vector of int)
+0:40                Constant:
+0:40                  0 (const int)
+0:40                  1 (const int)
+0:40                  1 (const int)
+0:40                  -2 (const int)
+0:40                  0 (const int)
+0:40                  3 (const int)
+0:40                  -3 (const int)
+0:40                  0 (const int)
+0:40                  2 (const int)
+0:40                  1 (const int)
+0:40                'i' (global int)
+0:40              Sequence
+0:40                Constant:
+0:40                  0 (const int)
+0:40                Constant:
+0:40                  1 (const int)
+0:42      move second child to first child (temp 2-component vector of int)
+0:42        vector swizzle (temp 2-component vector of int)
+0:42          indirect index (temp 2-component vector of int)
+0:42            Constant:
+0:42              0 (const int)
+0:42              1 (const int)
+0:42              1 (const int)
+0:42              -2 (const int)
+0:42              0 (const int)
+0:42              3 (const int)
+0:42              -3 (const int)
+0:42              0 (const int)
+0:42              2 (const int)
+0:42              1 (const int)
+0:42            'i' (global int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42        Constant:
+0:42          3 (const int)
+0:42          3 (const int)
+0:43      move second child to first child (temp float)
+0:43        direct index (temp float)
+0:43          'v4' (uniform 4-component vector of float)
+0:43          Constant:
+0:43            0 (const int)
+0:43        Constant:
+0:43          3.200000
+0:44      vector swizzle (temp 2-component vector of float)
+0:44        'v4' (uniform 4-component vector of float)
+0:44        Sequence
+0:44          Constant:
+0:44            0 (const int)
+0:44          Constant:
+0:44            1 (const int)
+0:52  Function Definition: foo5( (global float)
+0:52    Function Parameters: 
+0:54    Sequence
+0:54      Branch: Return with expression
+0:54        Convert int to float (temp float)
+0:54          'i' (global int)
+0:?   Linker Objects
+0:?     'i' (global int)
+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:?     'color3' (in 3-element array of 4-component vector of float)
+0:?     's2D' (uniform sampler2D)
+0:?     'coord' (in 3-element array of 2-component vector of float)
+0:?     'v4' (uniform 4-component vector of float)
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out implicitly-sized array of float ClipDistance gl_ClipDistance})
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 420
+invocations = 0
+max_vertices = 0
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:7  Function Definition: foo( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Constant:
+0:9        1 (const int)
+0:10      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:10        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:10          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:10          Constant:
+0:10            1 (const int)
+0:10        Constant:
+0:10          0 (const int)
+0:11      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:11        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:11          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:11          'i' (global int)
+0:11        Constant:
+0:11          0 (const int)
+0:18  Function Definition: foo3( (global void)
+0:18    Function Parameters: 
+0:20    Sequence
+0:20      Constant:
+0:20        3 (const int)
+0:21      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:21        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:21          'i' (global int)
+0:21        Constant:
+0:21          0 (const int)
+0:22      Constant:
+0:22        3 (const int)
+0:29  Function Definition: foo4( (global void)
+0:29    Function Parameters: 
+0:?     Sequence
+0:40      Sequence
+0:40        move second child to first child (temp 4-component vector of float)
+0:40          'v' (temp 4-component vector of float)
+0:40          textureGatherOffset (global 4-component vector of float)
+0:40            's2D' (uniform sampler2D)
+0:40            direct index (temp 2-component vector of float)
+0:40              'coord' (in 3-element array of 2-component vector of float)
+0:40              Constant:
+0:40                0 (const int)
+0:40            vector swizzle (temp 2-component vector of int)
+0:40              indirect index (temp 2-component vector of int)
+0:40                Constant:
+0:40                  0 (const int)
+0:40                  1 (const int)
+0:40                  1 (const int)
+0:40                  -2 (const int)
+0:40                  0 (const int)
+0:40                  3 (const int)
+0:40                  -3 (const int)
+0:40                  0 (const int)
+0:40                  2 (const int)
+0:40                  1 (const int)
+0:40                'i' (global int)
+0:40              Sequence
+0:40                Constant:
+0:40                  0 (const int)
+0:40                Constant:
+0:40                  1 (const int)
+0:42      move second child to first child (temp 2-component vector of int)
+0:42        vector swizzle (temp 2-component vector of int)
+0:42          indirect index (temp 2-component vector of int)
+0:42            Constant:
+0:42              0 (const int)
+0:42              1 (const int)
+0:42              1 (const int)
+0:42              -2 (const int)
+0:42              0 (const int)
+0:42              3 (const int)
+0:42              -3 (const int)
+0:42              0 (const int)
+0:42              2 (const int)
+0:42              1 (const int)
+0:42            'i' (global int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42        Constant:
+0:42          3 (const int)
+0:42          3 (const int)
+0:43      move second child to first child (temp float)
+0:43        direct index (temp float)
+0:43          'v4' (uniform 4-component vector of float)
+0:43          Constant:
+0:43            0 (const int)
+0:43        Constant:
+0:43          3.200000
+0:44      vector swizzle (temp 2-component vector of float)
+0:44        'v4' (uniform 4-component vector of float)
+0:44        Sequence
+0:44          Constant:
+0:44            0 (const int)
+0:44          Constant:
+0:44            1 (const int)
+0:52  Function Definition: foo5( (global float)
+0:52    Function Parameters: 
+0:54    Sequence
+0:54      Branch: Return with expression
+0:54        Convert int to float (temp float)
+0:54          'i' (global int)
+0:?   Linker Objects
+0:?     'i' (global int)
+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:?     'color3' (in 3-element array of 4-component vector of float)
+0:?     's2D' (uniform sampler2D)
+0:?     'coord' (in 3-element array of 2-component vector of float)
+0:?     'v4' (uniform 4-component vector of float)
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, layout(stream=0 ) out 1-element array of float ClipDistance gl_ClipDistance})
+
diff --git a/Test/baseResults/420.tesc.out b/Test/baseResults/420.tesc.out
index c087513..ed5fbea 100644
--- a/Test/baseResults/420.tesc.out
+++ b/Test/baseResults/420.tesc.out
@@ -1,229 +1,229 @@
-420.tesc

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out

-ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a

-ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb

-ERROR: 0:26: 'gl_PointSize' : no such field in structure 

-ERROR: 0:26: 'assign' :  cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'

-ERROR: 0:29: 'out' : type must be an array: outf

-ERROR: 6 compilation errors.  No code generated.

-

-

-Shader version: 420

-Requested GL_ARB_separate_shader_objects

-vertices = 4

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'p' (temp 4-component vector of float)

-0:17          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:17              Constant:

-0:17                1 (const int)

-0:17            Constant:

-0:17              0 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'ps' (temp float)

-0:18          gl_PointSize: direct index for structure (in float PointSize)

-0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:18              Constant:

-0:18                1 (const int)

-0:18            Constant:

-0:18              1 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'cd' (temp float)

-0:19          direct index (temp float ClipDistance)

-0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)

-0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:19                Constant:

-0:19                  1 (const int)

-0:19              Constant:

-0:19                2 (const int)

-0:19            Constant:

-0:19              2 (const int)

-0:21      Sequence

-0:21        move second child to first child (temp int)

-0:21          'pvi' (temp int)

-0:21          'gl_PatchVerticesIn' (in int PatchVertices)

-0:22      Sequence

-0:22        move second child to first child (temp int)

-0:22          'pid' (temp int)

-0:22          'gl_PrimitiveID' (in int PrimitiveID)

-0:23      Sequence

-0:23        move second child to first child (temp int)

-0:23          'iid' (temp int)

-0:23          'gl_InvocationID' (in int InvocationID)

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:25            'gl_InvocationID' (in int InvocationID)

-0:25          Constant:

-0:25            0 (const int)

-0:25        'p' (temp 4-component vector of float)

-0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:26        'gl_InvocationID' (in int InvocationID)

-0:34  Function Definition: foo( (global void)

-0:34    Function Parameters: 

-0:36    Sequence

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        logical-or (temp bool)

-0:36          Compare Not Equal (temp bool)

-0:36            Constant:

-0:36              -0.625000

-0:36              -0.500000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.125000

-0:36              0.000000

-0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)

-0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:36              Constant:

-0:36                0 (const int)

-0:37          Compare Not Equal (temp bool)

-0:37            Constant:

-0:37              0.375000

-0:37              0.500000

-0:37              0.625000

-0:37              0.750000

-0:37              0.625000

-0:37              0.750000

-0:37              0.875000

-0:37              -0.625000

-0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)

-0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-0:37              Constant:

-0:37                0 (const int)

-0:36        true case is null

-0:?   Linker Objects

-0:?     'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:?     'a' (out 3-element array of int)

-0:?     'outb' (out 5-element array of int)

-0:?     'outc' (out 4-element array of int)

-0:?     'outf' (out float)

-0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-

-

-Linked tessellation control stage:

-

-

-Shader version: 420

-Requested GL_ARB_separate_shader_objects

-vertices = 4

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'p' (temp 4-component vector of float)

-0:17          gl_Position: direct index for structure (in 4-component vector of float Position)

-0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:17              Constant:

-0:17                1 (const int)

-0:17            Constant:

-0:17              0 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'ps' (temp float)

-0:18          gl_PointSize: direct index for structure (in float PointSize)

-0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:18              Constant:

-0:18                1 (const int)

-0:18            Constant:

-0:18              1 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'cd' (temp float)

-0:19          direct index (temp float ClipDistance)

-0:19            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)

-0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:19                Constant:

-0:19                  1 (const int)

-0:19              Constant:

-0:19                2 (const int)

-0:19            Constant:

-0:19              2 (const int)

-0:21      Sequence

-0:21        move second child to first child (temp int)

-0:21          'pvi' (temp int)

-0:21          'gl_PatchVerticesIn' (in int PatchVertices)

-0:22      Sequence

-0:22        move second child to first child (temp int)

-0:22          'pid' (temp int)

-0:22          'gl_PrimitiveID' (in int PrimitiveID)

-0:23      Sequence

-0:23        move second child to first child (temp int)

-0:23          'iid' (temp int)

-0:23          'gl_InvocationID' (in int InvocationID)

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        gl_Position: direct index for structure (out 4-component vector of float Position)

-0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:25            'gl_InvocationID' (in int InvocationID)

-0:25          Constant:

-0:25            0 (const int)

-0:25        'p' (temp 4-component vector of float)

-0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})

-0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:26        'gl_InvocationID' (in int InvocationID)

-0:34  Function Definition: foo( (global void)

-0:34    Function Parameters: 

-0:36    Sequence

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        logical-or (temp bool)

-0:36          Compare Not Equal (temp bool)

-0:36            Constant:

-0:36              -0.625000

-0:36              -0.500000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.375000

-0:36              -0.250000

-0:36              -0.125000

-0:36              0.000000

-0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)

-0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:36              Constant:

-0:36                0 (const int)

-0:37          Compare Not Equal (temp bool)

-0:37            Constant:

-0:37              0.375000

-0:37              0.500000

-0:37              0.625000

-0:37              0.750000

-0:37              0.625000

-0:37              0.750000

-0:37              0.875000

-0:37              -0.625000

-0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)

-0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-0:37              Constant:

-0:37                0 (const int)

-0:36        true case is null

-0:?   Linker Objects

-0:?     'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})

-0:?     'a' (out 3-element array of int)

-0:?     'outb' (out 5-element array of int)

-0:?     'outc' (out 4-element array of int)

-0:?     'outf' (out float)

-0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)

-0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)

-

+420.tesc
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
+ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
+ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
+ERROR: 0:26: 'gl_PointSize' : no such field in structure 
+ERROR: 0:26: 'assign' :  cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
+ERROR: 0:29: 'out' : type must be an array: outf
+ERROR: 6 compilation errors.  No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'p' (temp 4-component vector of float)
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:17              Constant:
+0:17                1 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'ps' (temp float)
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:18              Constant:
+0:18                1 (const int)
+0:18            Constant:
+0:18              1 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'cd' (temp float)
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in implicitly-sized array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:19                Constant:
+0:19                  1 (const int)
+0:19              Constant:
+0:19                2 (const int)
+0:19            Constant:
+0:19              2 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp int)
+0:21          'pvi' (temp int)
+0:21          'gl_PatchVerticesIn' (in int PatchVertices)
+0:22      Sequence
+0:22        move second child to first child (temp int)
+0:22          'pid' (temp int)
+0:22          'gl_PrimitiveID' (in int PrimitiveID)
+0:23      Sequence
+0:23        move second child to first child (temp int)
+0:23          'iid' (temp int)
+0:23          'gl_InvocationID' (in int InvocationID)
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25            'gl_InvocationID' (in int InvocationID)
+0:25          Constant:
+0:25            0 (const int)
+0:25        'p' (temp 4-component vector of float)
+0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26        'gl_InvocationID' (in int InvocationID)
+0:34  Function Definition: foo( (global void)
+0:34    Function Parameters: 
+0:36    Sequence
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        logical-or (temp bool)
+0:36          Compare Not Equal (temp bool)
+0:36            Constant:
+0:36              -0.625000
+0:36              -0.500000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.125000
+0:36              0.000000
+0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36              Constant:
+0:36                0 (const int)
+0:37          Compare Not Equal (temp bool)
+0:37            Constant:
+0:37              0.375000
+0:37              0.500000
+0:37              0.625000
+0:37              0.750000
+0:37              0.625000
+0:37              0.750000
+0:37              0.875000
+0:37              -0.625000
+0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37              Constant:
+0:37                0 (const int)
+0:36        true case is null
+0:?   Linker Objects
+0:?     'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:?     'a' (out 3-element array of int)
+0:?     'outb' (out 5-element array of int)
+0:?     'outc' (out 4-element array of int)
+0:?     'outf' (out float)
+0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+
+
+Linked tessellation control stage:
+
+
+Shader version: 420
+Requested GL_ARB_separate_shader_objects
+vertices = 4
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'p' (temp 4-component vector of float)
+0:17          gl_Position: direct index for structure (in 4-component vector of float Position)
+0:17            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:17              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:17              Constant:
+0:17                1 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'ps' (temp float)
+0:18          gl_PointSize: direct index for structure (in float PointSize)
+0:18            direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:18              'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:18              Constant:
+0:18                1 (const int)
+0:18            Constant:
+0:18              1 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'cd' (temp float)
+0:19          direct index (temp float ClipDistance)
+0:19            gl_ClipDistance: direct index for structure (in 1-element array of float ClipDistance)
+0:19              direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:19                'gl_in' (in 32-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:19                Constant:
+0:19                  1 (const int)
+0:19              Constant:
+0:19                2 (const int)
+0:19            Constant:
+0:19              2 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp int)
+0:21          'pvi' (temp int)
+0:21          'gl_PatchVerticesIn' (in int PatchVertices)
+0:22      Sequence
+0:22        move second child to first child (temp int)
+0:22          'pid' (temp int)
+0:22          'gl_PrimitiveID' (in int PrimitiveID)
+0:23      Sequence
+0:23        move second child to first child (temp int)
+0:23          'iid' (temp int)
+0:23          'gl_InvocationID' (in int InvocationID)
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        gl_Position: direct index for structure (out 4-component vector of float Position)
+0:25          indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:25            'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:25            'gl_InvocationID' (in int InvocationID)
+0:25          Constant:
+0:25            0 (const int)
+0:25        'p' (temp 4-component vector of float)
+0:26      indirect index (temp block{out 4-component vector of float Position gl_Position})
+0:26        'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:26        'gl_InvocationID' (in int InvocationID)
+0:34  Function Definition: foo( (global void)
+0:34    Function Parameters: 
+0:36    Sequence
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        logical-or (temp bool)
+0:36          Compare Not Equal (temp bool)
+0:36            Constant:
+0:36              -0.625000
+0:36              -0.500000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.375000
+0:36              -0.250000
+0:36              -0.125000
+0:36              0.000000
+0:36            direct index (layout(location=0 ) temp 2X4 matrix of double)
+0:36              'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:36              Constant:
+0:36                0 (const int)
+0:37          Compare Not Equal (temp bool)
+0:37            Constant:
+0:37              0.375000
+0:37              0.500000
+0:37              0.625000
+0:37              0.750000
+0:37              0.625000
+0:37              0.750000
+0:37              0.875000
+0:37              -0.625000
+0:37            direct index (layout(location=12 ) temp 2X4 matrix of double)
+0:37              'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+0:37              Constant:
+0:37                0 (const int)
+0:36        true case is null
+0:?   Linker Objects
+0:?     'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position})
+0:?     'a' (out 3-element array of int)
+0:?     'outb' (out 5-element array of int)
+0:?     'outc' (out 4-element array of int)
+0:?     'outf' (out float)
+0:?     'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double)
+0:?     'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double)
+
diff --git a/Test/baseResults/420.tese.out b/Test/baseResults/420.tese.out
index b39d969..26eac10 100644
--- a/Test/baseResults/420.tese.out
+++ b/Test/baseResults/420.tese.out
@@ -1,313 +1,313 @@
-420.tese

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:7: '=' :  cannot convert from 'global 3-element array of float' to 'global 2-element array of float'

-ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): global 2-component vector of float

-ERROR: 0:9: 'initializer list' : wrong number of matrix columns: global 3X3 matrix of float

-ERROR: 0:10: 'initializer list' : wrong number of matrix columns: global 2X2 matrix of float

-ERROR: 0:25: 'initializer list' : wrong number of structure members 

-ERROR: 0:27: '=' :  cannot convert from 'const bool' to 'global int'

-ERROR: 0:28: 'constructor' :  cannot convert parameter 2 from 'const float' to 'global 4-component vector of float'

-ERROR: 0:29: 'constructor' :  cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'

-ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments 

-ERROR: 0:29: '=' :  cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'

-ERROR: 0:30: 'initializer list' : wrong number of matrix columns: global 4X2 matrix of float

-ERROR: 0:40: 'constructor' :  cannot convert parameter 1 from 'temp float' to 'global structure{global float s, global float t}'

-ERROR: 0:58: 'initializer list' : wrong number of structure members 

-ERROR: 13 compilation errors.  No code generated.

-

-

-Shader version: 420

-input primitive = none

-vertex spacing = none

-triangle order = none

-ERROR: node is still EOpNull!

-0:4  Sequence

-0:4    move second child to first child (temp 2X2 matrix of float)

-0:4      'b' (global 2X2 matrix of float)

-0:4      Constant:

-0:4        1.000000

-0:4        0.000000

-0:4        0.000000

-0:4        1.000000

-0:15  Sequence

-0:15    move second child to first child (temp structure{global float a, global int b})

-0:15      'e' (global structure{global float a, global int b})

-0:15      Constant:

-0:15        1.200000

-0:15        2 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp structure{global float a, global int b})

-0:20      'e2' (global structure{global float a, global int b})

-0:20      Constant:

-0:20        1.000000

-0:20        3 (const int)

-0:42  Sequence

-0:42    move second child to first child (temp 5-element array of float)

-0:42      'b5' (global 5-element array of float)

-0:42      Constant:

-0:42        3.400000

-0:42        4.200000

-0:42        5.000000

-0:42        5.200000

-0:42        1.100000

-0:67  Sequence

-0:67    move second child to first child (temp 3-component vector of float)

-0:67      'av3' (global 3-component vector of float)

-0:67      Construct vec3 (global 3-component vector of float)

-0:67        'vc1' (global float)

-0:67        'vc2' (global float)

-0:67        'vc3' (global float)

-0:68  Sequence

-0:68    move second child to first child (temp 3-component vector of float)

-0:68      'bv3' (global 3-component vector of float)

-0:68      Construct vec3 (global 3-component vector of float)

-0:68        'vc1' (global float)

-0:68        'vc2' (global float)

-0:68        'vc3' (global float)

-0:70  Function Definition: main( (global void)

-0:70    Function Parameters: 

-0:72    Sequence

-0:72      MemoryBarrier (global void)

-0:74      Test condition and select (temp void)

-0:74        Condition

-0:74        Compare Equal (temp bool)

-0:74          Constant:

-0:74            1 (const uint)

-0:74            2 (const uint)

-0:74            3.000000

-0:74            4.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            4.000000

-0:74            0.000000

-0:74            5.000000

-0:74            6.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            6.000000

-0:74            0.000000

-0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:74        true case is null

-0:76      Test condition and select (temp void)

-0:76        Condition

-0:76        Constant:

-0:76          true (const bool)

-0:76        true case is null

-0:?   Linker Objects

-0:?     'a' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'b' (global 2X2 matrix of float)

-0:?     'c' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'a2' (global 2-element array of float)

-0:?     'b2' (global 2-component vector of float)

-0:?     'c2' (global 3X3 matrix of float)

-0:?     'd' (global 2X2 matrix of float)

-0:?     'e' (global structure{global float a, global int b})

-0:?     'e2' (global structure{global float a, global int b})

-0:?     'e3' (global structure{global float a, global int b})

-0:?     'a3' (global int)

-0:?     'b3' (global 2-element array of 4-component vector of float)

-0:?     'b4' (global 2-element array of 4-component vector of float)

-0:?     'c3' (global 4X2 matrix of float)

-0:?     'd2' (global implicitly-sized array of structure{global float s, global float t})

-0:?     'b5' (global 5-element array of float)

-0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'vc1' (global float)

-0:?     'vc2' (global float)

-0:?     'vc3' (global float)

-0:?     'av3' (global 3-component vector of float)

-0:?     'bv3' (global 3-component vector of float)

-

-

-Linked tessellation evaluation stage:

-

-ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive

-

-Shader version: 420

-input primitive = none

-vertex spacing = equal_spacing

-triangle order = ccw

-ERROR: node is still EOpNull!

-0:4  Sequence

-0:4    move second child to first child (temp 2X2 matrix of float)

-0:4      'b' (global 2X2 matrix of float)

-0:4      Constant:

-0:4        1.000000

-0:4        0.000000

-0:4        0.000000

-0:4        1.000000

-0:15  Sequence

-0:15    move second child to first child (temp structure{global float a, global int b})

-0:15      'e' (global structure{global float a, global int b})

-0:15      Constant:

-0:15        1.200000

-0:15        2 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp structure{global float a, global int b})

-0:20      'e2' (global structure{global float a, global int b})

-0:20      Constant:

-0:20        1.000000

-0:20        3 (const int)

-0:42  Sequence

-0:42    move second child to first child (temp 5-element array of float)

-0:42      'b5' (global 5-element array of float)

-0:42      Constant:

-0:42        3.400000

-0:42        4.200000

-0:42        5.000000

-0:42        5.200000

-0:42        1.100000

-0:67  Sequence

-0:67    move second child to first child (temp 3-component vector of float)

-0:67      'av3' (global 3-component vector of float)

-0:67      Construct vec3 (global 3-component vector of float)

-0:67        'vc1' (global float)

-0:67        'vc2' (global float)

-0:67        'vc3' (global float)

-0:68  Sequence

-0:68    move second child to first child (temp 3-component vector of float)

-0:68      'bv3' (global 3-component vector of float)

-0:68      Construct vec3 (global 3-component vector of float)

-0:68        'vc1' (global float)

-0:68        'vc2' (global float)

-0:68        'vc3' (global float)

-0:70  Function Definition: main( (global void)

-0:70    Function Parameters: 

-0:72    Sequence

-0:72      MemoryBarrier (global void)

-0:74      Test condition and select (temp void)

-0:74        Condition

-0:74        Compare Equal (temp bool)

-0:74          Constant:

-0:74            1 (const uint)

-0:74            2 (const uint)

-0:74            3.000000

-0:74            4.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            4.000000

-0:74            0.000000

-0:74            5.000000

-0:74            6.000000

-0:74            0.000000

-0:74            0.000000

-0:74            0.000000

-0:74            6.000000

-0:74            0.000000

-0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:74        true case is null

-0:76      Test condition and select (temp void)

-0:76        Condition

-0:76        Constant:

-0:76          true (const bool)

-0:76        true case is null

-0:?   Linker Objects

-0:?     'a' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'b' (global 2X2 matrix of float)

-0:?     'c' (const 2X2 matrix of float)

-0:?       1.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'a2' (global 2-element array of float)

-0:?     'b2' (global 2-component vector of float)

-0:?     'c2' (global 3X3 matrix of float)

-0:?     'd' (global 2X2 matrix of float)

-0:?     'e' (global structure{global float a, global int b})

-0:?     'e2' (global structure{global float a, global int b})

-0:?     'e3' (global structure{global float a, global int b})

-0:?     'a3' (global int)

-0:?     'b3' (global 2-element array of 4-component vector of float)

-0:?     'b4' (global 2-element array of 4-component vector of float)

-0:?     'c3' (global 4X2 matrix of float)

-0:?     'd2' (global 1-element array of structure{global float s, global float t})

-0:?     'b5' (global 5-element array of float)

-0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})

-0:?       1 (const uint)

-0:?       2 (const uint)

-0:?       3.000000

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?       0.000000

-0:?       5.000000

-0:?       6.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       6.000000

-0:?       0.000000

-0:?     'vc1' (global float)

-0:?     'vc2' (global float)

-0:?     'vc3' (global float)

-0:?     'av3' (global 3-component vector of float)

-0:?     'bv3' (global 3-component vector of float)

-

+420.tese
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:7: '=' :  cannot convert from 'global 3-element array of float' to 'global 2-element array of float'
+ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): global 2-component vector of float
+ERROR: 0:9: 'initializer list' : wrong number of matrix columns: global 3X3 matrix of float
+ERROR: 0:10: 'initializer list' : wrong number of matrix columns: global 2X2 matrix of float
+ERROR: 0:25: 'initializer list' : wrong number of structure members 
+ERROR: 0:27: '=' :  cannot convert from 'const bool' to 'global int'
+ERROR: 0:28: 'constructor' :  cannot convert parameter 2 from 'const float' to 'global 4-component vector of float'
+ERROR: 0:29: 'constructor' :  cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'
+ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments 
+ERROR: 0:29: '=' :  cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
+ERROR: 0:30: 'initializer list' : wrong number of matrix columns: global 4X2 matrix of float
+ERROR: 0:40: 'constructor' :  cannot convert parameter 1 from 'temp float' to 'global structure{global float s, global float t}'
+ERROR: 0:58: 'initializer list' : wrong number of structure members 
+ERROR: 13 compilation errors.  No code generated.
+
+
+Shader version: 420
+input primitive = none
+vertex spacing = none
+triangle order = none
+ERROR: node is still EOpNull!
+0:4  Sequence
+0:4    move second child to first child (temp 2X2 matrix of float)
+0:4      'b' (global 2X2 matrix of float)
+0:4      Constant:
+0:4        1.000000
+0:4        0.000000
+0:4        0.000000
+0:4        1.000000
+0:15  Sequence
+0:15    move second child to first child (temp structure{global float a, global int b})
+0:15      'e' (global structure{global float a, global int b})
+0:15      Constant:
+0:15        1.200000
+0:15        2 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp structure{global float a, global int b})
+0:20      'e2' (global structure{global float a, global int b})
+0:20      Constant:
+0:20        1.000000
+0:20        3 (const int)
+0:42  Sequence
+0:42    move second child to first child (temp 5-element array of float)
+0:42      'b5' (global 5-element array of float)
+0:42      Constant:
+0:42        3.400000
+0:42        4.200000
+0:42        5.000000
+0:42        5.200000
+0:42        1.100000
+0:67  Sequence
+0:67    move second child to first child (temp 3-component vector of float)
+0:67      'av3' (global 3-component vector of float)
+0:67      Construct vec3 (global 3-component vector of float)
+0:67        'vc1' (global float)
+0:67        'vc2' (global float)
+0:67        'vc3' (global float)
+0:68  Sequence
+0:68    move second child to first child (temp 3-component vector of float)
+0:68      'bv3' (global 3-component vector of float)
+0:68      Construct vec3 (global 3-component vector of float)
+0:68        'vc1' (global float)
+0:68        'vc2' (global float)
+0:68        'vc3' (global float)
+0:70  Function Definition: main( (global void)
+0:70    Function Parameters: 
+0:72    Sequence
+0:72      MemoryBarrier (global void)
+0:74      Test condition and select (temp void)
+0:74        Condition
+0:74        Compare Equal (temp bool)
+0:74          Constant:
+0:74            1 (const uint)
+0:74            2 (const uint)
+0:74            3.000000
+0:74            4.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            4.000000
+0:74            0.000000
+0:74            5.000000
+0:74            6.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            6.000000
+0:74            0.000000
+0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74        true case is null
+0:76      Test condition and select (temp void)
+0:76        Condition
+0:76        Constant:
+0:76          true (const bool)
+0:76        true case is null
+0:?   Linker Objects
+0:?     'a' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'b' (global 2X2 matrix of float)
+0:?     'c' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'a2' (global 2-element array of float)
+0:?     'b2' (global 2-component vector of float)
+0:?     'c2' (global 3X3 matrix of float)
+0:?     'd' (global 2X2 matrix of float)
+0:?     'e' (global structure{global float a, global int b})
+0:?     'e2' (global structure{global float a, global int b})
+0:?     'e3' (global structure{global float a, global int b})
+0:?     'a3' (global int)
+0:?     'b3' (global 2-element array of 4-component vector of float)
+0:?     'b4' (global 2-element array of 4-component vector of float)
+0:?     'c3' (global 4X2 matrix of float)
+0:?     'd2' (global implicitly-sized array of structure{global float s, global float t})
+0:?     'b5' (global 5-element array of float)
+0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'vc1' (global float)
+0:?     'vc2' (global float)
+0:?     'vc3' (global float)
+0:?     'av3' (global 3-component vector of float)
+0:?     'bv3' (global 3-component vector of float)
+
+
+Linked tessellation evaluation stage:
+
+ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive
+
+Shader version: 420
+input primitive = none
+vertex spacing = equal_spacing
+triangle order = ccw
+ERROR: node is still EOpNull!
+0:4  Sequence
+0:4    move second child to first child (temp 2X2 matrix of float)
+0:4      'b' (global 2X2 matrix of float)
+0:4      Constant:
+0:4        1.000000
+0:4        0.000000
+0:4        0.000000
+0:4        1.000000
+0:15  Sequence
+0:15    move second child to first child (temp structure{global float a, global int b})
+0:15      'e' (global structure{global float a, global int b})
+0:15      Constant:
+0:15        1.200000
+0:15        2 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp structure{global float a, global int b})
+0:20      'e2' (global structure{global float a, global int b})
+0:20      Constant:
+0:20        1.000000
+0:20        3 (const int)
+0:42  Sequence
+0:42    move second child to first child (temp 5-element array of float)
+0:42      'b5' (global 5-element array of float)
+0:42      Constant:
+0:42        3.400000
+0:42        4.200000
+0:42        5.000000
+0:42        5.200000
+0:42        1.100000
+0:67  Sequence
+0:67    move second child to first child (temp 3-component vector of float)
+0:67      'av3' (global 3-component vector of float)
+0:67      Construct vec3 (global 3-component vector of float)
+0:67        'vc1' (global float)
+0:67        'vc2' (global float)
+0:67        'vc3' (global float)
+0:68  Sequence
+0:68    move second child to first child (temp 3-component vector of float)
+0:68      'bv3' (global 3-component vector of float)
+0:68      Construct vec3 (global 3-component vector of float)
+0:68        'vc1' (global float)
+0:68        'vc2' (global float)
+0:68        'vc3' (global float)
+0:70  Function Definition: main( (global void)
+0:70    Function Parameters: 
+0:72    Sequence
+0:72      MemoryBarrier (global void)
+0:74      Test condition and select (temp void)
+0:74        Condition
+0:74        Compare Equal (temp bool)
+0:74          Constant:
+0:74            1 (const uint)
+0:74            2 (const uint)
+0:74            3.000000
+0:74            4.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            4.000000
+0:74            0.000000
+0:74            5.000000
+0:74            6.000000
+0:74            0.000000
+0:74            0.000000
+0:74            0.000000
+0:74            6.000000
+0:74            0.000000
+0:74          'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:74        true case is null
+0:76      Test condition and select (temp void)
+0:76        Condition
+0:76        Constant:
+0:76          true (const bool)
+0:76        true case is null
+0:?   Linker Objects
+0:?     'a' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'b' (global 2X2 matrix of float)
+0:?     'c' (const 2X2 matrix of float)
+0:?       1.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'a2' (global 2-element array of float)
+0:?     'b2' (global 2-component vector of float)
+0:?     'c2' (global 3X3 matrix of float)
+0:?     'd' (global 2X2 matrix of float)
+0:?     'e' (global structure{global float a, global int b})
+0:?     'e2' (global structure{global float a, global int b})
+0:?     'e3' (global structure{global float a, global int b})
+0:?     'a3' (global int)
+0:?     'b3' (global 2-element array of 4-component vector of float)
+0:?     'b4' (global 2-element array of 4-component vector of float)
+0:?     'c3' (global 4X2 matrix of float)
+0:?     'd2' (global 1-element array of structure{global float s, global float t})
+0:?     'b5' (global 5-element array of float)
+0:?     'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?     'curlyInit' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:?       1 (const uint)
+0:?       2 (const uint)
+0:?       3.000000
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?       0.000000
+0:?       5.000000
+0:?       6.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       6.000000
+0:?       0.000000
+0:?     'vc1' (global float)
+0:?     'vc2' (global float)
+0:?     'vc3' (global float)
+0:?     'av3' (global 3-component vector of float)
+0:?     'bv3' (global 3-component vector of float)
+
diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out
index 2901c39..6d7b361 100644
--- a/Test/baseResults/420.vert.out
+++ b/Test/baseResults/420.vert.out
@@ -1,558 +1,558 @@
-420.vert

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:2: '#version' : must occur first in shader 

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420

-ERROR: 0:7: '' : vertex input cannot be further qualified 

-ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective) 

-ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 

-ERROR: 0:13: 'uniform' : too many storage qualifiers 

-ERROR: 0:18: '=' : global const initializers must be constant 'const int'

-ERROR: 0:20: 'const' : no qualifiers allowed for function return 

-ERROR: 0:27: '' : constant expression required 

-ERROR: 0:27: '' : array size must be a constant integer expression 

-ERROR: 0:38: 'j' : undeclared identifier 

-ERROR: 0:38: '=' :  cannot convert from 'temp float' to 'temp int'

-ERROR: 0:39: 'k' : undeclared identifier 

-ERROR: 0:39: '=' :  cannot convert from 'temp float' to 'temp int'

-ERROR: 0:40: 'j' : undeclared identifier 

-ERROR: 0:40: '=' :  cannot convert from 'temp float' to 'temp int'

-ERROR: 0:44: 'jj' : undeclared identifier 

-ERROR: 0:44: '=' :  cannot convert from 'temp float' to 'temp int'

-ERROR: 0:54: 'y' : vector field selection out of range 

-ERROR: 0:62: 'xxxxx' : illegal vector field selection 

-ERROR: 0:63: 'xxy' : vector field selection out of range 

-ERROR: 0:66: 'binding' : cannot declare a default, include a type or full declaration 

-ERROR: 0:69: 'location/component/index' : cannot declare a default, use a full declaration 

-ERROR: 0:70: 'input block' : not supported in this stage: vertex

-ERROR: 0:70: 'binding' : requires uniform or buffer storage qualifier 

-ERROR: 0:71: 'binding' : binding is too large 

-ERROR: 0:74: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits 

-ERROR: 0:76: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits (using array)

-ERROR: 0:85: 'patch' : not supported in this stage: vertex

-ERROR: 0:85: '' : vertex input cannot be further qualified 

-ERROR: 0:86: 'patch' : not supported in this stage: vertex

-ERROR: 0:100: '=' : global const initializers must be constant 'const int'

-ERROR: 0:101: '' : constant expression required 

-ERROR: 0:101: '' : array size must be a constant integer expression 

-ERROR: 0:107: '' : image variables not declared 'writeonly' must have a format layout qualifier 

-ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui 

-ERROR: 0:115: 'imageAtomicMax' : no matching overloaded function found 

-ERROR: 0:119: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter 

-ERROR: 0:122: '' : memory qualifiers cannot be used on this type 

-ERROR: 0:123: '' : memory qualifiers cannot be used on this type 

-ERROR: 0:135: 'volatile' : argument cannot drop memory qualifier when passed to formal parameter 

-ERROR: 0:139: 'rg8i' : does not apply to unsigned integer images 

-ERROR: 0:140: 'rgba32i' : does not apply to floating point images 

-ERROR: 0:141: 'rgba32f' : does not apply to unsigned integer images 

-ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images 

-ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images 

-ERROR: 0:144: 'r8ui' : does not apply to signed integer images 

-ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found 

-ERROR: 0:157: 'assign' :  cannot convert from 'const float' to 'temp int'

-ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found 

-ERROR: 0:158: 'assign' :  cannot convert from 'const float' to 'temp int'

-ERROR: 52 compilation errors.  No code generated.

-

-

-Shader version: 420

-ERROR: node is still EOpNull!

-0:20  Function Definition: foo( (const int)

-0:20    Function Parameters: 

-0:?     Sequence

-0:23      Sequence

-0:23        move second child to first child (temp int)

-0:23          'b' (const (read only) int)

-0:23          'anonconst' (global int)

-0:25      Sequence

-0:25        move second child to first child (temp int)

-0:25          'd' (const (read only) int)

-0:25          'b' (const (read only) int)

-0:29      Branch: Return with expression

-0:29        'b' (const (read only) int)

-0:32  Function Definition: main( (global void)

-0:32    Function Parameters: 

-0:?     Sequence

-0:35      Test condition and select (temp void)

-0:35        Condition

-0:35        Compare Equal (temp bool)

-0:35          'i' (temp int)

-0:35          Constant:

-0:35            3 (const int)

-0:35        true case

-0:36        Sequence

-0:36          move second child to first child (temp int)

-0:36            'j' (temp int)

-0:36            'i' (temp int)

-0:42      Loop with condition tested first

-0:42        Loop Condition

-0:42        Constant:

-0:42          true (const bool)

-0:42        No loop body

-0:50  Function Definition: bar(vf4; (global void)

-0:50    Function Parameters: 

-0:50      'v' (volatile in 4-component vector of float)

-0:?     Sequence

-0:53      's' (temp int)

-0:54      's' (temp int)

-0:55      Test condition and select (temp void)

-0:55        Condition

-0:55        Compare Equal (temp bool)

-0:55          direct index (temp float)

-0:55            direct index (temp 4-component vector of float)

-0:55              'bad' (in 10-element array of 4-component vector of float)

-0:55              Constant:

-0:55                0 (const int)

-0:55            Constant:

-0:55              0 (const int)

-0:55          Constant:

-0:55            4.200000

-0:55        true case is null

-0:57      Test condition and select (temp void)

-0:57        Condition

-0:57        Constant:

-0:57          true (const bool)

-0:57        true case

-0:58        move second child to first child (temp 4-component vector of float)

-0:58          'badorder3' (flat out 4-component vector of float)

-0:58          direct index (temp 4-component vector of float)

-0:58            'bad' (in 10-element array of 4-component vector of float)

-0:58            Constant:

-0:58              0 (const int)

-0:61      Sequence

-0:61        move second child to first child (temp 3-component vector of float)

-0:61          'smeared' (temp 3-component vector of float)

-0:61          Construct vec3 (temp 3-component vector of float)

-0:61            'f' (temp float)

-0:62      'f' (temp float)

-0:63      'f' (temp float)

-0:88  Function Definition: bar23444( (global void)

-0:88    Function Parameters: 

-0:?     Sequence

-0:91      Sequence

-0:91        move second child to first child (temp float)

-0:91          'a1' (temp float)

-0:91          direct index (temp float)

-0:91            direct index (temp 3-component vector of float)

-0:91              'm43' (temp 4X3 matrix of float)

-0:91              Constant:

-0:91                3 (const int)

-0:91            Constant:

-0:91              1 (const int)

-0:93      Sequence

-0:93        move second child to first child (temp int)

-0:93          'a2' (temp int)

-0:93          Constant:

-0:93            4 (const int)

-0:94      add second child into first child (temp int)

-0:94        'a2' (temp int)

-0:94        Constant:

-0:94          3 (const int)

-0:95      add second child into first child (temp int)

-0:95        'a2' (temp int)

-0:95        Constant:

-0:95          3 (const int)

-0:96      Sequence

-0:96        move second child to first child (temp float)

-0:96          'b' (const (read only) float)

-0:96          component-wise multiply (temp float)

-0:96            Constant:

-0:96              2.000000

-0:96            'a1' (temp float)

-0:97      Sequence

-0:97        move second child to first child (temp int)

-0:97          'a' (temp int)

-0:97          Constant:

-0:97            -1 (const int)

-0:109  Function Definition: qux( (global void)

-0:109    Function Parameters: 

-0:111    Sequence

-0:111      Sequence

-0:111        move second child to first child (temp int)

-0:111          'i' (temp int)

-0:111          aoeu: direct index for structure (layout(column_major shared ) uniform int)

-0:111            'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

-0:111            Constant:

-0:111              0 (const uint)

-0:112      imageAtomicCompSwap (global int)

-0:112        'iimg2D' (layout(r32i ) uniform iimage2D)

-0:112        Construct ivec2 (temp 2-component vector of int)

-0:112          'i' (temp int)

-0:112          'i' (temp int)

-0:112        'i' (temp int)

-0:112        'i' (temp int)

-0:113      imageAtomicAdd (global uint)

-0:113        'uimg2D' (layout(r32ui ) uniform uimage2D)

-0:113        Construct ivec2 (temp 2-component vector of int)

-0:113          'i' (temp int)

-0:113          'i' (temp int)

-0:113        Convert int to uint (temp uint)

-0:113          'i' (temp int)

-0:114      imageAtomicMin (global int)

-0:114        'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)

-0:114        Construct ivec2 (temp 2-component vector of int)

-0:114          'i' (temp int)

-0:114          'i' (temp int)

-0:114        'i' (temp int)

-0:115      Constant:

-0:115        0.000000

-0:116      Sequence

-0:116        move second child to first child (temp 4-component vector of int)

-0:116          'pos' (temp 4-component vector of int)

-0:116          imageLoad (global 4-component vector of int)

-0:116            'iimg2D' (layout(r32i ) uniform iimage2D)

-0:116            Construct ivec2 (temp 2-component vector of int)

-0:116              'i' (temp int)

-0:116              'i' (temp int)

-0:117      Sequence

-0:117        move second child to first child (temp 4-component vector of float)

-0:117          'col' (temp 4-component vector of float)

-0:117          imageLoad (global 4-component vector of float)

-0:117            'img2DMS' (uniform image2DMS)

-0:117            Construct ivec2 (temp 2-component vector of int)

-0:117              'i' (temp int)

-0:117              'i' (temp int)

-0:117            'i' (temp int)

-0:118      imageStore (global void)

-0:118        'img2DMSWO' (writeonly uniform image2DMS)

-0:118        Construct ivec2 (temp 2-component vector of int)

-0:118          'i' (temp int)

-0:118          'i' (temp int)

-0:118        'i' (temp int)

-0:118        Constant:

-0:118          0.000000

-0:118          0.000000

-0:118          0.000000

-0:118          0.000000

-0:119      imageLoad (global 4-component vector of float)

-0:119        'img2DMSWO' (writeonly uniform image2DMS)

-0:119        Construct ivec2 (temp 2-component vector of int)

-0:119          'i' (temp int)

-0:119          'i' (temp int)

-0:119        'i' (temp int)

-0:125  Function Definition: passr(iI21; (global void)

-0:125    Function Parameters: 

-0:125      'image' (coherent readonly in iimage2D)

-0:132  Function Definition: passrc( (global void)

-0:132    Function Parameters: 

-0:134    Sequence

-0:134      Function Call: passr(iI21; (global void)

-0:134        'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)

-0:135      Function Call: passr(iI21; (global void)

-0:135        'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)

-0:136      Function Call: passr(iI21; (global void)

-0:136        'iimg2D' (layout(r32i ) uniform iimage2D)

-0:153  Function Definition: qlod( (global void)

-0:153    Function Parameters: 

-0:?     Sequence

-0:157      'levels' (temp int)

-0:158      'levels' (temp int)

-0:?   Linker Objects

-0:?     'v2' (smooth out 2-component vector of float)

-0:?     'bad' (in 10-element array of 4-component vector of float)

-0:?     'badorder' (in 4-component vector of float)

-0:?     'badorder2' (invariant smooth out 4-component vector of float)

-0:?     'badorder4' (centroid in 4-component vector of float)

-0:?     'badorder3' (flat out 4-component vector of float)

-0:?     'rep' (smooth flat out 4-component vector of float)

-0:?     'rep2' (centroid smooth sample out 4-component vector of float)

-0:?     'rep3' (in 4-component vector of float)

-0:?     'anonconst' (global int)

-0:?     'aconst' (const int)

-0:?       5 (const int)

-0:?     'a' (const int)

-0:?       5 (const int)

-0:?     'b' (temp int)

-0:?     'cx' (const float)

-0:?       4.200000

-0:?     'dx' (const float)

-0:?       4.200000

-0:?     'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

-0:?     'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

-0:?     'anon@1' (layout(binding=1 ) in block{in int aoeua})

-0:?     'anon@2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})

-0:?     'sampb1' (layout(binding=4 ) uniform sampler2D)

-0:?     'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)

-0:?     'sampb3' (layout(binding=80 ) uniform sampler2D)

-0:?     'sampb4' (layout(binding=31 ) uniform sampler2D)

-0:?     'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)

-0:?     'anon@3' (out block{out implicitly-sized array of float ClipDistance gl_ClipDistance, })

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (smooth patch out 4-component vector of float)

-0:?     'comma0' (temp int)

-0:?     'comma1' (global 1-element array of int)

-0:?     'iimg2D' (layout(r32i ) uniform iimage2D)

-0:?     'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)

-0:?     'img2Drgba' (layout(rgba32f ) uniform image2D)

-0:?     'uimg2D' (layout(r32ui ) uniform uimage2D)

-0:?     'img2DMS' (uniform image2DMS)

-0:?     'img2DMSWO' (writeonly uniform image2DMS)

-0:?     'vol' (volatile temp float)

-0:?     'vol2' (readonly temp int)

-0:?     'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)

-0:?     'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)

-0:?     'i1bad' (layout(rg8i ) uniform uimage2D)

-0:?     'i2bad' (layout(rgba32i ) uniform image2D)

-0:?     'i3bad' (layout(rgba32f ) uniform uimage2D)

-0:?     'i4bad' (layout(r8_snorm ) uniform iimage2D)

-0:?     'i5bad' (layout(rgba32ui ) uniform iimage2D)

-0:?     'i6bad' (layout(r8ui ) uniform iimage2D)

-0:?     'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})

-0:?     'samp1D' (uniform sampler1D)

-0:?     'samp1Ds' (uniform sampler1DShadow)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 420

-ERROR: node is still EOpNull!

-0:20  Function Definition: foo( (const int)

-0:20    Function Parameters: 

-0:?     Sequence

-0:23      Sequence

-0:23        move second child to first child (temp int)

-0:23          'b' (const (read only) int)

-0:23          'anonconst' (global int)

-0:25      Sequence

-0:25        move second child to first child (temp int)

-0:25          'd' (const (read only) int)

-0:25          'b' (const (read only) int)

-0:29      Branch: Return with expression

-0:29        'b' (const (read only) int)

-0:32  Function Definition: main( (global void)

-0:32    Function Parameters: 

-0:?     Sequence

-0:35      Test condition and select (temp void)

-0:35        Condition

-0:35        Compare Equal (temp bool)

-0:35          'i' (temp int)

-0:35          Constant:

-0:35            3 (const int)

-0:35        true case

-0:36        Sequence

-0:36          move second child to first child (temp int)

-0:36            'j' (temp int)

-0:36            'i' (temp int)

-0:42      Loop with condition tested first

-0:42        Loop Condition

-0:42        Constant:

-0:42          true (const bool)

-0:42        No loop body

-0:50  Function Definition: bar(vf4; (global void)

-0:50    Function Parameters: 

-0:50      'v' (volatile in 4-component vector of float)

-0:?     Sequence

-0:53      's' (temp int)

-0:54      's' (temp int)

-0:55      Test condition and select (temp void)

-0:55        Condition

-0:55        Compare Equal (temp bool)

-0:55          direct index (temp float)

-0:55            direct index (temp 4-component vector of float)

-0:55              'bad' (in 10-element array of 4-component vector of float)

-0:55              Constant:

-0:55                0 (const int)

-0:55            Constant:

-0:55              0 (const int)

-0:55          Constant:

-0:55            4.200000

-0:55        true case is null

-0:57      Test condition and select (temp void)

-0:57        Condition

-0:57        Constant:

-0:57          true (const bool)

-0:57        true case

-0:58        move second child to first child (temp 4-component vector of float)

-0:58          'badorder3' (flat out 4-component vector of float)

-0:58          direct index (temp 4-component vector of float)

-0:58            'bad' (in 10-element array of 4-component vector of float)

-0:58            Constant:

-0:58              0 (const int)

-0:61      Sequence

-0:61        move second child to first child (temp 3-component vector of float)

-0:61          'smeared' (temp 3-component vector of float)

-0:61          Construct vec3 (temp 3-component vector of float)

-0:61            'f' (temp float)

-0:62      'f' (temp float)

-0:63      'f' (temp float)

-0:88  Function Definition: bar23444( (global void)

-0:88    Function Parameters: 

-0:?     Sequence

-0:91      Sequence

-0:91        move second child to first child (temp float)

-0:91          'a1' (temp float)

-0:91          direct index (temp float)

-0:91            direct index (temp 3-component vector of float)

-0:91              'm43' (temp 4X3 matrix of float)

-0:91              Constant:

-0:91                3 (const int)

-0:91            Constant:

-0:91              1 (const int)

-0:93      Sequence

-0:93        move second child to first child (temp int)

-0:93          'a2' (temp int)

-0:93          Constant:

-0:93            4 (const int)

-0:94      add second child into first child (temp int)

-0:94        'a2' (temp int)

-0:94        Constant:

-0:94          3 (const int)

-0:95      add second child into first child (temp int)

-0:95        'a2' (temp int)

-0:95        Constant:

-0:95          3 (const int)

-0:96      Sequence

-0:96        move second child to first child (temp float)

-0:96          'b' (const (read only) float)

-0:96          component-wise multiply (temp float)

-0:96            Constant:

-0:96              2.000000

-0:96            'a1' (temp float)

-0:97      Sequence

-0:97        move second child to first child (temp int)

-0:97          'a' (temp int)

-0:97          Constant:

-0:97            -1 (const int)

-0:109  Function Definition: qux( (global void)

-0:109    Function Parameters: 

-0:111    Sequence

-0:111      Sequence

-0:111        move second child to first child (temp int)

-0:111          'i' (temp int)

-0:111          aoeu: direct index for structure (layout(column_major shared ) uniform int)

-0:111            'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

-0:111            Constant:

-0:111              0 (const uint)

-0:112      imageAtomicCompSwap (global int)

-0:112        'iimg2D' (layout(r32i ) uniform iimage2D)

-0:112        Construct ivec2 (temp 2-component vector of int)

-0:112          'i' (temp int)

-0:112          'i' (temp int)

-0:112        'i' (temp int)

-0:112        'i' (temp int)

-0:113      imageAtomicAdd (global uint)

-0:113        'uimg2D' (layout(r32ui ) uniform uimage2D)

-0:113        Construct ivec2 (temp 2-component vector of int)

-0:113          'i' (temp int)

-0:113          'i' (temp int)

-0:113        Convert int to uint (temp uint)

-0:113          'i' (temp int)

-0:114      imageAtomicMin (global int)

-0:114        'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)

-0:114        Construct ivec2 (temp 2-component vector of int)

-0:114          'i' (temp int)

-0:114          'i' (temp int)

-0:114        'i' (temp int)

-0:115      Constant:

-0:115        0.000000

-0:116      Sequence

-0:116        move second child to first child (temp 4-component vector of int)

-0:116          'pos' (temp 4-component vector of int)

-0:116          imageLoad (global 4-component vector of int)

-0:116            'iimg2D' (layout(r32i ) uniform iimage2D)

-0:116            Construct ivec2 (temp 2-component vector of int)

-0:116              'i' (temp int)

-0:116              'i' (temp int)

-0:117      Sequence

-0:117        move second child to first child (temp 4-component vector of float)

-0:117          'col' (temp 4-component vector of float)

-0:117          imageLoad (global 4-component vector of float)

-0:117            'img2DMS' (uniform image2DMS)

-0:117            Construct ivec2 (temp 2-component vector of int)

-0:117              'i' (temp int)

-0:117              'i' (temp int)

-0:117            'i' (temp int)

-0:118      imageStore (global void)

-0:118        'img2DMSWO' (writeonly uniform image2DMS)

-0:118        Construct ivec2 (temp 2-component vector of int)

-0:118          'i' (temp int)

-0:118          'i' (temp int)

-0:118        'i' (temp int)

-0:118        Constant:

-0:118          0.000000

-0:118          0.000000

-0:118          0.000000

-0:118          0.000000

-0:119      imageLoad (global 4-component vector of float)

-0:119        'img2DMSWO' (writeonly uniform image2DMS)

-0:119        Construct ivec2 (temp 2-component vector of int)

-0:119          'i' (temp int)

-0:119          'i' (temp int)

-0:119        'i' (temp int)

-0:125  Function Definition: passr(iI21; (global void)

-0:125    Function Parameters: 

-0:125      'image' (coherent readonly in iimage2D)

-0:132  Function Definition: passrc( (global void)

-0:132    Function Parameters: 

-0:134    Sequence

-0:134      Function Call: passr(iI21; (global void)

-0:134        'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)

-0:135      Function Call: passr(iI21; (global void)

-0:135        'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)

-0:136      Function Call: passr(iI21; (global void)

-0:136        'iimg2D' (layout(r32i ) uniform iimage2D)

-0:153  Function Definition: qlod( (global void)

-0:153    Function Parameters: 

-0:?     Sequence

-0:157      'levels' (temp int)

-0:158      'levels' (temp int)

-0:?   Linker Objects

-0:?     'v2' (smooth out 2-component vector of float)

-0:?     'bad' (in 10-element array of 4-component vector of float)

-0:?     'badorder' (in 4-component vector of float)

-0:?     'badorder2' (invariant smooth out 4-component vector of float)

-0:?     'badorder4' (centroid in 4-component vector of float)

-0:?     'badorder3' (flat out 4-component vector of float)

-0:?     'rep' (smooth flat out 4-component vector of float)

-0:?     'rep2' (centroid smooth sample out 4-component vector of float)

-0:?     'rep3' (in 4-component vector of float)

-0:?     'anonconst' (global int)

-0:?     'aconst' (const int)

-0:?       5 (const int)

-0:?     'a' (const int)

-0:?       5 (const int)

-0:?     'b' (temp int)

-0:?     'cx' (const float)

-0:?       4.200000

-0:?     'dx' (const float)

-0:?       4.200000

-0:?     'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

-0:?     'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})

-0:?     'anon@1' (layout(binding=1 ) in block{in int aoeua})

-0:?     'anon@2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})

-0:?     'sampb1' (layout(binding=4 ) uniform sampler2D)

-0:?     'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)

-0:?     'sampb3' (layout(binding=80 ) uniform sampler2D)

-0:?     'sampb4' (layout(binding=31 ) uniform sampler2D)

-0:?     'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)

-0:?     'anon@3' (out block{out 1-element array of float ClipDistance gl_ClipDistance, })

-0:?     'patchIn' (patch in 4-component vector of float)

-0:?     'patchOut' (smooth patch out 4-component vector of float)

-0:?     'comma0' (temp int)

-0:?     'comma1' (global 1-element array of int)

-0:?     'iimg2D' (layout(r32i ) uniform iimage2D)

-0:?     'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)

-0:?     'img2Drgba' (layout(rgba32f ) uniform image2D)

-0:?     'uimg2D' (layout(r32ui ) uniform uimage2D)

-0:?     'img2DMS' (uniform image2DMS)

-0:?     'img2DMSWO' (writeonly uniform image2DMS)

-0:?     'vol' (volatile temp float)

-0:?     'vol2' (readonly temp int)

-0:?     'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)

-0:?     'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)

-0:?     'i1bad' (layout(rg8i ) uniform uimage2D)

-0:?     'i2bad' (layout(rgba32i ) uniform image2D)

-0:?     'i3bad' (layout(rgba32f ) uniform uimage2D)

-0:?     'i4bad' (layout(r8_snorm ) uniform iimage2D)

-0:?     'i5bad' (layout(rgba32ui ) uniform iimage2D)

-0:?     'i6bad' (layout(r8ui ) uniform iimage2D)

-0:?     'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})

-0:?     'samp1D' (uniform sampler1D)

-0:?     'samp1Ds' (uniform sampler1DShadow)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+420.vert
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:2: '#version' : must occur first in shader 
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420
+ERROR: 0:7: '' : vertex input cannot be further qualified 
+ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective) 
+ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) 
+ERROR: 0:13: 'uniform' : too many storage qualifiers 
+ERROR: 0:18: '=' : global const initializers must be constant 'const int'
+ERROR: 0:20: 'const' : no qualifiers allowed for function return 
+ERROR: 0:27: '' : constant expression required 
+ERROR: 0:27: '' : array size must be a constant integer expression 
+ERROR: 0:38: 'j' : undeclared identifier 
+ERROR: 0:38: '=' :  cannot convert from 'temp float' to 'temp int'
+ERROR: 0:39: 'k' : undeclared identifier 
+ERROR: 0:39: '=' :  cannot convert from 'temp float' to 'temp int'
+ERROR: 0:40: 'j' : undeclared identifier 
+ERROR: 0:40: '=' :  cannot convert from 'temp float' to 'temp int'
+ERROR: 0:44: 'jj' : undeclared identifier 
+ERROR: 0:44: '=' :  cannot convert from 'temp float' to 'temp int'
+ERROR: 0:54: 'y' : vector field selection out of range 
+ERROR: 0:62: 'xxxxx' : illegal vector field selection 
+ERROR: 0:63: 'xxy' : vector field selection out of range 
+ERROR: 0:66: 'binding' : cannot declare a default, include a type or full declaration 
+ERROR: 0:69: 'location/component/index' : cannot declare a default, use a full declaration 
+ERROR: 0:70: 'input block' : not supported in this stage: vertex
+ERROR: 0:70: 'binding' : requires uniform or buffer storage qualifier 
+ERROR: 0:71: 'binding' : binding is too large 
+ERROR: 0:74: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits 
+ERROR: 0:76: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits (using array)
+ERROR: 0:85: 'patch' : not supported in this stage: vertex
+ERROR: 0:85: '' : vertex input cannot be further qualified 
+ERROR: 0:86: 'patch' : not supported in this stage: vertex
+ERROR: 0:100: '=' : global const initializers must be constant 'const int'
+ERROR: 0:101: '' : constant expression required 
+ERROR: 0:101: '' : array size must be a constant integer expression 
+ERROR: 0:107: '' : image variables not declared 'writeonly' must have a format layout qualifier 
+ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui 
+ERROR: 0:115: 'imageAtomicMax' : no matching overloaded function found 
+ERROR: 0:119: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter 
+ERROR: 0:122: '' : memory qualifiers cannot be used on this type 
+ERROR: 0:123: '' : memory qualifiers cannot be used on this type 
+ERROR: 0:135: 'volatile' : argument cannot drop memory qualifier when passed to formal parameter 
+ERROR: 0:139: 'rg8i' : does not apply to unsigned integer images 
+ERROR: 0:140: 'rgba32i' : does not apply to floating point images 
+ERROR: 0:141: 'rgba32f' : does not apply to unsigned integer images 
+ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images 
+ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images 
+ERROR: 0:144: 'r8ui' : does not apply to signed integer images 
+ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:157: 'assign' :  cannot convert from 'const float' to 'temp int'
+ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:158: 'assign' :  cannot convert from 'const float' to 'temp int'
+ERROR: 52 compilation errors.  No code generated.
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:20  Function Definition: foo( (const int)
+0:20    Function Parameters: 
+0:?     Sequence
+0:23      Sequence
+0:23        move second child to first child (temp int)
+0:23          'b' (const (read only) int)
+0:23          'anonconst' (global int)
+0:25      Sequence
+0:25        move second child to first child (temp int)
+0:25          'd' (const (read only) int)
+0:25          'b' (const (read only) int)
+0:29      Branch: Return with expression
+0:29        'b' (const (read only) int)
+0:32  Function Definition: main( (global void)
+0:32    Function Parameters: 
+0:?     Sequence
+0:35      Test condition and select (temp void)
+0:35        Condition
+0:35        Compare Equal (temp bool)
+0:35          'i' (temp int)
+0:35          Constant:
+0:35            3 (const int)
+0:35        true case
+0:36        Sequence
+0:36          move second child to first child (temp int)
+0:36            'j' (temp int)
+0:36            'i' (temp int)
+0:42      Loop with condition tested first
+0:42        Loop Condition
+0:42        Constant:
+0:42          true (const bool)
+0:42        No loop body
+0:50  Function Definition: bar(vf4; (global void)
+0:50    Function Parameters: 
+0:50      'v' (volatile in 4-component vector of float)
+0:?     Sequence
+0:53      's' (temp int)
+0:54      's' (temp int)
+0:55      Test condition and select (temp void)
+0:55        Condition
+0:55        Compare Equal (temp bool)
+0:55          direct index (temp float)
+0:55            direct index (temp 4-component vector of float)
+0:55              'bad' (in 10-element array of 4-component vector of float)
+0:55              Constant:
+0:55                0 (const int)
+0:55            Constant:
+0:55              0 (const int)
+0:55          Constant:
+0:55            4.200000
+0:55        true case is null
+0:57      Test condition and select (temp void)
+0:57        Condition
+0:57        Constant:
+0:57          true (const bool)
+0:57        true case
+0:58        move second child to first child (temp 4-component vector of float)
+0:58          'badorder3' (flat out 4-component vector of float)
+0:58          direct index (temp 4-component vector of float)
+0:58            'bad' (in 10-element array of 4-component vector of float)
+0:58            Constant:
+0:58              0 (const int)
+0:61      Sequence
+0:61        move second child to first child (temp 3-component vector of float)
+0:61          'smeared' (temp 3-component vector of float)
+0:61          Construct vec3 (temp 3-component vector of float)
+0:61            'f' (temp float)
+0:62      'f' (temp float)
+0:63      'f' (temp float)
+0:88  Function Definition: bar23444( (global void)
+0:88    Function Parameters: 
+0:?     Sequence
+0:91      Sequence
+0:91        move second child to first child (temp float)
+0:91          'a1' (temp float)
+0:91          direct index (temp float)
+0:91            direct index (temp 3-component vector of float)
+0:91              'm43' (temp 4X3 matrix of float)
+0:91              Constant:
+0:91                3 (const int)
+0:91            Constant:
+0:91              1 (const int)
+0:93      Sequence
+0:93        move second child to first child (temp int)
+0:93          'a2' (temp int)
+0:93          Constant:
+0:93            4 (const int)
+0:94      add second child into first child (temp int)
+0:94        'a2' (temp int)
+0:94        Constant:
+0:94          3 (const int)
+0:95      add second child into first child (temp int)
+0:95        'a2' (temp int)
+0:95        Constant:
+0:95          3 (const int)
+0:96      Sequence
+0:96        move second child to first child (temp float)
+0:96          'b' (const (read only) float)
+0:96          component-wise multiply (temp float)
+0:96            Constant:
+0:96              2.000000
+0:96            'a1' (temp float)
+0:97      Sequence
+0:97        move second child to first child (temp int)
+0:97          'a' (temp int)
+0:97          Constant:
+0:97            -1 (const int)
+0:109  Function Definition: qux( (global void)
+0:109    Function Parameters: 
+0:111    Sequence
+0:111      Sequence
+0:111        move second child to first child (temp int)
+0:111          'i' (temp int)
+0:111          aoeu: direct index for structure (layout(column_major shared ) uniform int)
+0:111            'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:111            Constant:
+0:111              0 (const uint)
+0:112      imageAtomicCompSwap (global int)
+0:112        'iimg2D' (layout(r32i ) uniform iimage2D)
+0:112        Construct ivec2 (temp 2-component vector of int)
+0:112          'i' (temp int)
+0:112          'i' (temp int)
+0:112        'i' (temp int)
+0:112        'i' (temp int)
+0:113      imageAtomicAdd (global uint)
+0:113        'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:113        Construct ivec2 (temp 2-component vector of int)
+0:113          'i' (temp int)
+0:113          'i' (temp int)
+0:113        Convert int to uint (temp uint)
+0:113          'i' (temp int)
+0:114      imageAtomicMin (global int)
+0:114        'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:114        Construct ivec2 (temp 2-component vector of int)
+0:114          'i' (temp int)
+0:114          'i' (temp int)
+0:114        'i' (temp int)
+0:115      Constant:
+0:115        0.000000
+0:116      Sequence
+0:116        move second child to first child (temp 4-component vector of int)
+0:116          'pos' (temp 4-component vector of int)
+0:116          imageLoad (global 4-component vector of int)
+0:116            'iimg2D' (layout(r32i ) uniform iimage2D)
+0:116            Construct ivec2 (temp 2-component vector of int)
+0:116              'i' (temp int)
+0:116              'i' (temp int)
+0:117      Sequence
+0:117        move second child to first child (temp 4-component vector of float)
+0:117          'col' (temp 4-component vector of float)
+0:117          imageLoad (global 4-component vector of float)
+0:117            'img2DMS' (uniform image2DMS)
+0:117            Construct ivec2 (temp 2-component vector of int)
+0:117              'i' (temp int)
+0:117              'i' (temp int)
+0:117            'i' (temp int)
+0:118      imageStore (global void)
+0:118        'img2DMSWO' (writeonly uniform image2DMS)
+0:118        Construct ivec2 (temp 2-component vector of int)
+0:118          'i' (temp int)
+0:118          'i' (temp int)
+0:118        'i' (temp int)
+0:118        Constant:
+0:118          0.000000
+0:118          0.000000
+0:118          0.000000
+0:118          0.000000
+0:119      imageLoad (global 4-component vector of float)
+0:119        'img2DMSWO' (writeonly uniform image2DMS)
+0:119        Construct ivec2 (temp 2-component vector of int)
+0:119          'i' (temp int)
+0:119          'i' (temp int)
+0:119        'i' (temp int)
+0:125  Function Definition: passr(iI21; (global void)
+0:125    Function Parameters: 
+0:125      'image' (coherent readonly in iimage2D)
+0:132  Function Definition: passrc( (global void)
+0:132    Function Parameters: 
+0:134    Sequence
+0:134      Function Call: passr(iI21; (global void)
+0:134        'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:135      Function Call: passr(iI21; (global void)
+0:135        'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:136      Function Call: passr(iI21; (global void)
+0:136        'iimg2D' (layout(r32i ) uniform iimage2D)
+0:153  Function Definition: qlod( (global void)
+0:153    Function Parameters: 
+0:?     Sequence
+0:157      'levels' (temp int)
+0:158      'levels' (temp int)
+0:?   Linker Objects
+0:?     'v2' (smooth out 2-component vector of float)
+0:?     'bad' (in 10-element array of 4-component vector of float)
+0:?     'badorder' (in 4-component vector of float)
+0:?     'badorder2' (invariant smooth out 4-component vector of float)
+0:?     'badorder4' (centroid in 4-component vector of float)
+0:?     'badorder3' (flat out 4-component vector of float)
+0:?     'rep' (smooth flat out 4-component vector of float)
+0:?     'rep2' (centroid smooth sample out 4-component vector of float)
+0:?     'rep3' (in 4-component vector of float)
+0:?     'anonconst' (global int)
+0:?     'aconst' (const int)
+0:?       5 (const int)
+0:?     'a' (const int)
+0:?       5 (const int)
+0:?     'b' (temp int)
+0:?     'cx' (const float)
+0:?       4.200000
+0:?     'dx' (const float)
+0:?       4.200000
+0:?     'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:?     'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:?     'anon@1' (layout(binding=1 ) in block{in int aoeua})
+0:?     'anon@2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})
+0:?     'sampb1' (layout(binding=4 ) uniform sampler2D)
+0:?     'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)
+0:?     'sampb3' (layout(binding=80 ) uniform sampler2D)
+0:?     'sampb4' (layout(binding=31 ) uniform sampler2D)
+0:?     'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
+0:?     'anon@3' (out block{out implicitly-sized array of float ClipDistance gl_ClipDistance, })
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (smooth patch out 4-component vector of float)
+0:?     'comma0' (temp int)
+0:?     'comma1' (global 1-element array of int)
+0:?     'iimg2D' (layout(r32i ) uniform iimage2D)
+0:?     'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:?     'img2Drgba' (layout(rgba32f ) uniform image2D)
+0:?     'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:?     'img2DMS' (uniform image2DMS)
+0:?     'img2DMSWO' (writeonly uniform image2DMS)
+0:?     'vol' (volatile temp float)
+0:?     'vol2' (readonly temp int)
+0:?     'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:?     'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:?     'i1bad' (layout(rg8i ) uniform uimage2D)
+0:?     'i2bad' (layout(rgba32i ) uniform image2D)
+0:?     'i3bad' (layout(rgba32f ) uniform uimage2D)
+0:?     'i4bad' (layout(r8_snorm ) uniform iimage2D)
+0:?     'i5bad' (layout(rgba32ui ) uniform iimage2D)
+0:?     'i6bad' (layout(r8ui ) uniform iimage2D)
+0:?     'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
+0:?     'samp1D' (uniform sampler1D)
+0:?     'samp1Ds' (uniform sampler1DShadow)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:20  Function Definition: foo( (const int)
+0:20    Function Parameters: 
+0:?     Sequence
+0:23      Sequence
+0:23        move second child to first child (temp int)
+0:23          'b' (const (read only) int)
+0:23          'anonconst' (global int)
+0:25      Sequence
+0:25        move second child to first child (temp int)
+0:25          'd' (const (read only) int)
+0:25          'b' (const (read only) int)
+0:29      Branch: Return with expression
+0:29        'b' (const (read only) int)
+0:32  Function Definition: main( (global void)
+0:32    Function Parameters: 
+0:?     Sequence
+0:35      Test condition and select (temp void)
+0:35        Condition
+0:35        Compare Equal (temp bool)
+0:35          'i' (temp int)
+0:35          Constant:
+0:35            3 (const int)
+0:35        true case
+0:36        Sequence
+0:36          move second child to first child (temp int)
+0:36            'j' (temp int)
+0:36            'i' (temp int)
+0:42      Loop with condition tested first
+0:42        Loop Condition
+0:42        Constant:
+0:42          true (const bool)
+0:42        No loop body
+0:50  Function Definition: bar(vf4; (global void)
+0:50    Function Parameters: 
+0:50      'v' (volatile in 4-component vector of float)
+0:?     Sequence
+0:53      's' (temp int)
+0:54      's' (temp int)
+0:55      Test condition and select (temp void)
+0:55        Condition
+0:55        Compare Equal (temp bool)
+0:55          direct index (temp float)
+0:55            direct index (temp 4-component vector of float)
+0:55              'bad' (in 10-element array of 4-component vector of float)
+0:55              Constant:
+0:55                0 (const int)
+0:55            Constant:
+0:55              0 (const int)
+0:55          Constant:
+0:55            4.200000
+0:55        true case is null
+0:57      Test condition and select (temp void)
+0:57        Condition
+0:57        Constant:
+0:57          true (const bool)
+0:57        true case
+0:58        move second child to first child (temp 4-component vector of float)
+0:58          'badorder3' (flat out 4-component vector of float)
+0:58          direct index (temp 4-component vector of float)
+0:58            'bad' (in 10-element array of 4-component vector of float)
+0:58            Constant:
+0:58              0 (const int)
+0:61      Sequence
+0:61        move second child to first child (temp 3-component vector of float)
+0:61          'smeared' (temp 3-component vector of float)
+0:61          Construct vec3 (temp 3-component vector of float)
+0:61            'f' (temp float)
+0:62      'f' (temp float)
+0:63      'f' (temp float)
+0:88  Function Definition: bar23444( (global void)
+0:88    Function Parameters: 
+0:?     Sequence
+0:91      Sequence
+0:91        move second child to first child (temp float)
+0:91          'a1' (temp float)
+0:91          direct index (temp float)
+0:91            direct index (temp 3-component vector of float)
+0:91              'm43' (temp 4X3 matrix of float)
+0:91              Constant:
+0:91                3 (const int)
+0:91            Constant:
+0:91              1 (const int)
+0:93      Sequence
+0:93        move second child to first child (temp int)
+0:93          'a2' (temp int)
+0:93          Constant:
+0:93            4 (const int)
+0:94      add second child into first child (temp int)
+0:94        'a2' (temp int)
+0:94        Constant:
+0:94          3 (const int)
+0:95      add second child into first child (temp int)
+0:95        'a2' (temp int)
+0:95        Constant:
+0:95          3 (const int)
+0:96      Sequence
+0:96        move second child to first child (temp float)
+0:96          'b' (const (read only) float)
+0:96          component-wise multiply (temp float)
+0:96            Constant:
+0:96              2.000000
+0:96            'a1' (temp float)
+0:97      Sequence
+0:97        move second child to first child (temp int)
+0:97          'a' (temp int)
+0:97          Constant:
+0:97            -1 (const int)
+0:109  Function Definition: qux( (global void)
+0:109    Function Parameters: 
+0:111    Sequence
+0:111      Sequence
+0:111        move second child to first child (temp int)
+0:111          'i' (temp int)
+0:111          aoeu: direct index for structure (layout(column_major shared ) uniform int)
+0:111            'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:111            Constant:
+0:111              0 (const uint)
+0:112      imageAtomicCompSwap (global int)
+0:112        'iimg2D' (layout(r32i ) uniform iimage2D)
+0:112        Construct ivec2 (temp 2-component vector of int)
+0:112          'i' (temp int)
+0:112          'i' (temp int)
+0:112        'i' (temp int)
+0:112        'i' (temp int)
+0:113      imageAtomicAdd (global uint)
+0:113        'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:113        Construct ivec2 (temp 2-component vector of int)
+0:113          'i' (temp int)
+0:113          'i' (temp int)
+0:113        Convert int to uint (temp uint)
+0:113          'i' (temp int)
+0:114      imageAtomicMin (global int)
+0:114        'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:114        Construct ivec2 (temp 2-component vector of int)
+0:114          'i' (temp int)
+0:114          'i' (temp int)
+0:114        'i' (temp int)
+0:115      Constant:
+0:115        0.000000
+0:116      Sequence
+0:116        move second child to first child (temp 4-component vector of int)
+0:116          'pos' (temp 4-component vector of int)
+0:116          imageLoad (global 4-component vector of int)
+0:116            'iimg2D' (layout(r32i ) uniform iimage2D)
+0:116            Construct ivec2 (temp 2-component vector of int)
+0:116              'i' (temp int)
+0:116              'i' (temp int)
+0:117      Sequence
+0:117        move second child to first child (temp 4-component vector of float)
+0:117          'col' (temp 4-component vector of float)
+0:117          imageLoad (global 4-component vector of float)
+0:117            'img2DMS' (uniform image2DMS)
+0:117            Construct ivec2 (temp 2-component vector of int)
+0:117              'i' (temp int)
+0:117              'i' (temp int)
+0:117            'i' (temp int)
+0:118      imageStore (global void)
+0:118        'img2DMSWO' (writeonly uniform image2DMS)
+0:118        Construct ivec2 (temp 2-component vector of int)
+0:118          'i' (temp int)
+0:118          'i' (temp int)
+0:118        'i' (temp int)
+0:118        Constant:
+0:118          0.000000
+0:118          0.000000
+0:118          0.000000
+0:118          0.000000
+0:119      imageLoad (global 4-component vector of float)
+0:119        'img2DMSWO' (writeonly uniform image2DMS)
+0:119        Construct ivec2 (temp 2-component vector of int)
+0:119          'i' (temp int)
+0:119          'i' (temp int)
+0:119        'i' (temp int)
+0:125  Function Definition: passr(iI21; (global void)
+0:125    Function Parameters: 
+0:125      'image' (coherent readonly in iimage2D)
+0:132  Function Definition: passrc( (global void)
+0:132    Function Parameters: 
+0:134    Sequence
+0:134      Function Call: passr(iI21; (global void)
+0:134        'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:135      Function Call: passr(iI21; (global void)
+0:135        'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:136      Function Call: passr(iI21; (global void)
+0:136        'iimg2D' (layout(r32i ) uniform iimage2D)
+0:153  Function Definition: qlod( (global void)
+0:153    Function Parameters: 
+0:?     Sequence
+0:157      'levels' (temp int)
+0:158      'levels' (temp int)
+0:?   Linker Objects
+0:?     'v2' (smooth out 2-component vector of float)
+0:?     'bad' (in 10-element array of 4-component vector of float)
+0:?     'badorder' (in 4-component vector of float)
+0:?     'badorder2' (invariant smooth out 4-component vector of float)
+0:?     'badorder4' (centroid in 4-component vector of float)
+0:?     'badorder3' (flat out 4-component vector of float)
+0:?     'rep' (smooth flat out 4-component vector of float)
+0:?     'rep2' (centroid smooth sample out 4-component vector of float)
+0:?     'rep3' (in 4-component vector of float)
+0:?     'anonconst' (global int)
+0:?     'aconst' (const int)
+0:?       5 (const int)
+0:?     'a' (const int)
+0:?       5 (const int)
+0:?     'b' (temp int)
+0:?     'cx' (const float)
+0:?       4.200000
+0:?     'dx' (const float)
+0:?       4.200000
+0:?     'boundInst' (layout(binding=3 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:?     'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu})
+0:?     'anon@1' (layout(binding=1 ) in block{in int aoeua})
+0:?     'anon@2' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform int aooeu})
+0:?     'sampb1' (layout(binding=4 ) uniform sampler2D)
+0:?     'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)
+0:?     'sampb3' (layout(binding=80 ) uniform sampler2D)
+0:?     'sampb4' (layout(binding=31 ) uniform sampler2D)
+0:?     'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
+0:?     'anon@3' (out block{out 1-element array of float ClipDistance gl_ClipDistance, })
+0:?     'patchIn' (patch in 4-component vector of float)
+0:?     'patchOut' (smooth patch out 4-component vector of float)
+0:?     'comma0' (temp int)
+0:?     'comma1' (global 1-element array of int)
+0:?     'iimg2D' (layout(r32i ) uniform iimage2D)
+0:?     'iimg2Drgba' (layout(rgba32i ) uniform iimage2D)
+0:?     'img2Drgba' (layout(rgba32f ) uniform image2D)
+0:?     'uimg2D' (layout(r32ui ) uniform uimage2D)
+0:?     'img2DMS' (uniform image2DMS)
+0:?     'img2DMSWO' (writeonly uniform image2DMS)
+0:?     'vol' (volatile temp float)
+0:?     'vol2' (readonly temp int)
+0:?     'qualim1' (layout(r32i ) coherent readonly uniform iimage2D)
+0:?     'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D)
+0:?     'i1bad' (layout(rg8i ) uniform uimage2D)
+0:?     'i2bad' (layout(rgba32i ) uniform image2D)
+0:?     'i3bad' (layout(rgba32f ) uniform uimage2D)
+0:?     'i4bad' (layout(r8_snorm ) uniform iimage2D)
+0:?     'i5bad' (layout(rgba32ui ) uniform iimage2D)
+0:?     'i6bad' (layout(r8ui ) uniform iimage2D)
+0:?     'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
+0:?     'samp1D' (uniform sampler1D)
+0:?     'samp1Ds' (uniform sampler1DShadow)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/420_size_gl_in.geom.out b/Test/baseResults/420_size_gl_in.geom.out
index 43f7c2e..bb7e515 100644
--- a/Test/baseResults/420_size_gl_in.geom.out
+++ b/Test/baseResults/420_size_gl_in.geom.out
@@ -1,77 +1,77 @@
-420_size_gl_in.geom

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 420

-invocations = 0

-max_vertices = 0

-input primitive = triangles

-output primitive = none

-ERROR: node is still EOpNull!

-0:11  Function Definition: foo( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      Constant:

-0:13        3 (const int)

-0:14      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:14        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:14          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:14          Constant:

-0:14            1 (const int)

-0:14        Constant:

-0:14          0 (const int)

-0:15      Constant:

-0:15        3 (const int)

-0:16      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:16        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:16          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-0:16          'i' (global int)

-0:16        Constant:

-0:16          0 (const int)

-0:?   Linker Objects

-0:?     'i' (global int)

-0:?     'colorun' (in 3-element array of 4-component vector of float)

-0:?     'color3' (in 3-element array of 4-component vector of float)

-0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})

-

-

-Linked geometry stage:

-

-ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point

-ERROR: Linking geometry stage: At least one shader must specify an output layout primitive

-ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

-

-Shader version: 420

-invocations = 0

-max_vertices = 0

-input primitive = triangles

-output primitive = none

-ERROR: node is still EOpNull!

-0:11  Function Definition: foo( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      Constant:

-0:13        3 (const int)

-0:14      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:14        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:14          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:14          Constant:

-0:14            1 (const int)

-0:14        Constant:

-0:14          0 (const int)

-0:15      Constant:

-0:15        3 (const int)

-0:16      gl_Position: direct index for structure (in 4-component vector of float Position)

-0:16        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:16          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-0:16          'i' (global int)

-0:16        Constant:

-0:16          0 (const int)

-0:?   Linker Objects

-0:?     'i' (global int)

-0:?     'colorun' (in 3-element array of 4-component vector of float)

-0:?     'color3' (in 3-element array of 4-component vector of float)

-0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})

-

+420_size_gl_in.geom
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 420
+invocations = 0
+max_vertices = 0
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:11  Function Definition: foo( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      Constant:
+0:13        3 (const int)
+0:14      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:14        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:14          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:14          Constant:
+0:14            1 (const int)
+0:14        Constant:
+0:14          0 (const int)
+0:15      Constant:
+0:15        3 (const int)
+0:16      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:16        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:16          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+0:16          'i' (global int)
+0:16        Constant:
+0:16          0 (const int)
+0:?   Linker Objects
+0:?     'i' (global int)
+0:?     'colorun' (in 3-element array of 4-component vector of float)
+0:?     'color3' (in 3-element array of 4-component vector of float)
+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in implicitly-sized array of float ClipDistance gl_ClipDistance})
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 420
+invocations = 0
+max_vertices = 0
+input primitive = triangles
+output primitive = none
+ERROR: node is still EOpNull!
+0:11  Function Definition: foo( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      Constant:
+0:13        3 (const int)
+0:14      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:14        direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:14          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:14          Constant:
+0:14            1 (const int)
+0:14        Constant:
+0:14          0 (const int)
+0:15      Constant:
+0:15        3 (const int)
+0:16      gl_Position: direct index for structure (in 4-component vector of float Position)
+0:16        indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:16          'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+0:16          'i' (global int)
+0:16        Constant:
+0:16          0 (const int)
+0:?   Linker Objects
+0:?     'i' (global int)
+0:?     'colorun' (in 3-element array of 4-component vector of float)
+0:?     'color3' (in 3-element array of 4-component vector of float)
+0:?     'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance})
+
diff --git a/Test/baseResults/430.comp.out b/Test/baseResults/430.comp.out
index 538caa0..3989659 100644
--- a/Test/baseResults/430.comp.out
+++ b/Test/baseResults/430.comp.out
@@ -1,281 +1,281 @@
-430.comp

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:4: 'local_size' : cannot change previously set size 

-ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize 

-ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader 

-ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute

-ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader 

-ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader 

-ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable 

-ERROR: 0:48: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 

-ERROR: 0:49: 'shared' :  cannot initialize this type of qualifier  

-ERROR: 0:51: 'local_size' : can only apply to 'in' 

-ERROR: 0:51: 'local_size' : can only apply to 'in' 

-ERROR: 0:51: 'local_size' : can only apply to 'in' 

-ERROR: 0:65: 'assign' :  l-value required "ro" (can't modify a readonly buffer)

-ERROR: 0:77: '=' :  cannot convert from 'temp double' to 'temp int'

-ERROR: 0:81: 'input block' : not supported in this stage: compute

-ERROR: 0:85: 'output block' : not supported in this stage: compute

-ERROR: 16 compilation errors.  No code generated.

-

-

-Shader version: 430

-local_size = (2, 1, 4096)

-ERROR: node is still EOpNull!

-0:27  Function Definition: main( (global void)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Barrier (global void)

-0:30      MemoryBarrier (global void)

-0:31      MemoryBarrierAtomicCounter (global void)

-0:32      MemoryBarrierBuffer (global void)

-0:33      MemoryBarrierShared (global void)

-0:34      MemoryBarrierImage (global void)

-0:35      GroupMemoryBarrier (global void)

-0:36      move second child to first child (temp int)

-0:36        value: direct index for structure (layout(column_major shared ) buffer int)

-0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:36          Constant:

-0:36            0 (const uint)

-0:36        Convert float to int (temp int)

-0:36          indirect index (layout(column_major shared ) temp float)

-0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)

-0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:36              Constant:

-0:36                1 (const uint)

-0:36            'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)

-0:39      Test condition and select (temp void)

-0:39        Condition

-0:39        Compare Greater Than (temp bool)

-0:39          'a' (temp int)

-0:39          Constant:

-0:39            10 (const int)

-0:39        true case

-0:40        Barrier (global void)

-0:63  Function Definition: foo( (global void)

-0:63    Function Parameters: 

-0:65    Sequence

-0:65      move second child to first child (temp float)

-0:65        direct index (layout(column_major shared ) temp float)

-0:65          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)

-0:65            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:65            Constant:

-0:65              1 (const int)

-0:65          Constant:

-0:65            2 (const int)

-0:65        Constant:

-0:65          4.700000

-0:66      array length (temp int)

-0:66        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)

-0:66          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:66          Constant:

-0:66            1 (const int)

-0:67      Barrier (global void)

-0:72  Function Definition: fooaoeu( (global void)

-0:72    Function Parameters: 

-0:73    Sequence

-0:73      Sequence

-0:73        move second child to first child (temp 2-component vector of int)

-0:73          'storePos' (temp 2-component vector of int)

-0:73          Convert uint to int (temp 2-component vector of int)

-0:73            vector swizzle (temp 2-component vector of uint)

-0:73              'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)

-0:73              Sequence

-0:73                Constant:

-0:73                  0 (const int)

-0:73                Constant:

-0:73                  1 (const int)

-0:74      Sequence

-0:74        move second child to first child (temp double)

-0:74          'localCoef' (temp double)

-0:74          Convert float to double (temp double)

-0:74            length (global float)

-0:74              divide (temp 2-component vector of float)

-0:74                Convert int to float (temp 2-component vector of float)

-0:74                  subtract (temp 2-component vector of int)

-0:74                    Convert uint to int (temp 2-component vector of int)

-0:74                      vector swizzle (temp 2-component vector of uint)

-0:74                        'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)

-0:74                        Sequence

-0:74                          Constant:

-0:74                            0 (const int)

-0:74                          Constant:

-0:74                            1 (const int)

-0:74                    Constant:

-0:74                      8 (const int)

-0:74                Constant:

-0:74                  8.000000

-0:75      Sequence

-0:75        move second child to first child (temp 4-component vector of double)

-0:75          'aa' (temp 4-component vector of double)

-0:75          Constant:

-0:75            0.400000

-0:75            0.200000

-0:75            0.300000

-0:75            0.400000

-0:76      Sequence

-0:76        move second child to first child (temp double)

-0:76          'globalCoef' (temp double)

-0:76          Constant:

-0:76            1.000000

-0:78      Sequence

-0:78        move second child to first child (temp double)

-0:78          'di' (temp double)

-0:78          Convert int to double (temp double)

-0:78            'i' (temp int)

-0:?   Linker Objects

-0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)

-0:?       2 (const uint)

-0:?       1 (const uint)

-0:?       4096 (const uint)

-0:?     'total' (const int)

-0:?       66592 (const int)

-0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of float values, layout(column_major shared ) buffer int value})

-0:?     'v3' (layout(location=2 ) in 3-component vector of float)

-0:?     'f' (in float)

-0:?     'fo' (out float)

-0:?     's' (shared 4-component vector of float)

-0:?     'sl' (layout(location=2 ) shared 4-component vector of float)

-0:?     'fs' (shared float)

-0:?     'arrX' (global 2-element array of int)

-0:?     'arrY' (global 1-element array of int)

-0:?     'arrZ' (global 4096-element array of int)

-0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:?     'roll' (uniform double)

-0:?     'destTex' (writeonly uniform image2D)

-0:?     'inbi' (in block{in int a})

-0:?     'outbi' (out block{out int a})

-

-

-Linked compute stage:

-

-

-Shader version: 430

-local_size = (2, 1, 4096)

-ERROR: node is still EOpNull!

-0:27  Function Definition: main( (global void)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Barrier (global void)

-0:30      MemoryBarrier (global void)

-0:31      MemoryBarrierAtomicCounter (global void)

-0:32      MemoryBarrierBuffer (global void)

-0:33      MemoryBarrierShared (global void)

-0:34      MemoryBarrierImage (global void)

-0:35      GroupMemoryBarrier (global void)

-0:36      move second child to first child (temp int)

-0:36        value: direct index for structure (layout(column_major shared ) buffer int)

-0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:36          Constant:

-0:36            0 (const uint)

-0:36        Convert float to int (temp int)

-0:36          indirect index (layout(column_major shared ) temp float)

-0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)

-0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:36              Constant:

-0:36                1 (const uint)

-0:36            'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)

-0:39      Test condition and select (temp void)

-0:39        Condition

-0:39        Compare Greater Than (temp bool)

-0:39          'a' (temp int)

-0:39          Constant:

-0:39            10 (const int)

-0:39        true case

-0:40        Barrier (global void)

-0:63  Function Definition: foo( (global void)

-0:63    Function Parameters: 

-0:65    Sequence

-0:65      move second child to first child (temp float)

-0:65        direct index (layout(column_major shared ) temp float)

-0:65          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)

-0:65            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:65            Constant:

-0:65              1 (const int)

-0:65          Constant:

-0:65            2 (const int)

-0:65        Constant:

-0:65          4.700000

-0:66      array length (temp int)

-0:66        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)

-0:66          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:66          Constant:

-0:66            1 (const int)

-0:67      Barrier (global void)

-0:72  Function Definition: fooaoeu( (global void)

-0:72    Function Parameters: 

-0:73    Sequence

-0:73      Sequence

-0:73        move second child to first child (temp 2-component vector of int)

-0:73          'storePos' (temp 2-component vector of int)

-0:73          Convert uint to int (temp 2-component vector of int)

-0:73            vector swizzle (temp 2-component vector of uint)

-0:73              'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)

-0:73              Sequence

-0:73                Constant:

-0:73                  0 (const int)

-0:73                Constant:

-0:73                  1 (const int)

-0:74      Sequence

-0:74        move second child to first child (temp double)

-0:74          'localCoef' (temp double)

-0:74          Convert float to double (temp double)

-0:74            length (global float)

-0:74              divide (temp 2-component vector of float)

-0:74                Convert int to float (temp 2-component vector of float)

-0:74                  subtract (temp 2-component vector of int)

-0:74                    Convert uint to int (temp 2-component vector of int)

-0:74                      vector swizzle (temp 2-component vector of uint)

-0:74                        'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)

-0:74                        Sequence

-0:74                          Constant:

-0:74                            0 (const int)

-0:74                          Constant:

-0:74                            1 (const int)

-0:74                    Constant:

-0:74                      8 (const int)

-0:74                Constant:

-0:74                  8.000000

-0:75      Sequence

-0:75        move second child to first child (temp 4-component vector of double)

-0:75          'aa' (temp 4-component vector of double)

-0:75          Constant:

-0:75            0.400000

-0:75            0.200000

-0:75            0.300000

-0:75            0.400000

-0:76      Sequence

-0:76        move second child to first child (temp double)

-0:76          'globalCoef' (temp double)

-0:76          Constant:

-0:76            1.000000

-0:78      Sequence

-0:78        move second child to first child (temp double)

-0:78          'di' (temp double)

-0:78          Convert int to double (temp double)

-0:78            'i' (temp int)

-0:?   Linker Objects

-0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)

-0:?       2 (const uint)

-0:?       1 (const uint)

-0:?       4096 (const uint)

-0:?     'total' (const int)

-0:?       66592 (const int)

-0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of float values, layout(column_major shared ) buffer int value})

-0:?     'v3' (layout(location=2 ) in 3-component vector of float)

-0:?     'f' (in float)

-0:?     'fo' (out float)

-0:?     's' (shared 4-component vector of float)

-0:?     'sl' (layout(location=2 ) shared 4-component vector of float)

-0:?     'fs' (shared float)

-0:?     'arrX' (global 2-element array of int)

-0:?     'arrY' (global 1-element array of int)

-0:?     'arrZ' (global 4096-element array of int)

-0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})

-0:?     'roll' (uniform double)

-0:?     'destTex' (writeonly uniform image2D)

-0:?     'inbi' (in block{in int a})

-0:?     'outbi' (out block{out int a})

-

+430.comp
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:4: 'local_size' : cannot change previously set size 
+ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize 
+ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader 
+ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute
+ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader 
+ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader 
+ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable 
+ERROR: 0:48: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 
+ERROR: 0:49: 'shared' :  cannot initialize this type of qualifier  
+ERROR: 0:51: 'local_size' : can only apply to 'in' 
+ERROR: 0:51: 'local_size' : can only apply to 'in' 
+ERROR: 0:51: 'local_size' : can only apply to 'in' 
+ERROR: 0:65: 'assign' :  l-value required "ro" (can't modify a readonly buffer)
+ERROR: 0:77: '=' :  cannot convert from 'temp double' to 'temp int'
+ERROR: 0:81: 'input block' : not supported in this stage: compute
+ERROR: 0:85: 'output block' : not supported in this stage: compute
+ERROR: 16 compilation errors.  No code generated.
+
+
+Shader version: 430
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( (global void)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Barrier (global void)
+0:30      MemoryBarrier (global void)
+0:31      MemoryBarrierAtomicCounter (global void)
+0:32      MemoryBarrierBuffer (global void)
+0:33      MemoryBarrierShared (global void)
+0:34      MemoryBarrierImage (global void)
+0:35      GroupMemoryBarrier (global void)
+0:36      move second child to first child (temp int)
+0:36        value: direct index for structure (layout(column_major shared ) buffer int)
+0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36          Constant:
+0:36            0 (const uint)
+0:36        Convert float to int (temp int)
+0:36          indirect index (layout(column_major shared ) temp float)
+0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36              Constant:
+0:36                1 (const uint)
+0:36            'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
+0:39      Test condition and select (temp void)
+0:39        Condition
+0:39        Compare Greater Than (temp bool)
+0:39          'a' (temp int)
+0:39          Constant:
+0:39            10 (const int)
+0:39        true case
+0:40        Barrier (global void)
+0:63  Function Definition: foo( (global void)
+0:63    Function Parameters: 
+0:65    Sequence
+0:65      move second child to first child (temp float)
+0:65        direct index (layout(column_major shared ) temp float)
+0:65          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:65            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:65            Constant:
+0:65              1 (const int)
+0:65          Constant:
+0:65            2 (const int)
+0:65        Constant:
+0:65          4.700000
+0:66      array length (temp int)
+0:66        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:66          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:66          Constant:
+0:66            1 (const int)
+0:67      Barrier (global void)
+0:72  Function Definition: fooaoeu( (global void)
+0:72    Function Parameters: 
+0:73    Sequence
+0:73      Sequence
+0:73        move second child to first child (temp 2-component vector of int)
+0:73          'storePos' (temp 2-component vector of int)
+0:73          Convert uint to int (temp 2-component vector of int)
+0:73            vector swizzle (temp 2-component vector of uint)
+0:73              'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
+0:73              Sequence
+0:73                Constant:
+0:73                  0 (const int)
+0:73                Constant:
+0:73                  1 (const int)
+0:74      Sequence
+0:74        move second child to first child (temp double)
+0:74          'localCoef' (temp double)
+0:74          Convert float to double (temp double)
+0:74            length (global float)
+0:74              divide (temp 2-component vector of float)
+0:74                Convert int to float (temp 2-component vector of float)
+0:74                  subtract (temp 2-component vector of int)
+0:74                    Convert uint to int (temp 2-component vector of int)
+0:74                      vector swizzle (temp 2-component vector of uint)
+0:74                        'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
+0:74                        Sequence
+0:74                          Constant:
+0:74                            0 (const int)
+0:74                          Constant:
+0:74                            1 (const int)
+0:74                    Constant:
+0:74                      8 (const int)
+0:74                Constant:
+0:74                  8.000000
+0:75      Sequence
+0:75        move second child to first child (temp 4-component vector of double)
+0:75          'aa' (temp 4-component vector of double)
+0:75          Constant:
+0:75            0.400000
+0:75            0.200000
+0:75            0.300000
+0:75            0.400000
+0:76      Sequence
+0:76        move second child to first child (temp double)
+0:76          'globalCoef' (temp double)
+0:76          Constant:
+0:76            1.000000
+0:78      Sequence
+0:78        move second child to first child (temp double)
+0:78          'di' (temp double)
+0:78          Convert int to double (temp double)
+0:78            'i' (temp int)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
+0:?       2 (const uint)
+0:?       1 (const uint)
+0:?       4096 (const uint)
+0:?     'total' (const int)
+0:?       66592 (const int)
+0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of float values, layout(column_major shared ) buffer int value})
+0:?     'v3' (layout(location=2 ) in 3-component vector of float)
+0:?     'f' (in float)
+0:?     'fo' (out float)
+0:?     's' (shared 4-component vector of float)
+0:?     'sl' (layout(location=2 ) shared 4-component vector of float)
+0:?     'fs' (shared float)
+0:?     'arrX' (global 2-element array of int)
+0:?     'arrY' (global 1-element array of int)
+0:?     'arrZ' (global 4096-element array of int)
+0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:?     'roll' (uniform double)
+0:?     'destTex' (writeonly uniform image2D)
+0:?     'inbi' (in block{in int a})
+0:?     'outbi' (out block{out int a})
+
+
+Linked compute stage:
+
+
+Shader version: 430
+local_size = (2, 1, 4096)
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( (global void)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Barrier (global void)
+0:30      MemoryBarrier (global void)
+0:31      MemoryBarrierAtomicCounter (global void)
+0:32      MemoryBarrierBuffer (global void)
+0:33      MemoryBarrierShared (global void)
+0:34      MemoryBarrierImage (global void)
+0:35      GroupMemoryBarrier (global void)
+0:36      move second child to first child (temp int)
+0:36        value: direct index for structure (layout(column_major shared ) buffer int)
+0:36          'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36          Constant:
+0:36            0 (const uint)
+0:36        Convert float to int (temp int)
+0:36          indirect index (layout(column_major shared ) temp float)
+0:36            values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:36              'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:36              Constant:
+0:36                1 (const uint)
+0:36            'gl_LocalInvocationIndex' (in uint LocalInvocationIndex)
+0:39      Test condition and select (temp void)
+0:39        Condition
+0:39        Compare Greater Than (temp bool)
+0:39          'a' (temp int)
+0:39          Constant:
+0:39            10 (const int)
+0:39        true case
+0:40        Barrier (global void)
+0:63  Function Definition: foo( (global void)
+0:63    Function Parameters: 
+0:65    Sequence
+0:65      move second child to first child (temp float)
+0:65        direct index (layout(column_major shared ) temp float)
+0:65          values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:65            'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:65            Constant:
+0:65              1 (const int)
+0:65          Constant:
+0:65            2 (const int)
+0:65        Constant:
+0:65          4.700000
+0:66      array length (temp int)
+0:66        values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
+0:66          'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:66          Constant:
+0:66            1 (const int)
+0:67      Barrier (global void)
+0:72  Function Definition: fooaoeu( (global void)
+0:72    Function Parameters: 
+0:73    Sequence
+0:73      Sequence
+0:73        move second child to first child (temp 2-component vector of int)
+0:73          'storePos' (temp 2-component vector of int)
+0:73          Convert uint to int (temp 2-component vector of int)
+0:73            vector swizzle (temp 2-component vector of uint)
+0:73              'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID)
+0:73              Sequence
+0:73                Constant:
+0:73                  0 (const int)
+0:73                Constant:
+0:73                  1 (const int)
+0:74      Sequence
+0:74        move second child to first child (temp double)
+0:74          'localCoef' (temp double)
+0:74          Convert float to double (temp double)
+0:74            length (global float)
+0:74              divide (temp 2-component vector of float)
+0:74                Convert int to float (temp 2-component vector of float)
+0:74                  subtract (temp 2-component vector of int)
+0:74                    Convert uint to int (temp 2-component vector of int)
+0:74                      vector swizzle (temp 2-component vector of uint)
+0:74                        'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID)
+0:74                        Sequence
+0:74                          Constant:
+0:74                            0 (const int)
+0:74                          Constant:
+0:74                            1 (const int)
+0:74                    Constant:
+0:74                      8 (const int)
+0:74                Constant:
+0:74                  8.000000
+0:75      Sequence
+0:75        move second child to first child (temp 4-component vector of double)
+0:75          'aa' (temp 4-component vector of double)
+0:75          Constant:
+0:75            0.400000
+0:75            0.200000
+0:75            0.300000
+0:75            0.400000
+0:76      Sequence
+0:76        move second child to first child (temp double)
+0:76          'globalCoef' (temp double)
+0:76          Constant:
+0:76            1.000000
+0:78      Sequence
+0:78        move second child to first child (temp double)
+0:78          'di' (temp double)
+0:78          Convert int to double (temp double)
+0:78            'i' (temp int)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
+0:?       2 (const uint)
+0:?       1 (const uint)
+0:?       4096 (const uint)
+0:?     'total' (const int)
+0:?       66592 (const int)
+0:?     'anon@0' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:?     'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized array of float values, layout(column_major shared ) buffer int value})
+0:?     'v3' (layout(location=2 ) in 3-component vector of float)
+0:?     'f' (in float)
+0:?     'fo' (out float)
+0:?     's' (shared 4-component vector of float)
+0:?     'sl' (layout(location=2 ) shared 4-component vector of float)
+0:?     'fs' (shared float)
+0:?     'arrX' (global 2-element array of int)
+0:?     'arrY' (global 1-element array of int)
+0:?     'arrZ' (global 4096-element array of int)
+0:?     'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
+0:?     'roll' (uniform double)
+0:?     'destTex' (writeonly uniform image2D)
+0:?     'inbi' (in block{in int a})
+0:?     'outbi' (out block{out int a})
+
diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out
index 5242983..30e2caf 100644
--- a/Test/baseResults/430.vert.out
+++ b/Test/baseResults/430.vert.out
@@ -1,469 +1,469 @@
-430.vert

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:3: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 

-ERROR: 0:7: 'input block' : not supported in this stage: vertex

-ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions 

-ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions 

-ERROR: 0:23: 'invariant' : can only apply to an output 

-ERROR: 0:21: 'g' : cannot use storage or interpolation qualifiers on structure members 

-ERROR: 0:22: 'h' : cannot use storage or interpolation qualifiers on structure members 

-ERROR: 0:23: 'i' : cannot use invariant qualifier on structure members 

-ERROR: 0:24: 'j' : cannot use memory qualifiers on structure members 

-ERROR: 0:25: 'm3' : cannot use layout qualifiers on structure members 

-ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter 

-ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter 

-ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter 

-ERROR: 0:42: 'location' : overlapping use of location 53

-ERROR: 0:47: 'gl_ClipDistance array size' : must be less than gl_MaxClipDistances (8)

-ERROR: 0:51: 'start' : undeclared identifier 

-ERROR: 0:51: '' : constant expression required 

-ERROR: 0:51: 'layout-id value' : scalar integer expression required 

-ERROR: 0:53: 'input block' : not supported in this stage: vertex

-ERROR: 0:54: 'location on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:57: 'input block' : not supported in this stage: vertex

-ERROR: 0:58: 'location on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:59: 'location on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:62: 'uniform buffer-member align' : not supported for this version or the enabled extensions 

-ERROR: 0:64: 'uniform buffer-member align' : not supported for this version or the enabled extensions 

-ERROR: 0:65: 'uniform buffer-member align' : not supported for this version or the enabled extensions 

-ERROR: 0:65: 'offset on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:66: 'offset on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:64: 'offset/align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:65: 'align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:71: 'offset on block member' : not supported for this version or the enabled extensions 

-ERROR: 0:74: 'gl_MaxTransformFeedbackBuffers' : required extension not requested: GL_ARB_enhanced_layouts

-ERROR: 0:75: 'gl_MaxTransformFeedbackInterleavedComponents' : required extension not requested: GL_ARB_enhanced_layouts

-ERROR: 0:78: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:92: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions 

-ERROR: 0:117: 'input block' : not supported in this stage: vertex

-ERROR: 0:123: 'input block' : not supported in this stage: vertex

-ERROR: 0:146: 'shared' : not supported in this stage: vertex

-ERROR: 0:150: 'barrier' : no matching overloaded function found 

-ERROR: 0:154: 'memoryBarrierShared' : no matching overloaded function found 

-ERROR: 0:156: 'groupMemoryBarrier' : no matching overloaded function found 

-ERROR: 0:159: 'buffer' : buffers can be declared only as blocks 

-ERROR: 0:168: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 

-ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 

-ERROR: 0:170: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 

-ERROR: 0:171: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 

-ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found 

-ERROR: 0:221: 'assign' :  cannot convert from 'const float' to 'temp int'

-ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found 

-ERROR: 0:222: 'assign' :  cannot convert from 'const float' to 'temp int'

-ERROR: 63 compilation errors.  No code generated.

-

-

-Shader version: 430

-Requested GL_ARB_enhanced_layouts

-Requested GL_ARB_shader_texture_image_samples

-in xfb mode

-ERROR: node is still EOpNull!

-0:14  Function Definition: foo( (global void)

-0:14    Function Parameters: 

-0:16    Sequence

-0:16      move second child to first child (temp float)

-0:16        direct index (temp float ClipDistance)

-0:16          gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)

-0:16            'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })

-0:16            Constant:

-0:16              2 (const uint)

-0:16          Constant:

-0:16            2 (const int)

-0:16        Constant:

-0:16          3.700000

-0:31  Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)

-0:31    Function Parameters: 

-0:31      'v4' (in 4-component vector of float)

-0:31      'v3' (volatile in 3-component vector of float)

-0:31      'v2' (in 2-component vector of float)

-0:31      'cv3' (in 3-component vector of float)

-0:148  Function Definition: fooBarrier( (global void)

-0:148    Function Parameters: 

-0:150    Sequence

-0:150      Constant:

-0:150        0.000000

-0:151      MemoryBarrier (global void)

-0:152      MemoryBarrierAtomicCounter (global void)

-0:153      MemoryBarrierBuffer (global void)

-0:154      Constant:

-0:154        0.000000

-0:155      MemoryBarrierImage (global void)

-0:156      Constant:

-0:156        0.000000

-0:166  Function Definition: fooq( (global void)

-0:166    Function Parameters: 

-0:168    Sequence

-0:168      Sequence

-0:168        move second child to first child (temp int)

-0:168          's' (temp int)

-0:168          textureSamples (global int)

-0:168            's2dms' (uniform sampler2DMS)

-0:169      add second child into first child (temp int)

-0:169        's' (temp int)

-0:169        textureSamples (global int)

-0:169          'us2dmsa' (uniform usampler2DMSArray)

-0:170      add second child into first child (temp int)

-0:170        's' (temp int)

-0:170        imageQuerySamples (global int)

-0:170          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:171      add second child into first child (temp int)

-0:171        's' (temp int)

-0:171        imageQuerySamples (global int)

-0:171          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:176  Function Definition: fooq2( (global void)

-0:176    Function Parameters: 

-0:178    Sequence

-0:178      Sequence

-0:178        move second child to first child (temp int)

-0:178          's' (temp int)

-0:178          textureSamples (global int)

-0:178            's2dms' (uniform sampler2DMS)

-0:179      add second child into first child (temp int)

-0:179        's' (temp int)

-0:179        textureSamples (global int)

-0:179          'us2dmsa' (uniform usampler2DMSArray)

-0:180      add second child into first child (temp int)

-0:180        's' (temp int)

-0:180        imageQuerySamples (global int)

-0:180          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:181      add second child into first child (temp int)

-0:181        's' (temp int)

-0:181        imageQuerySamples (global int)

-0:181          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:202  Function Definition: qlod( (global void)

-0:202    Function Parameters: 

-0:?     Sequence

-0:206      move second child to first child (temp int)

-0:206        'levels' (temp int)

-0:206        textureQueryLevels (global int)

-0:206          'samp1D' (uniform sampler1D)

-0:207      move second child to first child (temp int)

-0:207        'levels' (temp int)

-0:207        textureQueryLevels (global int)

-0:207          'usamp2D' (uniform usampler2D)

-0:208      move second child to first child (temp int)

-0:208        'levels' (temp int)

-0:208        textureQueryLevels (global int)

-0:208          'isamp3D' (uniform isampler3D)

-0:209      move second child to first child (temp int)

-0:209        'levels' (temp int)

-0:209        textureQueryLevels (global int)

-0:209          'isampCube' (uniform isamplerCube)

-0:210      move second child to first child (temp int)

-0:210        'levels' (temp int)

-0:210        textureQueryLevels (global int)

-0:210          'isamp1DA' (uniform isampler1DArray)

-0:211      move second child to first child (temp int)

-0:211        'levels' (temp int)

-0:211        textureQueryLevels (global int)

-0:211          'samp2DA' (uniform sampler2DArray)

-0:212      move second child to first child (temp int)

-0:212        'levels' (temp int)

-0:212        textureQueryLevels (global int)

-0:212          'usampCubeA' (uniform usamplerCubeArray)

-0:214      move second child to first child (temp int)

-0:214        'levels' (temp int)

-0:214        textureQueryLevels (global int)

-0:214          'samp1Ds' (uniform sampler1DShadow)

-0:215      move second child to first child (temp int)

-0:215        'levels' (temp int)

-0:215        textureQueryLevels (global int)

-0:215          'samp2Ds' (uniform sampler2DShadow)

-0:216      move second child to first child (temp int)

-0:216        'levels' (temp int)

-0:216        textureQueryLevels (global int)

-0:216          'sampCubes' (uniform samplerCubeShadow)

-0:217      move second child to first child (temp int)

-0:217        'levels' (temp int)

-0:217        textureQueryLevels (global int)

-0:217          'samp1DAs' (uniform sampler1DArrayShadow)

-0:218      move second child to first child (temp int)

-0:218        'levels' (temp int)

-0:218        textureQueryLevels (global int)

-0:218          'samp2DAs' (uniform sampler2DArrayShadow)

-0:219      move second child to first child (temp int)

-0:219        'levels' (temp int)

-0:219        textureQueryLevels (global int)

-0:219          'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:221      'levels' (temp int)

-0:222      'levels' (temp int)

-0:?   Linker Objects

-0:?     'v4' (layout(location=3 ) temp 4-component vector of float)

-0:?     'uv4' (layout(location=4 ) uniform 4-component vector of float)

-0:?     'b1' (layout(location=2 ) in block{in 4-component vector of float v})

-0:?     'b2' (layout(location=2 ) out block{out 4-component vector of float v})

-0:?     'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })

-0:?     'cs' (layout(location=10 ) smooth out 2-element array of structure{global 7-element array of 3X2 matrix of float m, global float f})

-0:?     'cf' (layout(location=54 ) smooth out float)

-0:?     'cg' (layout(location=53 ) smooth out float)

-0:?     'alias1' (layout(location=10 ) in 4-component vector of float)

-0:?     'alias2' (layout(location=10 ) in 4-component vector of float)

-0:?     'v6e' (layout(location=0 ) in 4-component vector of float)

-0:?     'ininst2e' (in block{layout(location=25 ) in float f2})

-0:?     'in4e' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})

-0:?     'inst4e' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})

-0:?     'inst9e' (layout(column_major shared align=32 ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f, layout(column_major shared offset=20 ) uniform float g})

-0:?     'spinste' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})

-0:?     'aconste' (global 4-element array of int)

-0:?     'bconste' (global 64-element array of int)

-0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})

-0:?     'bge' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bhe' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)

-0:?     'bbinst4e' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})

-0:?     'bbinst5e' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2})

-0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})

-0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g})

-0:?     'spinst' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})

-0:?     'aconst' (global 4-element array of int)

-0:?     'bconst' (global 64-element array of int)

-0:?     'start2' (const int)

-0:?       5 (const int)

-0:?     'v6' (layout(location=19 ) in 4-component vector of float)

-0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2})

-0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})

-0:?     'bbinst2g' (out block{layout(xfb_buffer=3 xfb_offset=64 ) out 4-component vector of float bbv})

-0:?     'bg' (layout(xfb_buffer=1 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})

-0:?     'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})

-0:?     'sharedv' (shared 4-component vector of float)

-0:?     'v' (buffer 4-component vector of float)

-0:?     's2dms' (uniform sampler2DMS)

-0:?     'us2dmsa' (uniform usampler2DMSArray)

-0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:?     'samp1D' (uniform sampler1D)

-0:?     'usamp2D' (uniform usampler2D)

-0:?     'isamp3D' (uniform isampler3D)

-0:?     'isampCube' (uniform isamplerCube)

-0:?     'isamp1DA' (uniform isampler1DArray)

-0:?     'samp2DA' (uniform sampler2DArray)

-0:?     'usampCubeA' (uniform usamplerCubeArray)

-0:?     'samp1Ds' (uniform sampler1DShadow)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-0:?     'sampCubes' (uniform samplerCubeShadow)

-0:?     'samp1DAs' (uniform sampler1DArrayShadow)

-0:?     'samp2DAs' (uniform sampler2DArrayShadow)

-0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:?     'sampBuf' (uniform samplerBuffer)

-0:?     'sampRect' (uniform sampler2DRect)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point

-ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:

-ERROR:     xfb_buffer 3, xfb_stride 64, minimum stride needed: 80

-

-Shader version: 430

-Requested GL_ARB_enhanced_layouts

-Requested GL_ARB_shader_texture_image_samples

-in xfb mode

-ERROR: node is still EOpNull!

-0:14  Function Definition: foo( (global void)

-0:14    Function Parameters: 

-0:16    Sequence

-0:16      move second child to first child (temp float)

-0:16        direct index (temp float ClipDistance)

-0:16          gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)

-0:16            'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })

-0:16            Constant:

-0:16              2 (const uint)

-0:16          Constant:

-0:16            2 (const int)

-0:16        Constant:

-0:16          3.700000

-0:31  Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)

-0:31    Function Parameters: 

-0:31      'v4' (in 4-component vector of float)

-0:31      'v3' (volatile in 3-component vector of float)

-0:31      'v2' (in 2-component vector of float)

-0:31      'cv3' (in 3-component vector of float)

-0:148  Function Definition: fooBarrier( (global void)

-0:148    Function Parameters: 

-0:150    Sequence

-0:150      Constant:

-0:150        0.000000

-0:151      MemoryBarrier (global void)

-0:152      MemoryBarrierAtomicCounter (global void)

-0:153      MemoryBarrierBuffer (global void)

-0:154      Constant:

-0:154        0.000000

-0:155      MemoryBarrierImage (global void)

-0:156      Constant:

-0:156        0.000000

-0:166  Function Definition: fooq( (global void)

-0:166    Function Parameters: 

-0:168    Sequence

-0:168      Sequence

-0:168        move second child to first child (temp int)

-0:168          's' (temp int)

-0:168          textureSamples (global int)

-0:168            's2dms' (uniform sampler2DMS)

-0:169      add second child into first child (temp int)

-0:169        's' (temp int)

-0:169        textureSamples (global int)

-0:169          'us2dmsa' (uniform usampler2DMSArray)

-0:170      add second child into first child (temp int)

-0:170        's' (temp int)

-0:170        imageQuerySamples (global int)

-0:170          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:171      add second child into first child (temp int)

-0:171        's' (temp int)

-0:171        imageQuerySamples (global int)

-0:171          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:176  Function Definition: fooq2( (global void)

-0:176    Function Parameters: 

-0:178    Sequence

-0:178      Sequence

-0:178        move second child to first child (temp int)

-0:178          's' (temp int)

-0:178          textureSamples (global int)

-0:178            's2dms' (uniform sampler2DMS)

-0:179      add second child into first child (temp int)

-0:179        's' (temp int)

-0:179        textureSamples (global int)

-0:179          'us2dmsa' (uniform usampler2DMSArray)

-0:180      add second child into first child (temp int)

-0:180        's' (temp int)

-0:180        imageQuerySamples (global int)

-0:180          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:181      add second child into first child (temp int)

-0:181        's' (temp int)

-0:181        imageQuerySamples (global int)

-0:181          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:202  Function Definition: qlod( (global void)

-0:202    Function Parameters: 

-0:?     Sequence

-0:206      move second child to first child (temp int)

-0:206        'levels' (temp int)

-0:206        textureQueryLevels (global int)

-0:206          'samp1D' (uniform sampler1D)

-0:207      move second child to first child (temp int)

-0:207        'levels' (temp int)

-0:207        textureQueryLevels (global int)

-0:207          'usamp2D' (uniform usampler2D)

-0:208      move second child to first child (temp int)

-0:208        'levels' (temp int)

-0:208        textureQueryLevels (global int)

-0:208          'isamp3D' (uniform isampler3D)

-0:209      move second child to first child (temp int)

-0:209        'levels' (temp int)

-0:209        textureQueryLevels (global int)

-0:209          'isampCube' (uniform isamplerCube)

-0:210      move second child to first child (temp int)

-0:210        'levels' (temp int)

-0:210        textureQueryLevels (global int)

-0:210          'isamp1DA' (uniform isampler1DArray)

-0:211      move second child to first child (temp int)

-0:211        'levels' (temp int)

-0:211        textureQueryLevels (global int)

-0:211          'samp2DA' (uniform sampler2DArray)

-0:212      move second child to first child (temp int)

-0:212        'levels' (temp int)

-0:212        textureQueryLevels (global int)

-0:212          'usampCubeA' (uniform usamplerCubeArray)

-0:214      move second child to first child (temp int)

-0:214        'levels' (temp int)

-0:214        textureQueryLevels (global int)

-0:214          'samp1Ds' (uniform sampler1DShadow)

-0:215      move second child to first child (temp int)

-0:215        'levels' (temp int)

-0:215        textureQueryLevels (global int)

-0:215          'samp2Ds' (uniform sampler2DShadow)

-0:216      move second child to first child (temp int)

-0:216        'levels' (temp int)

-0:216        textureQueryLevels (global int)

-0:216          'sampCubes' (uniform samplerCubeShadow)

-0:217      move second child to first child (temp int)

-0:217        'levels' (temp int)

-0:217        textureQueryLevels (global int)

-0:217          'samp1DAs' (uniform sampler1DArrayShadow)

-0:218      move second child to first child (temp int)

-0:218        'levels' (temp int)

-0:218        textureQueryLevels (global int)

-0:218          'samp2DAs' (uniform sampler2DArrayShadow)

-0:219      move second child to first child (temp int)

-0:219        'levels' (temp int)

-0:219        textureQueryLevels (global int)

-0:219          'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:221      'levels' (temp int)

-0:222      'levels' (temp int)

-0:?   Linker Objects

-0:?     'v4' (layout(location=3 ) temp 4-component vector of float)

-0:?     'uv4' (layout(location=4 ) uniform 4-component vector of float)

-0:?     'b1' (layout(location=2 ) in block{in 4-component vector of float v})

-0:?     'b2' (layout(location=2 ) out block{out 4-component vector of float v})

-0:?     'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })

-0:?     'cs' (layout(location=10 ) smooth out 2-element array of structure{global 7-element array of 3X2 matrix of float m, global float f})

-0:?     'cf' (layout(location=54 ) smooth out float)

-0:?     'cg' (layout(location=53 ) smooth out float)

-0:?     'alias1' (layout(location=10 ) in 4-component vector of float)

-0:?     'alias2' (layout(location=10 ) in 4-component vector of float)

-0:?     'v6e' (layout(location=0 ) in 4-component vector of float)

-0:?     'ininst2e' (in block{layout(location=25 ) in float f2})

-0:?     'in4e' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})

-0:?     'inst4e' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})

-0:?     'inst9e' (layout(column_major shared align=32 ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f, layout(column_major shared offset=20 ) uniform float g})

-0:?     'spinste' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})

-0:?     'aconste' (global 4-element array of int)

-0:?     'bconste' (global 64-element array of int)

-0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})

-0:?     'bge' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bhe' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)

-0:?     'bbinst4e' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})

-0:?     'bbinst5e' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2})

-0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})

-0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g})

-0:?     'spinst' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})

-0:?     'aconst' (global 4-element array of int)

-0:?     'bconst' (global 64-element array of int)

-0:?     'start2' (const int)

-0:?       5 (const int)

-0:?     'v6' (layout(location=19 ) in 4-component vector of float)

-0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2})

-0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})

-0:?     'bbinst2g' (out block{layout(xfb_buffer=3 xfb_offset=64 ) out 4-component vector of float bbv})

-0:?     'bg' (layout(xfb_buffer=1 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})

-0:?     'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})

-0:?     'sharedv' (shared 4-component vector of float)

-0:?     'v' (buffer 4-component vector of float)

-0:?     's2dms' (uniform sampler2DMS)

-0:?     'us2dmsa' (uniform usampler2DMSArray)

-0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:?     'samp1D' (uniform sampler1D)

-0:?     'usamp2D' (uniform usampler2D)

-0:?     'isamp3D' (uniform isampler3D)

-0:?     'isampCube' (uniform isamplerCube)

-0:?     'isamp1DA' (uniform isampler1DArray)

-0:?     'samp2DA' (uniform sampler2DArray)

-0:?     'usampCubeA' (uniform usamplerCubeArray)

-0:?     'samp1Ds' (uniform sampler1DShadow)

-0:?     'samp2Ds' (uniform sampler2DShadow)

-0:?     'sampCubes' (uniform samplerCubeShadow)

-0:?     'samp1DAs' (uniform sampler1DArrayShadow)

-0:?     'samp2DAs' (uniform sampler2DArrayShadow)

-0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)

-0:?     'sampBuf' (uniform samplerBuffer)

-0:?     'sampRect' (uniform sampler2DRect)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+430.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:3: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 
+ERROR: 0:7: 'input block' : not supported in this stage: vertex
+ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions 
+ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions 
+ERROR: 0:23: 'invariant' : can only apply to an output 
+ERROR: 0:21: 'g' : cannot use storage or interpolation qualifiers on structure members 
+ERROR: 0:22: 'h' : cannot use storage or interpolation qualifiers on structure members 
+ERROR: 0:23: 'i' : cannot use invariant qualifier on structure members 
+ERROR: 0:24: 'j' : cannot use memory qualifiers on structure members 
+ERROR: 0:25: 'm3' : cannot use layout qualifiers on structure members 
+ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter 
+ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter 
+ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter 
+ERROR: 0:42: 'location' : overlapping use of location 53
+ERROR: 0:47: 'gl_ClipDistance array size' : must be less than gl_MaxClipDistances (8)
+ERROR: 0:51: 'start' : undeclared identifier 
+ERROR: 0:51: '' : constant expression required 
+ERROR: 0:51: 'layout-id value' : scalar integer expression required 
+ERROR: 0:53: 'input block' : not supported in this stage: vertex
+ERROR: 0:54: 'location on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:57: 'input block' : not supported in this stage: vertex
+ERROR: 0:58: 'location on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:59: 'location on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:62: 'uniform buffer-member align' : not supported for this version or the enabled extensions 
+ERROR: 0:64: 'uniform buffer-member align' : not supported for this version or the enabled extensions 
+ERROR: 0:65: 'uniform buffer-member align' : not supported for this version or the enabled extensions 
+ERROR: 0:65: 'offset on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:66: 'offset on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:64: 'offset/align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:65: 'align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:71: 'offset on block member' : not supported for this version or the enabled extensions 
+ERROR: 0:74: 'gl_MaxTransformFeedbackBuffers' : required extension not requested: GL_ARB_enhanced_layouts
+ERROR: 0:75: 'gl_MaxTransformFeedbackInterleavedComponents' : required extension not requested: GL_ARB_enhanced_layouts
+ERROR: 0:78: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:92: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions 
+ERROR: 0:117: 'input block' : not supported in this stage: vertex
+ERROR: 0:123: 'input block' : not supported in this stage: vertex
+ERROR: 0:146: 'shared' : not supported in this stage: vertex
+ERROR: 0:150: 'barrier' : no matching overloaded function found 
+ERROR: 0:154: 'memoryBarrierShared' : no matching overloaded function found 
+ERROR: 0:156: 'groupMemoryBarrier' : no matching overloaded function found 
+ERROR: 0:159: 'buffer' : buffers can be declared only as blocks 
+ERROR: 0:168: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 
+ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 
+ERROR: 0:170: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 
+ERROR: 0:171: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions 
+ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:221: 'assign' :  cannot convert from 'const float' to 'temp int'
+ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found 
+ERROR: 0:222: 'assign' :  cannot convert from 'const float' to 'temp int'
+ERROR: 63 compilation errors.  No code generated.
+
+
+Shader version: 430
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_shader_texture_image_samples
+in xfb mode
+ERROR: node is still EOpNull!
+0:14  Function Definition: foo( (global void)
+0:14    Function Parameters: 
+0:16    Sequence
+0:16      move second child to first child (temp float)
+0:16        direct index (temp float ClipDistance)
+0:16          gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)
+0:16            'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:16            Constant:
+0:16              2 (const uint)
+0:16          Constant:
+0:16            2 (const int)
+0:16        Constant:
+0:16          3.700000
+0:31  Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)
+0:31    Function Parameters: 
+0:31      'v4' (in 4-component vector of float)
+0:31      'v3' (volatile in 3-component vector of float)
+0:31      'v2' (in 2-component vector of float)
+0:31      'cv3' (in 3-component vector of float)
+0:148  Function Definition: fooBarrier( (global void)
+0:148    Function Parameters: 
+0:150    Sequence
+0:150      Constant:
+0:150        0.000000
+0:151      MemoryBarrier (global void)
+0:152      MemoryBarrierAtomicCounter (global void)
+0:153      MemoryBarrierBuffer (global void)
+0:154      Constant:
+0:154        0.000000
+0:155      MemoryBarrierImage (global void)
+0:156      Constant:
+0:156        0.000000
+0:166  Function Definition: fooq( (global void)
+0:166    Function Parameters: 
+0:168    Sequence
+0:168      Sequence
+0:168        move second child to first child (temp int)
+0:168          's' (temp int)
+0:168          textureSamples (global int)
+0:168            's2dms' (uniform sampler2DMS)
+0:169      add second child into first child (temp int)
+0:169        's' (temp int)
+0:169        textureSamples (global int)
+0:169          'us2dmsa' (uniform usampler2DMSArray)
+0:170      add second child into first child (temp int)
+0:170        's' (temp int)
+0:170        imageQuerySamples (global int)
+0:170          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:171      add second child into first child (temp int)
+0:171        's' (temp int)
+0:171        imageQuerySamples (global int)
+0:171          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:176  Function Definition: fooq2( (global void)
+0:176    Function Parameters: 
+0:178    Sequence
+0:178      Sequence
+0:178        move second child to first child (temp int)
+0:178          's' (temp int)
+0:178          textureSamples (global int)
+0:178            's2dms' (uniform sampler2DMS)
+0:179      add second child into first child (temp int)
+0:179        's' (temp int)
+0:179        textureSamples (global int)
+0:179          'us2dmsa' (uniform usampler2DMSArray)
+0:180      add second child into first child (temp int)
+0:180        's' (temp int)
+0:180        imageQuerySamples (global int)
+0:180          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:181      add second child into first child (temp int)
+0:181        's' (temp int)
+0:181        imageQuerySamples (global int)
+0:181          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:202  Function Definition: qlod( (global void)
+0:202    Function Parameters: 
+0:?     Sequence
+0:206      move second child to first child (temp int)
+0:206        'levels' (temp int)
+0:206        textureQueryLevels (global int)
+0:206          'samp1D' (uniform sampler1D)
+0:207      move second child to first child (temp int)
+0:207        'levels' (temp int)
+0:207        textureQueryLevels (global int)
+0:207          'usamp2D' (uniform usampler2D)
+0:208      move second child to first child (temp int)
+0:208        'levels' (temp int)
+0:208        textureQueryLevels (global int)
+0:208          'isamp3D' (uniform isampler3D)
+0:209      move second child to first child (temp int)
+0:209        'levels' (temp int)
+0:209        textureQueryLevels (global int)
+0:209          'isampCube' (uniform isamplerCube)
+0:210      move second child to first child (temp int)
+0:210        'levels' (temp int)
+0:210        textureQueryLevels (global int)
+0:210          'isamp1DA' (uniform isampler1DArray)
+0:211      move second child to first child (temp int)
+0:211        'levels' (temp int)
+0:211        textureQueryLevels (global int)
+0:211          'samp2DA' (uniform sampler2DArray)
+0:212      move second child to first child (temp int)
+0:212        'levels' (temp int)
+0:212        textureQueryLevels (global int)
+0:212          'usampCubeA' (uniform usamplerCubeArray)
+0:214      move second child to first child (temp int)
+0:214        'levels' (temp int)
+0:214        textureQueryLevels (global int)
+0:214          'samp1Ds' (uniform sampler1DShadow)
+0:215      move second child to first child (temp int)
+0:215        'levels' (temp int)
+0:215        textureQueryLevels (global int)
+0:215          'samp2Ds' (uniform sampler2DShadow)
+0:216      move second child to first child (temp int)
+0:216        'levels' (temp int)
+0:216        textureQueryLevels (global int)
+0:216          'sampCubes' (uniform samplerCubeShadow)
+0:217      move second child to first child (temp int)
+0:217        'levels' (temp int)
+0:217        textureQueryLevels (global int)
+0:217          'samp1DAs' (uniform sampler1DArrayShadow)
+0:218      move second child to first child (temp int)
+0:218        'levels' (temp int)
+0:218        textureQueryLevels (global int)
+0:218          'samp2DAs' (uniform sampler2DArrayShadow)
+0:219      move second child to first child (temp int)
+0:219        'levels' (temp int)
+0:219        textureQueryLevels (global int)
+0:219          'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:221      'levels' (temp int)
+0:222      'levels' (temp int)
+0:?   Linker Objects
+0:?     'v4' (layout(location=3 ) temp 4-component vector of float)
+0:?     'uv4' (layout(location=4 ) uniform 4-component vector of float)
+0:?     'b1' (layout(location=2 ) in block{in 4-component vector of float v})
+0:?     'b2' (layout(location=2 ) out block{out 4-component vector of float v})
+0:?     'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:?     'cs' (layout(location=10 ) smooth out 2-element array of structure{global 7-element array of 3X2 matrix of float m, global float f})
+0:?     'cf' (layout(location=54 ) smooth out float)
+0:?     'cg' (layout(location=53 ) smooth out float)
+0:?     'alias1' (layout(location=10 ) in 4-component vector of float)
+0:?     'alias2' (layout(location=10 ) in 4-component vector of float)
+0:?     'v6e' (layout(location=0 ) in 4-component vector of float)
+0:?     'ininst2e' (in block{layout(location=25 ) in float f2})
+0:?     'in4e' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:?     'inst4e' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:?     'inst9e' (layout(column_major shared align=32 ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f, layout(column_major shared offset=20 ) uniform float g})
+0:?     'spinste' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:?     'aconste' (global 4-element array of int)
+0:?     'bconste' (global 64-element array of int)
+0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:?     'bge' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bhe' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:?     'bbinst4e' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:?     'bbinst5e' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2})
+0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g})
+0:?     'spinst' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:?     'aconst' (global 4-element array of int)
+0:?     'bconst' (global 64-element array of int)
+0:?     'start2' (const int)
+0:?       5 (const int)
+0:?     'v6' (layout(location=19 ) in 4-component vector of float)
+0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2})
+0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:?     'bbinst2g' (out block{layout(xfb_buffer=3 xfb_offset=64 ) out 4-component vector of float bbv})
+0:?     'bg' (layout(xfb_buffer=1 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})
+0:?     'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})
+0:?     'sharedv' (shared 4-component vector of float)
+0:?     'v' (buffer 4-component vector of float)
+0:?     's2dms' (uniform sampler2DMS)
+0:?     'us2dmsa' (uniform usampler2DMSArray)
+0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:?     'samp1D' (uniform sampler1D)
+0:?     'usamp2D' (uniform usampler2D)
+0:?     'isamp3D' (uniform isampler3D)
+0:?     'isampCube' (uniform isamplerCube)
+0:?     'isamp1DA' (uniform isampler1DArray)
+0:?     'samp2DA' (uniform sampler2DArray)
+0:?     'usampCubeA' (uniform usamplerCubeArray)
+0:?     'samp1Ds' (uniform sampler1DShadow)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+0:?     'sampCubes' (uniform samplerCubeShadow)
+0:?     'samp1DAs' (uniform sampler1DArrayShadow)
+0:?     'samp2DAs' (uniform sampler2DArrayShadow)
+0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:?     'sampBuf' (uniform samplerBuffer)
+0:?     'sampRect' (uniform sampler2DRect)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:
+ERROR:     xfb_buffer 3, xfb_stride 64, minimum stride needed: 80
+
+Shader version: 430
+Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_shader_texture_image_samples
+in xfb mode
+ERROR: node is still EOpNull!
+0:14  Function Definition: foo( (global void)
+0:14    Function Parameters: 
+0:16    Sequence
+0:16      move second child to first child (temp float)
+0:16        direct index (temp float ClipDistance)
+0:16          gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance)
+0:16            'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:16            Constant:
+0:16              2 (const uint)
+0:16          Constant:
+0:16            2 (const int)
+0:16        Constant:
+0:16          3.700000
+0:31  Function Definition: foo3(vf4;vf3;vf2;vf3; (global void)
+0:31    Function Parameters: 
+0:31      'v4' (in 4-component vector of float)
+0:31      'v3' (volatile in 3-component vector of float)
+0:31      'v2' (in 2-component vector of float)
+0:31      'cv3' (in 3-component vector of float)
+0:148  Function Definition: fooBarrier( (global void)
+0:148    Function Parameters: 
+0:150    Sequence
+0:150      Constant:
+0:150        0.000000
+0:151      MemoryBarrier (global void)
+0:152      MemoryBarrierAtomicCounter (global void)
+0:153      MemoryBarrierBuffer (global void)
+0:154      Constant:
+0:154        0.000000
+0:155      MemoryBarrierImage (global void)
+0:156      Constant:
+0:156        0.000000
+0:166  Function Definition: fooq( (global void)
+0:166    Function Parameters: 
+0:168    Sequence
+0:168      Sequence
+0:168        move second child to first child (temp int)
+0:168          's' (temp int)
+0:168          textureSamples (global int)
+0:168            's2dms' (uniform sampler2DMS)
+0:169      add second child into first child (temp int)
+0:169        's' (temp int)
+0:169        textureSamples (global int)
+0:169          'us2dmsa' (uniform usampler2DMSArray)
+0:170      add second child into first child (temp int)
+0:170        's' (temp int)
+0:170        imageQuerySamples (global int)
+0:170          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:171      add second child into first child (temp int)
+0:171        's' (temp int)
+0:171        imageQuerySamples (global int)
+0:171          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:176  Function Definition: fooq2( (global void)
+0:176    Function Parameters: 
+0:178    Sequence
+0:178      Sequence
+0:178        move second child to first child (temp int)
+0:178          's' (temp int)
+0:178          textureSamples (global int)
+0:178            's2dms' (uniform sampler2DMS)
+0:179      add second child into first child (temp int)
+0:179        's' (temp int)
+0:179        textureSamples (global int)
+0:179          'us2dmsa' (uniform usampler2DMSArray)
+0:180      add second child into first child (temp int)
+0:180        's' (temp int)
+0:180        imageQuerySamples (global int)
+0:180          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:181      add second child into first child (temp int)
+0:181        's' (temp int)
+0:181        imageQuerySamples (global int)
+0:181          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:202  Function Definition: qlod( (global void)
+0:202    Function Parameters: 
+0:?     Sequence
+0:206      move second child to first child (temp int)
+0:206        'levels' (temp int)
+0:206        textureQueryLevels (global int)
+0:206          'samp1D' (uniform sampler1D)
+0:207      move second child to first child (temp int)
+0:207        'levels' (temp int)
+0:207        textureQueryLevels (global int)
+0:207          'usamp2D' (uniform usampler2D)
+0:208      move second child to first child (temp int)
+0:208        'levels' (temp int)
+0:208        textureQueryLevels (global int)
+0:208          'isamp3D' (uniform isampler3D)
+0:209      move second child to first child (temp int)
+0:209        'levels' (temp int)
+0:209        textureQueryLevels (global int)
+0:209          'isampCube' (uniform isamplerCube)
+0:210      move second child to first child (temp int)
+0:210        'levels' (temp int)
+0:210        textureQueryLevels (global int)
+0:210          'isamp1DA' (uniform isampler1DArray)
+0:211      move second child to first child (temp int)
+0:211        'levels' (temp int)
+0:211        textureQueryLevels (global int)
+0:211          'samp2DA' (uniform sampler2DArray)
+0:212      move second child to first child (temp int)
+0:212        'levels' (temp int)
+0:212        textureQueryLevels (global int)
+0:212          'usampCubeA' (uniform usamplerCubeArray)
+0:214      move second child to first child (temp int)
+0:214        'levels' (temp int)
+0:214        textureQueryLevels (global int)
+0:214          'samp1Ds' (uniform sampler1DShadow)
+0:215      move second child to first child (temp int)
+0:215        'levels' (temp int)
+0:215        textureQueryLevels (global int)
+0:215          'samp2Ds' (uniform sampler2DShadow)
+0:216      move second child to first child (temp int)
+0:216        'levels' (temp int)
+0:216        textureQueryLevels (global int)
+0:216          'sampCubes' (uniform samplerCubeShadow)
+0:217      move second child to first child (temp int)
+0:217        'levels' (temp int)
+0:217        textureQueryLevels (global int)
+0:217          'samp1DAs' (uniform sampler1DArrayShadow)
+0:218      move second child to first child (temp int)
+0:218        'levels' (temp int)
+0:218        textureQueryLevels (global int)
+0:218          'samp2DAs' (uniform sampler2DArrayShadow)
+0:219      move second child to first child (temp int)
+0:219        'levels' (temp int)
+0:219        textureQueryLevels (global int)
+0:219          'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:221      'levels' (temp int)
+0:222      'levels' (temp int)
+0:?   Linker Objects
+0:?     'v4' (layout(location=3 ) temp 4-component vector of float)
+0:?     'uv4' (layout(location=4 ) uniform 4-component vector of float)
+0:?     'b1' (layout(location=2 ) in block{in 4-component vector of float v})
+0:?     'b2' (layout(location=2 ) out block{out 4-component vector of float v})
+0:?     'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, })
+0:?     'cs' (layout(location=10 ) smooth out 2-element array of structure{global 7-element array of 3X2 matrix of float m, global float f})
+0:?     'cf' (layout(location=54 ) smooth out float)
+0:?     'cg' (layout(location=53 ) smooth out float)
+0:?     'alias1' (layout(location=10 ) in 4-component vector of float)
+0:?     'alias2' (layout(location=10 ) in 4-component vector of float)
+0:?     'v6e' (layout(location=0 ) in 4-component vector of float)
+0:?     'ininst2e' (in block{layout(location=25 ) in float f2})
+0:?     'in4e' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:?     'inst4e' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:?     'inst9e' (layout(column_major shared align=32 ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f, layout(column_major shared offset=20 ) uniform float g})
+0:?     'spinste' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:?     'aconste' (global 4-element array of int)
+0:?     'bconste' (global 64-element array of int)
+0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:?     'bge' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bhe' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:?     'bbinst4e' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:?     'bbinst5e' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2})
+0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g})
+0:?     'spinst' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b})
+0:?     'aconst' (global 4-element array of int)
+0:?     'bconst' (global 64-element array of int)
+0:?     'start2' (const int)
+0:?       5 (const int)
+0:?     'v6' (layout(location=19 ) in 4-component vector of float)
+0:?     'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2})
+0:?     'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
+0:?     'bbinst2g' (out block{layout(xfb_buffer=3 xfb_offset=64 ) out 4-component vector of float bbv})
+0:?     'bg' (layout(xfb_buffer=1 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})
+0:?     'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})
+0:?     'sharedv' (shared 4-component vector of float)
+0:?     'v' (buffer 4-component vector of float)
+0:?     's2dms' (uniform sampler2DMS)
+0:?     'us2dmsa' (uniform usampler2DMSArray)
+0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:?     'samp1D' (uniform sampler1D)
+0:?     'usamp2D' (uniform usampler2D)
+0:?     'isamp3D' (uniform isampler3D)
+0:?     'isampCube' (uniform isamplerCube)
+0:?     'isamp1DA' (uniform isampler1DArray)
+0:?     'samp2DA' (uniform sampler2DArray)
+0:?     'usampCubeA' (uniform usamplerCubeArray)
+0:?     'samp1Ds' (uniform sampler1DShadow)
+0:?     'samp2Ds' (uniform sampler2DShadow)
+0:?     'sampCubes' (uniform samplerCubeShadow)
+0:?     'samp1DAs' (uniform sampler1DArrayShadow)
+0:?     'samp2DAs' (uniform sampler2DArrayShadow)
+0:?     'sampCubeAs' (uniform samplerCubeArrayShadow)
+0:?     'sampBuf' (uniform samplerBuffer)
+0:?     'sampRect' (uniform sampler2DRect)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/430AofA.frag.out b/Test/baseResults/430AofA.frag.out
index c6ab950..e8b79b7 100644
--- a/Test/baseResults/430AofA.frag.out
+++ b/Test/baseResults/430AofA.frag.out
@@ -1,803 +1,803 @@
-430AofA.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized 

-ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument 

-ERROR: 0:15: 'constructior' : array constructor argument not correct type to construct array element 

-ERROR: 0:28: '[' :  array index out of range '4'

-ERROR: 0:56: 'constructor' :  cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float'

-ERROR: 0:60: 'constructor' :  cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float'

-ERROR: 0:64: '=' :  cannot convert from 'temp 3-element array of 2-element array of 4-component vector of float' to 'temp 4-element array of 2-element array of 4-component vector of float'

-ERROR: 0:70: 'assign' :  cannot convert from 'global 4-element array of 7-element array of float' to 'global 5-element array of 7-element array of float'

-ERROR: 0:71: 'assign' :  cannot convert from 'global 4-element array of 7-element array of float' to 'global implicitly-sized array of 7-element array of float'

-ERROR: 0:73: 'foo' : no matching overloaded function found 

-ERROR: 0:78: '==' :  wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global 4-element array of 7-element array of float' and a right operand of type 'global 5-element array of 7-element array of float' (or there is no acceptable conversion)

-ERROR: 0:84: '[' :  array index out of range '5'

-ERROR: 0:91: 'length' :  array must be declared with a size before using this method

-ERROR: 0:93: 'length' :  array must be declared with a size before using this method

-ERROR: 0:98: 'length' : does not operate on this type: temp float

-ERROR: 0:98: '' : function call, method, or subroutine call expected 

-ERROR: 0:98: '' : no matching overloaded function found 

-ERROR: 0:101: 'resize2' : redeclaration of array with a different array dimensions or sizes 

-ERROR: 0:104: 'resize3' : redeclaration of array with a different array dimensions or sizes 

-ERROR: 0:107: 'resize4' : redeclaration of array with a different element type 

-ERROR: 20 compilation errors.  No code generated.

-

-

-Shader version: 430

-ERROR: node is still EOpNull!

-0:10  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:10    Function Parameters: 

-0:10      'a' (in 5-element array of 7-element array of float)

-0:?     Sequence

-0:13      move second child to first child (temp 7-element array of float)

-0:13        'r' (temp 7-element array of float)

-0:13        direct index (temp 7-element array of float)

-0:13          'a' (in 5-element array of 7-element array of float)

-0:13          Constant:

-0:13            2 (const int)

-0:14      Constant:

-0:14        0.000000

-0:15      Constant:

-0:15        0.000000

-0:16      Branch: Return with expression

-0:16        Construct float (temp 4-element array of 7-element array of float)

-0:16          direct index (temp 7-element array of float)

-0:16            'a' (in 5-element array of 7-element array of float)

-0:16            Constant:

-0:16              0 (const int)

-0:16          direct index (temp 7-element array of float)

-0:16            'a' (in 5-element array of 7-element array of float)

-0:16            Constant:

-0:16              1 (const int)

-0:16          'r' (temp 7-element array of float)

-0:16          direct index (temp 7-element array of float)

-0:16            'a' (in 5-element array of 7-element array of float)

-0:16            Constant:

-0:16              3 (const int)

-0:17      Branch: Return with expression

-0:17        Construct float (temp 4-element array of 7-element array of float)

-0:17          direct index (temp 7-element array of float)

-0:17            'a' (in 5-element array of 7-element array of float)

-0:17            Constant:

-0:17              0 (const int)

-0:17          direct index (temp 7-element array of float)

-0:17            'a' (in 5-element array of 7-element array of float)

-0:17            Constant:

-0:17              1 (const int)

-0:17          'r' (temp 7-element array of float)

-0:17          direct index (temp 7-element array of float)

-0:17            'a' (in 5-element array of 7-element array of float)

-0:17            Constant:

-0:17              3 (const int)

-0:18      Branch: Return with expression

-0:18        Construct float (temp 4-element array of 7-element array of float)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              0 (const int)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              1 (const int)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              2 (const int)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              3 (const int)

-0:21  Function Definition: bar(f1[5][7]; (global void)

-0:21    Function Parameters: 

-0:21      '' (in 5-element array of 7-element array of float)

-0:23  Function Definition: main( (global void)

-0:23    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:28        move second child to first child (temp float)

-0:28          direct index (temp float)

-0:28            direct index (temp 2-element array of float)

-0:28              direct index (temp 4-element array of 2-element array of float)

-0:28                'gu' (temp 3-element array of 4-element array of 2-element array of float)

-0:28                Constant:

-0:28                  2 (const int)

-0:28              Constant:

-0:28                4 (const int)

-0:28            Constant:

-0:28              1 (const int)

-0:28          Constant:

-0:28            4.000000

-0:30      Sequence

-0:30        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:30          'ca4' (temp 3-element array of 2-element array of 4-component vector of float)

-0:32          Constant:

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:33      Sequence

-0:33        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:33          'caim' (temp 3-element array of 2-element array of 4-component vector of float)

-0:35          Constant:

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:36      Sequence

-0:36        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:36          'caim2' (temp 3-element array of 2-element array of 4-component vector of float)

-0:38          Constant:

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:39      Sequence

-0:39        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:39          'caim3' (temp 3-element array of 2-element array of 4-component vector of float)

-0:41          Constant:

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:43      Sequence

-0:43        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:43          'a4' (temp 3-element array of 2-element array of 4-component vector of float)

-0:43          Constant:

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:46      Sequence

-0:46        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:46          'aim' (temp 3-element array of 2-element array of 4-component vector of float)

-0:46          Constant:

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:49      Sequence

-0:49        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:49          'aim2' (temp 3-element array of 2-element array of 4-component vector of float)

-0:49          Constant:

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:52      Sequence

-0:52        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:52          'aim3' (temp 3-element array of 2-element array of 4-component vector of float)

-0:52          Constant:

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:69      move second child to first child (temp 4-element array of 7-element array of float)

-0:69        'g4' (global 4-element array of 7-element array of float)

-0:69        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:69          'g5' (global 5-element array of 7-element array of float)

-0:70      'g5' (global 5-element array of 7-element array of float)

-0:71      'gu' (global implicitly-sized array of 7-element array of float)

-0:73      Constant:

-0:73        0.000000

-0:74      Function Call: bar(f1[5][7]; (global void)

-0:74        'g5' (global 5-element array of 7-element array of float)

-0:76      Test condition and select (temp void)

-0:76        Condition

-0:76        Compare Equal (temp bool)

-0:76          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:76            'g5' (global 5-element array of 7-element array of float)

-0:76          'g4' (global 4-element array of 7-element array of float)

-0:76        true case is null

-0:78      Test condition and select (temp void)

-0:78        Condition

-0:78        Constant:

-0:78          false (const bool)

-0:78        true case is null

-0:82      move second child to first child (temp float)

-0:82        direct index (temp float)

-0:82          direct index (temp 7-element array of float)

-0:82            'u' (temp 5-element array of 7-element array of float)

-0:82            Constant:

-0:82              2 (const int)

-0:82          Constant:

-0:82            2 (const int)

-0:82        Constant:

-0:82          3.000000

-0:84      move second child to first child (temp float)

-0:84        direct index (temp float)

-0:84          direct index (temp 7-element array of float)

-0:84            'u' (temp 5-element array of 7-element array of float)

-0:84            Constant:

-0:84              5 (const int)

-0:84          Constant:

-0:84            2 (const int)

-0:84        Constant:

-0:84          5.000000

-0:85      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:85        'u' (temp 5-element array of 7-element array of float)

-0:88  Function Definition: foo3( (global void)

-0:88    Function Parameters: 

-0:?     Sequence

-0:91      Constant:

-0:91        1 (const int)

-0:92      move second child to first child (temp float)

-0:92        direct index (temp float)

-0:92          direct index (temp 7-element array of float)

-0:92            direct index (temp 5-element array of 7-element array of float)

-0:92              'resize1' (temp 3-element array of 5-element array of 7-element array of float)

-0:92              Constant:

-0:92                1 (const int)

-0:92            Constant:

-0:92              4 (const int)

-0:92          Constant:

-0:92            5 (const int)

-0:92        Constant:

-0:92          2.000000

-0:93      Constant:

-0:93        1 (const int)

-0:95      Constant:

-0:95        3 (const int)

-0:96      Constant:

-0:96        5 (const int)

-0:97      Constant:

-0:97        7 (const int)

-0:98      Constant:

-0:98        0.000000

-0:?   Linker Objects

-0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)

-0:?     'gu' (global implicitly-sized array of 7-element array of float)

-0:?     'gimp' (global implicitly-sized array of implicitly-sized array of float)

-0:?     'g4' (global 4-element array of 7-element array of float)

-0:?     'g5' (global 5-element array of 7-element array of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 430

-ERROR: node is still EOpNull!

-0:10  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:10    Function Parameters: 

-0:10      'a' (in 5-element array of 7-element array of float)

-0:?     Sequence

-0:13      move second child to first child (temp 7-element array of float)

-0:13        'r' (temp 7-element array of float)

-0:13        direct index (temp 7-element array of float)

-0:13          'a' (in 5-element array of 7-element array of float)

-0:13          Constant:

-0:13            2 (const int)

-0:14      Constant:

-0:14        0.000000

-0:15      Constant:

-0:15        0.000000

-0:16      Branch: Return with expression

-0:16        Construct float (temp 4-element array of 7-element array of float)

-0:16          direct index (temp 7-element array of float)

-0:16            'a' (in 5-element array of 7-element array of float)

-0:16            Constant:

-0:16              0 (const int)

-0:16          direct index (temp 7-element array of float)

-0:16            'a' (in 5-element array of 7-element array of float)

-0:16            Constant:

-0:16              1 (const int)

-0:16          'r' (temp 7-element array of float)

-0:16          direct index (temp 7-element array of float)

-0:16            'a' (in 5-element array of 7-element array of float)

-0:16            Constant:

-0:16              3 (const int)

-0:17      Branch: Return with expression

-0:17        Construct float (temp 4-element array of 7-element array of float)

-0:17          direct index (temp 7-element array of float)

-0:17            'a' (in 5-element array of 7-element array of float)

-0:17            Constant:

-0:17              0 (const int)

-0:17          direct index (temp 7-element array of float)

-0:17            'a' (in 5-element array of 7-element array of float)

-0:17            Constant:

-0:17              1 (const int)

-0:17          'r' (temp 7-element array of float)

-0:17          direct index (temp 7-element array of float)

-0:17            'a' (in 5-element array of 7-element array of float)

-0:17            Constant:

-0:17              3 (const int)

-0:18      Branch: Return with expression

-0:18        Construct float (temp 4-element array of 7-element array of float)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              0 (const int)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              1 (const int)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              2 (const int)

-0:18          direct index (temp 7-element array of float)

-0:18            'a' (in 5-element array of 7-element array of float)

-0:18            Constant:

-0:18              3 (const int)

-0:21  Function Definition: bar(f1[5][7]; (global void)

-0:21    Function Parameters: 

-0:21      '' (in 5-element array of 7-element array of float)

-0:23  Function Definition: main( (global void)

-0:23    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:28        move second child to first child (temp float)

-0:28          direct index (temp float)

-0:28            direct index (temp 2-element array of float)

-0:28              direct index (temp 4-element array of 2-element array of float)

-0:28                'gu' (temp 3-element array of 4-element array of 2-element array of float)

-0:28                Constant:

-0:28                  2 (const int)

-0:28              Constant:

-0:28                4 (const int)

-0:28            Constant:

-0:28              1 (const int)

-0:28          Constant:

-0:28            4.000000

-0:30      Sequence

-0:30        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:30          'ca4' (temp 3-element array of 2-element array of 4-component vector of float)

-0:32          Constant:

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            0.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:32            1.000000

-0:33      Sequence

-0:33        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:33          'caim' (temp 3-element array of 2-element array of 4-component vector of float)

-0:35          Constant:

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            4.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:35            2.000000

-0:36      Sequence

-0:36        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:36          'caim2' (temp 3-element array of 2-element array of 4-component vector of float)

-0:38          Constant:

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            4.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:38            2.000000

-0:39      Sequence

-0:39        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:39          'caim3' (temp 3-element array of 2-element array of 4-component vector of float)

-0:41          Constant:

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            4.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:41            2.000000

-0:43      Sequence

-0:43        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:43          'a4' (temp 3-element array of 2-element array of 4-component vector of float)

-0:43          Constant:

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:43            1.000000

-0:46      Sequence

-0:46        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:46          'aim' (temp 3-element array of 2-element array of 4-component vector of float)

-0:46          Constant:

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            4.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:46            2.000000

-0:49      Sequence

-0:49        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:49          'aim2' (temp 3-element array of 2-element array of 4-component vector of float)

-0:49          Constant:

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            4.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:49            2.000000

-0:52      Sequence

-0:52        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:52          'aim3' (temp 3-element array of 2-element array of 4-component vector of float)

-0:52          Constant:

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            4.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:52            2.000000

-0:69      move second child to first child (temp 4-element array of 7-element array of float)

-0:69        'g4' (global 4-element array of 7-element array of float)

-0:69        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:69          'g5' (global 5-element array of 7-element array of float)

-0:70      'g5' (global 5-element array of 7-element array of float)

-0:71      'gu' (global 1-element array of 7-element array of float)

-0:73      Constant:

-0:73        0.000000

-0:74      Function Call: bar(f1[5][7]; (global void)

-0:74        'g5' (global 5-element array of 7-element array of float)

-0:76      Test condition and select (temp void)

-0:76        Condition

-0:76        Compare Equal (temp bool)

-0:76          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:76            'g5' (global 5-element array of 7-element array of float)

-0:76          'g4' (global 4-element array of 7-element array of float)

-0:76        true case is null

-0:78      Test condition and select (temp void)

-0:78        Condition

-0:78        Constant:

-0:78          false (const bool)

-0:78        true case is null

-0:82      move second child to first child (temp float)

-0:82        direct index (temp float)

-0:82          direct index (temp 7-element array of float)

-0:82            'u' (temp 5-element array of 7-element array of float)

-0:82            Constant:

-0:82              2 (const int)

-0:82          Constant:

-0:82            2 (const int)

-0:82        Constant:

-0:82          3.000000

-0:84      move second child to first child (temp float)

-0:84        direct index (temp float)

-0:84          direct index (temp 7-element array of float)

-0:84            'u' (temp 5-element array of 7-element array of float)

-0:84            Constant:

-0:84              5 (const int)

-0:84          Constant:

-0:84            2 (const int)

-0:84        Constant:

-0:84          5.000000

-0:85      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)

-0:85        'u' (temp 5-element array of 7-element array of float)

-0:88  Function Definition: foo3( (global void)

-0:88    Function Parameters: 

-0:?     Sequence

-0:91      Constant:

-0:91        1 (const int)

-0:92      move second child to first child (temp float)

-0:92        direct index (temp float)

-0:92          direct index (temp 7-element array of float)

-0:92            direct index (temp 5-element array of 7-element array of float)

-0:92              'resize1' (temp 3-element array of 5-element array of 7-element array of float)

-0:92              Constant:

-0:92                1 (const int)

-0:92            Constant:

-0:92              4 (const int)

-0:92          Constant:

-0:92            5 (const int)

-0:92        Constant:

-0:92          2.000000

-0:93      Constant:

-0:93        1 (const int)

-0:95      Constant:

-0:95        3 (const int)

-0:96      Constant:

-0:96        5 (const int)

-0:97      Constant:

-0:97        7 (const int)

-0:98      Constant:

-0:98        0.000000

-0:?   Linker Objects

-0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)

-0:?     'gu' (global 1-element array of 7-element array of float)

-0:?     'gimp' (global 1-element array of implicitly-sized array of float)

-0:?     'g4' (global 4-element array of 7-element array of float)

-0:?     'g5' (global 5-element array of 7-element array of float)

-

+430AofA.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized 
+ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument 
+ERROR: 0:15: 'constructior' : array constructor argument not correct type to construct array element 
+ERROR: 0:28: '[' :  array index out of range '4'
+ERROR: 0:56: 'constructor' :  cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float'
+ERROR: 0:60: 'constructor' :  cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float'
+ERROR: 0:64: '=' :  cannot convert from 'temp 3-element array of 2-element array of 4-component vector of float' to 'temp 4-element array of 2-element array of 4-component vector of float'
+ERROR: 0:70: 'assign' :  cannot convert from 'global 4-element array of 7-element array of float' to 'global 5-element array of 7-element array of float'
+ERROR: 0:71: 'assign' :  cannot convert from 'global 4-element array of 7-element array of float' to 'global implicitly-sized array of 7-element array of float'
+ERROR: 0:73: 'foo' : no matching overloaded function found 
+ERROR: 0:78: '==' :  wrong operand types: no operation '==' exists that takes a left-hand operand of type 'global 4-element array of 7-element array of float' and a right operand of type 'global 5-element array of 7-element array of float' (or there is no acceptable conversion)
+ERROR: 0:84: '[' :  array index out of range '5'
+ERROR: 0:91: 'length' :  array must be declared with a size before using this method
+ERROR: 0:93: 'length' :  array must be declared with a size before using this method
+ERROR: 0:98: 'length' : does not operate on this type: temp float
+ERROR: 0:98: '' : function call, method, or subroutine call expected 
+ERROR: 0:98: '' : no matching overloaded function found 
+ERROR: 0:101: 'resize2' : redeclaration of array with a different array dimensions or sizes 
+ERROR: 0:104: 'resize3' : redeclaration of array with a different array dimensions or sizes 
+ERROR: 0:107: 'resize4' : redeclaration of array with a different element type 
+ERROR: 20 compilation errors.  No code generated.
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:10  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:10    Function Parameters: 
+0:10      'a' (in 5-element array of 7-element array of float)
+0:?     Sequence
+0:13      move second child to first child (temp 7-element array of float)
+0:13        'r' (temp 7-element array of float)
+0:13        direct index (temp 7-element array of float)
+0:13          'a' (in 5-element array of 7-element array of float)
+0:13          Constant:
+0:13            2 (const int)
+0:14      Constant:
+0:14        0.000000
+0:15      Constant:
+0:15        0.000000
+0:16      Branch: Return with expression
+0:16        Construct float (temp 4-element array of 7-element array of float)
+0:16          direct index (temp 7-element array of float)
+0:16            'a' (in 5-element array of 7-element array of float)
+0:16            Constant:
+0:16              0 (const int)
+0:16          direct index (temp 7-element array of float)
+0:16            'a' (in 5-element array of 7-element array of float)
+0:16            Constant:
+0:16              1 (const int)
+0:16          'r' (temp 7-element array of float)
+0:16          direct index (temp 7-element array of float)
+0:16            'a' (in 5-element array of 7-element array of float)
+0:16            Constant:
+0:16              3 (const int)
+0:17      Branch: Return with expression
+0:17        Construct float (temp 4-element array of 7-element array of float)
+0:17          direct index (temp 7-element array of float)
+0:17            'a' (in 5-element array of 7-element array of float)
+0:17            Constant:
+0:17              0 (const int)
+0:17          direct index (temp 7-element array of float)
+0:17            'a' (in 5-element array of 7-element array of float)
+0:17            Constant:
+0:17              1 (const int)
+0:17          'r' (temp 7-element array of float)
+0:17          direct index (temp 7-element array of float)
+0:17            'a' (in 5-element array of 7-element array of float)
+0:17            Constant:
+0:17              3 (const int)
+0:18      Branch: Return with expression
+0:18        Construct float (temp 4-element array of 7-element array of float)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              0 (const int)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              1 (const int)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              2 (const int)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              3 (const int)
+0:21  Function Definition: bar(f1[5][7]; (global void)
+0:21    Function Parameters: 
+0:21      '' (in 5-element array of 7-element array of float)
+0:23  Function Definition: main( (global void)
+0:23    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:28        move second child to first child (temp float)
+0:28          direct index (temp float)
+0:28            direct index (temp 2-element array of float)
+0:28              direct index (temp 4-element array of 2-element array of float)
+0:28                'gu' (temp 3-element array of 4-element array of 2-element array of float)
+0:28                Constant:
+0:28                  2 (const int)
+0:28              Constant:
+0:28                4 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:28          Constant:
+0:28            4.000000
+0:30      Sequence
+0:30        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:30          'ca4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:32          Constant:
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:33      Sequence
+0:33        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:33          'caim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:35          Constant:
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:36      Sequence
+0:36        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:36          'caim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:38          Constant:
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:39      Sequence
+0:39        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:39          'caim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:41          Constant:
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:43      Sequence
+0:43        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:43          'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:43          Constant:
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:46      Sequence
+0:46        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:46          'aim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:46          Constant:
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:49      Sequence
+0:49        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:49          'aim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:49          Constant:
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:52      Sequence
+0:52        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:52          'aim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:52          Constant:
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:69      move second child to first child (temp 4-element array of 7-element array of float)
+0:69        'g4' (global 4-element array of 7-element array of float)
+0:69        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:69          'g5' (global 5-element array of 7-element array of float)
+0:70      'g5' (global 5-element array of 7-element array of float)
+0:71      'gu' (global implicitly-sized array of 7-element array of float)
+0:73      Constant:
+0:73        0.000000
+0:74      Function Call: bar(f1[5][7]; (global void)
+0:74        'g5' (global 5-element array of 7-element array of float)
+0:76      Test condition and select (temp void)
+0:76        Condition
+0:76        Compare Equal (temp bool)
+0:76          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:76            'g5' (global 5-element array of 7-element array of float)
+0:76          'g4' (global 4-element array of 7-element array of float)
+0:76        true case is null
+0:78      Test condition and select (temp void)
+0:78        Condition
+0:78        Constant:
+0:78          false (const bool)
+0:78        true case is null
+0:82      move second child to first child (temp float)
+0:82        direct index (temp float)
+0:82          direct index (temp 7-element array of float)
+0:82            'u' (temp 5-element array of 7-element array of float)
+0:82            Constant:
+0:82              2 (const int)
+0:82          Constant:
+0:82            2 (const int)
+0:82        Constant:
+0:82          3.000000
+0:84      move second child to first child (temp float)
+0:84        direct index (temp float)
+0:84          direct index (temp 7-element array of float)
+0:84            'u' (temp 5-element array of 7-element array of float)
+0:84            Constant:
+0:84              5 (const int)
+0:84          Constant:
+0:84            2 (const int)
+0:84        Constant:
+0:84          5.000000
+0:85      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:85        'u' (temp 5-element array of 7-element array of float)
+0:88  Function Definition: foo3( (global void)
+0:88    Function Parameters: 
+0:?     Sequence
+0:91      Constant:
+0:91        1 (const int)
+0:92      move second child to first child (temp float)
+0:92        direct index (temp float)
+0:92          direct index (temp 7-element array of float)
+0:92            direct index (temp 5-element array of 7-element array of float)
+0:92              'resize1' (temp 3-element array of 5-element array of 7-element array of float)
+0:92              Constant:
+0:92                1 (const int)
+0:92            Constant:
+0:92              4 (const int)
+0:92          Constant:
+0:92            5 (const int)
+0:92        Constant:
+0:92          2.000000
+0:93      Constant:
+0:93        1 (const int)
+0:95      Constant:
+0:95        3 (const int)
+0:96      Constant:
+0:96        5 (const int)
+0:97      Constant:
+0:97        7 (const int)
+0:98      Constant:
+0:98        0.000000
+0:?   Linker Objects
+0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
+0:?     'gu' (global implicitly-sized array of 7-element array of float)
+0:?     'gimp' (global implicitly-sized array of implicitly-sized array of float)
+0:?     'g4' (global 4-element array of 7-element array of float)
+0:?     'g5' (global 5-element array of 7-element array of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:10  Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:10    Function Parameters: 
+0:10      'a' (in 5-element array of 7-element array of float)
+0:?     Sequence
+0:13      move second child to first child (temp 7-element array of float)
+0:13        'r' (temp 7-element array of float)
+0:13        direct index (temp 7-element array of float)
+0:13          'a' (in 5-element array of 7-element array of float)
+0:13          Constant:
+0:13            2 (const int)
+0:14      Constant:
+0:14        0.000000
+0:15      Constant:
+0:15        0.000000
+0:16      Branch: Return with expression
+0:16        Construct float (temp 4-element array of 7-element array of float)
+0:16          direct index (temp 7-element array of float)
+0:16            'a' (in 5-element array of 7-element array of float)
+0:16            Constant:
+0:16              0 (const int)
+0:16          direct index (temp 7-element array of float)
+0:16            'a' (in 5-element array of 7-element array of float)
+0:16            Constant:
+0:16              1 (const int)
+0:16          'r' (temp 7-element array of float)
+0:16          direct index (temp 7-element array of float)
+0:16            'a' (in 5-element array of 7-element array of float)
+0:16            Constant:
+0:16              3 (const int)
+0:17      Branch: Return with expression
+0:17        Construct float (temp 4-element array of 7-element array of float)
+0:17          direct index (temp 7-element array of float)
+0:17            'a' (in 5-element array of 7-element array of float)
+0:17            Constant:
+0:17              0 (const int)
+0:17          direct index (temp 7-element array of float)
+0:17            'a' (in 5-element array of 7-element array of float)
+0:17            Constant:
+0:17              1 (const int)
+0:17          'r' (temp 7-element array of float)
+0:17          direct index (temp 7-element array of float)
+0:17            'a' (in 5-element array of 7-element array of float)
+0:17            Constant:
+0:17              3 (const int)
+0:18      Branch: Return with expression
+0:18        Construct float (temp 4-element array of 7-element array of float)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              0 (const int)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              1 (const int)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              2 (const int)
+0:18          direct index (temp 7-element array of float)
+0:18            'a' (in 5-element array of 7-element array of float)
+0:18            Constant:
+0:18              3 (const int)
+0:21  Function Definition: bar(f1[5][7]; (global void)
+0:21    Function Parameters: 
+0:21      '' (in 5-element array of 7-element array of float)
+0:23  Function Definition: main( (global void)
+0:23    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:28        move second child to first child (temp float)
+0:28          direct index (temp float)
+0:28            direct index (temp 2-element array of float)
+0:28              direct index (temp 4-element array of 2-element array of float)
+0:28                'gu' (temp 3-element array of 4-element array of 2-element array of float)
+0:28                Constant:
+0:28                  2 (const int)
+0:28              Constant:
+0:28                4 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:28          Constant:
+0:28            4.000000
+0:30      Sequence
+0:30        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:30          'ca4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:32          Constant:
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            0.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:32            1.000000
+0:33      Sequence
+0:33        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:33          'caim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:35          Constant:
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            4.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:35            2.000000
+0:36      Sequence
+0:36        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:36          'caim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:38          Constant:
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            4.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:38            2.000000
+0:39      Sequence
+0:39        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:39          'caim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:41          Constant:
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            4.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:41            2.000000
+0:43      Sequence
+0:43        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:43          'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:43          Constant:
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:43            1.000000
+0:46      Sequence
+0:46        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:46          'aim' (temp 3-element array of 2-element array of 4-component vector of float)
+0:46          Constant:
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            4.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:46            2.000000
+0:49      Sequence
+0:49        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:49          'aim2' (temp 3-element array of 2-element array of 4-component vector of float)
+0:49          Constant:
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            4.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:49            2.000000
+0:52      Sequence
+0:52        move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:52          'aim3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:52          Constant:
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            4.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:52            2.000000
+0:69      move second child to first child (temp 4-element array of 7-element array of float)
+0:69        'g4' (global 4-element array of 7-element array of float)
+0:69        Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:69          'g5' (global 5-element array of 7-element array of float)
+0:70      'g5' (global 5-element array of 7-element array of float)
+0:71      'gu' (global 1-element array of 7-element array of float)
+0:73      Constant:
+0:73        0.000000
+0:74      Function Call: bar(f1[5][7]; (global void)
+0:74        'g5' (global 5-element array of 7-element array of float)
+0:76      Test condition and select (temp void)
+0:76        Condition
+0:76        Compare Equal (temp bool)
+0:76          Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:76            'g5' (global 5-element array of 7-element array of float)
+0:76          'g4' (global 4-element array of 7-element array of float)
+0:76        true case is null
+0:78      Test condition and select (temp void)
+0:78        Condition
+0:78        Constant:
+0:78          false (const bool)
+0:78        true case is null
+0:82      move second child to first child (temp float)
+0:82        direct index (temp float)
+0:82          direct index (temp 7-element array of float)
+0:82            'u' (temp 5-element array of 7-element array of float)
+0:82            Constant:
+0:82              2 (const int)
+0:82          Constant:
+0:82            2 (const int)
+0:82        Constant:
+0:82          3.000000
+0:84      move second child to first child (temp float)
+0:84        direct index (temp float)
+0:84          direct index (temp 7-element array of float)
+0:84            'u' (temp 5-element array of 7-element array of float)
+0:84            Constant:
+0:84              5 (const int)
+0:84          Constant:
+0:84            2 (const int)
+0:84        Constant:
+0:84          5.000000
+0:85      Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float)
+0:85        'u' (temp 5-element array of 7-element array of float)
+0:88  Function Definition: foo3( (global void)
+0:88    Function Parameters: 
+0:?     Sequence
+0:91      Constant:
+0:91        1 (const int)
+0:92      move second child to first child (temp float)
+0:92        direct index (temp float)
+0:92          direct index (temp 7-element array of float)
+0:92            direct index (temp 5-element array of 7-element array of float)
+0:92              'resize1' (temp 3-element array of 5-element array of 7-element array of float)
+0:92              Constant:
+0:92                1 (const int)
+0:92            Constant:
+0:92              4 (const int)
+0:92          Constant:
+0:92            5 (const int)
+0:92        Constant:
+0:92          2.000000
+0:93      Constant:
+0:93        1 (const int)
+0:95      Constant:
+0:95        3 (const int)
+0:96      Constant:
+0:96        5 (const int)
+0:97      Constant:
+0:97        7 (const int)
+0:98      Constant:
+0:98        0.000000
+0:?   Linker Objects
+0:?     'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float)
+0:?     'gu' (global 1-element array of 7-element array of float)
+0:?     'gimp' (global 1-element array of implicitly-sized array of float)
+0:?     'g4' (global 4-element array of 7-element array of float)
+0:?     'g5' (global 5-element array of 7-element array of float)
+
diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out
index beb0b32..7460139 100644
--- a/Test/baseResults/430scope.vert.out
+++ b/Test/baseResults/430scope.vert.out
@@ -1,243 +1,243 @@
-430scope.vert

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:5: 'a' : redefinition 

-ERROR: 0:17: 'b' : function name is redeclaration of existing name 

-ERROR: 0:20: 'c' : redefinition 

-ERROR: 0:22: 'f' : redefinition 

-ERROR: 0:43: 'sin' : can't use function syntax on variable 

-ERROR: 0:57: 'z' : undeclared identifier 

-ERROR: 0:57: 'z' : redefinition 

-ERROR: 0:73: 'degrees' : can't use function syntax on variable 

-ERROR: 8 compilation errors.  No code generated.

-

-

-Shader version: 430

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global int)

-0:3    Function Parameters: 

-0:3      'a' (in int)

-0:3      'b' (in int)

-0:3      'c' (in int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp float)

-0:8            'a' (temp float)

-0:8            add (temp float)

-0:8              Convert int to float (temp float)

-0:8                'a' (in int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in int)

-0:25  Function Definition: cos(f1; (global float)

-0:25    Function Parameters: 

-0:25      'x' (in float)

-0:27    Sequence

-0:27      Branch: Return with expression

-0:27        Constant:

-0:27          1.000000

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return with expression

-0:31        Constant:

-0:31          true (const bool)

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp int)

-0:42      'sin' (temp float)

-0:43      Constant:

-0:43        0.000000

-0:44      Function Call: f(i1;i1;i1; (global int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp float)

-0:47        'f' (temp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)

-0:49          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:49          Constant:

-0:49            0 (const uint)

-0:49        Construct vec4 (temp 4-component vector of float)

-0:49          'f' (temp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp int)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp int)

-0:52            'f' (temp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp int)

-0:51            'f' (temp int)

-0:54      Sequence

-0:54        move second child to first child (temp int)

-0:54          'x' (temp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp float)

-0:56            'x' (temp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp float)

-0:56            'y' (temp float)

-0:56            'x' (temp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp int)

-0:60            'x' (temp int)

-0:60            'x' (temp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp int x})

-0:68            'S' (temp structure{temp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp int)

-0:69          'S' (temp structure{temp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        0.000000

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'tan' (global float)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 430

-ERROR: node is still EOpNull!

-0:3  Function Definition: f(i1;i1;i1; (global int)

-0:3    Function Parameters: 

-0:3      'a' (in int)

-0:3      'b' (in int)

-0:3      'c' (in int)

-0:?     Sequence

-0:8      Sequence

-0:8        Sequence

-0:8          move second child to first child (temp float)

-0:8            'a' (temp float)

-0:8            add (temp float)

-0:8              Convert int to float (temp float)

-0:8                'a' (in int)

-0:8              Constant:

-0:8                1.000000

-0:11      Branch: Return with expression

-0:11        'a' (in int)

-0:25  Function Definition: cos(f1; (global float)

-0:25    Function Parameters: 

-0:25      'x' (in float)

-0:27    Sequence

-0:27      Branch: Return with expression

-0:27        Constant:

-0:27          1.000000

-0:29  Function Definition: radians(b1; (global bool)

-0:29    Function Parameters: 

-0:29      'x' (in bool)

-0:31    Sequence

-0:31      Branch: Return with expression

-0:31        Constant:

-0:31          true (const bool)

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:?     Sequence

-0:39      Function Call: g( (temp int)

-0:42      'sin' (temp float)

-0:43      Constant:

-0:43        0.000000

-0:44      Function Call: f(i1;i1;i1; (global int)

-0:44        Constant:

-0:44          1 (const int)

-0:44        Constant:

-0:44          2 (const int)

-0:44        Constant:

-0:44          3 (const int)

-0:47      move second child to first child (temp float)

-0:47        'f' (temp float)

-0:47        Constant:

-0:47          3.000000

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)

-0:49          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:49          Constant:

-0:49            0 (const uint)

-0:49        Construct vec4 (temp 4-component vector of float)

-0:49          'f' (temp float)

-0:51      Sequence

-0:51        Sequence

-0:51          move second child to first child (temp int)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              0 (const int)

-0:51        Loop with condition tested first

-0:51          Loop Condition

-0:51          Compare Less Than (temp bool)

-0:51            'f' (temp int)

-0:51            Constant:

-0:51              10 (const int)

-0:51          Loop Body

-0:52          Pre-Increment (temp int)

-0:52            'f' (temp int)

-0:51          Loop Terminal Expression

-0:51          Pre-Increment (temp int)

-0:51            'f' (temp int)

-0:54      Sequence

-0:54        move second child to first child (temp int)

-0:54          'x' (temp int)

-0:54          Constant:

-0:54            1 (const int)

-0:56      Sequence

-0:56        Sequence

-0:56          move second child to first child (temp float)

-0:56            'x' (temp float)

-0:56            Constant:

-0:56              2.000000

-0:56          move second child to first child (temp float)

-0:56            'y' (temp float)

-0:56            'x' (temp float)

-0:60      Sequence

-0:60        Sequence

-0:60          move second child to first child (temp int)

-0:60            'x' (temp int)

-0:60            'x' (temp int)

-0:68      Sequence

-0:68        Sequence

-0:68          move second child to first child (temp structure{temp int x})

-0:68            'S' (temp structure{temp int x})

-0:68            Constant:

-0:68              0 (const int)

-0:69        x: direct index for structure (temp int)

-0:69          'S' (temp structure{temp int x})

-0:69          Constant:

-0:69            0 (const int)

-0:73      Constant:

-0:73        0.000000

-0:?   Linker Objects

-0:?     'b' (global bool)

-0:?     'tan' (global float)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+430scope.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:5: 'a' : redefinition 
+ERROR: 0:17: 'b' : function name is redeclaration of existing name 
+ERROR: 0:20: 'c' : redefinition 
+ERROR: 0:22: 'f' : redefinition 
+ERROR: 0:43: 'sin' : can't use function syntax on variable 
+ERROR: 0:57: 'z' : undeclared identifier 
+ERROR: 0:57: 'z' : redefinition 
+ERROR: 0:73: 'degrees' : can't use function syntax on variable 
+ERROR: 8 compilation errors.  No code generated.
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global int)
+0:3    Function Parameters: 
+0:3      'a' (in int)
+0:3      'b' (in int)
+0:3      'c' (in int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp float)
+0:8            'a' (temp float)
+0:8            add (temp float)
+0:8              Convert int to float (temp float)
+0:8                'a' (in int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in int)
+0:25  Function Definition: cos(f1; (global float)
+0:25    Function Parameters: 
+0:25      'x' (in float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Constant:
+0:27          1.000000
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return with expression
+0:31        Constant:
+0:31          true (const bool)
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp int)
+0:42      'sin' (temp float)
+0:43      Constant:
+0:43        0.000000
+0:44      Function Call: f(i1;i1;i1; (global int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp float)
+0:47        'f' (temp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:49          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:49          Constant:
+0:49            0 (const uint)
+0:49        Construct vec4 (temp 4-component vector of float)
+0:49          'f' (temp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp int)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp int)
+0:52            'f' (temp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp int)
+0:51            'f' (temp int)
+0:54      Sequence
+0:54        move second child to first child (temp int)
+0:54          'x' (temp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp float)
+0:56            'x' (temp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp float)
+0:56            'y' (temp float)
+0:56            'x' (temp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp int)
+0:60            'x' (temp int)
+0:60            'x' (temp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp int x})
+0:68            'S' (temp structure{temp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp int)
+0:69          'S' (temp structure{temp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        0.000000
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'tan' (global float)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:3  Function Definition: f(i1;i1;i1; (global int)
+0:3    Function Parameters: 
+0:3      'a' (in int)
+0:3      'b' (in int)
+0:3      'c' (in int)
+0:?     Sequence
+0:8      Sequence
+0:8        Sequence
+0:8          move second child to first child (temp float)
+0:8            'a' (temp float)
+0:8            add (temp float)
+0:8              Convert int to float (temp float)
+0:8                'a' (in int)
+0:8              Constant:
+0:8                1.000000
+0:11      Branch: Return with expression
+0:11        'a' (in int)
+0:25  Function Definition: cos(f1; (global float)
+0:25    Function Parameters: 
+0:25      'x' (in float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Constant:
+0:27          1.000000
+0:29  Function Definition: radians(b1; (global bool)
+0:29    Function Parameters: 
+0:29      'x' (in bool)
+0:31    Sequence
+0:31      Branch: Return with expression
+0:31        Constant:
+0:31          true (const bool)
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:?     Sequence
+0:39      Function Call: g( (temp int)
+0:42      'sin' (temp float)
+0:43      Constant:
+0:43        0.000000
+0:44      Function Call: f(i1;i1;i1; (global int)
+0:44        Constant:
+0:44          1 (const int)
+0:44        Constant:
+0:44          2 (const int)
+0:44        Constant:
+0:44          3 (const int)
+0:47      move second child to first child (temp float)
+0:47        'f' (temp float)
+0:47        Constant:
+0:47          3.000000
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position)
+0:49          'anon@0' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:49          Constant:
+0:49            0 (const uint)
+0:49        Construct vec4 (temp 4-component vector of float)
+0:49          'f' (temp float)
+0:51      Sequence
+0:51        Sequence
+0:51          move second child to first child (temp int)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              0 (const int)
+0:51        Loop with condition tested first
+0:51          Loop Condition
+0:51          Compare Less Than (temp bool)
+0:51            'f' (temp int)
+0:51            Constant:
+0:51              10 (const int)
+0:51          Loop Body
+0:52          Pre-Increment (temp int)
+0:52            'f' (temp int)
+0:51          Loop Terminal Expression
+0:51          Pre-Increment (temp int)
+0:51            'f' (temp int)
+0:54      Sequence
+0:54        move second child to first child (temp int)
+0:54          'x' (temp int)
+0:54          Constant:
+0:54            1 (const int)
+0:56      Sequence
+0:56        Sequence
+0:56          move second child to first child (temp float)
+0:56            'x' (temp float)
+0:56            Constant:
+0:56              2.000000
+0:56          move second child to first child (temp float)
+0:56            'y' (temp float)
+0:56            'x' (temp float)
+0:60      Sequence
+0:60        Sequence
+0:60          move second child to first child (temp int)
+0:60            'x' (temp int)
+0:60            'x' (temp int)
+0:68      Sequence
+0:68        Sequence
+0:68          move second child to first child (temp structure{temp int x})
+0:68            'S' (temp structure{temp int x})
+0:68            Constant:
+0:68              0 (const int)
+0:69        x: direct index for structure (temp int)
+0:69          'S' (temp structure{temp int x})
+0:69          Constant:
+0:69            0 (const int)
+0:73      Constant:
+0:73        0.000000
+0:?   Linker Objects
+0:?     'b' (global bool)
+0:?     'tan' (global float)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/440.frag.out b/Test/baseResults/440.frag.out
index 0d43981..cafd85a 100644
--- a/Test/baseResults/440.frag.out
+++ b/Test/baseResults/440.frag.out
@@ -1,194 +1,194 @@
-440.frag

-Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:11: 'location' : overlapping use of location 4

-ERROR: 0:13: 'component' : type overflows the available 4 components 

-ERROR: 0:22: 'location' : fragment outputs sharing the same location must be the same basic type 30

-ERROR: 0:24: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 

-ERROR: 0:25: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 

-ERROR: 0:26: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 

-ERROR: 0:29: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 

-ERROR: 0:30: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 

-ERROR: 0:30: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:31: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 

-ERROR: 0:31: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:33: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 

-ERROR: 0:34: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 

-ERROR: 0:34: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:35: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 

-ERROR: 0:35: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:37: 'offset' : only applies to block members, not blocks 

-ERROR: 0:38: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:38: 'offset' : only applies to block members, not blocks 

-ERROR: 0:39: 'output block' : not supported in this stage: fragment

-ERROR: 0:39: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:39: 'offset' : only applies to block members, not blocks 

-ERROR: 0:42: 'offset/align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:43: 'offset/align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:43: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:44: 'output block' : not supported in this stage: fragment

-ERROR: 0:44: 'offset/align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:44: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:46: 'offset' : cannot specify on a variable declaration 

-ERROR: 0:47: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:48: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:50: 'align' : cannot specify on a variable declaration 

-ERROR: 0:51: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:52: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:54: 'layout' : matrix or packing qualifiers can only be used on a uniform or buffer 

-ERROR: 0:55: 'layout' : cannot specify packing on a variable declaration 

-ERROR: 0:57: 'align' : must be a power of 2 

-ERROR: 0:58: 'align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:63: 'align' : can only be used with std140 or std430 layout packing 

-ERROR: 0:62: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:63: 'layout' : offset/align can only be used on a uniform or buffer 

-ERROR: 0:84: 'align' : must be a power of 2 

-ERROR: 0:83: 'offset' : cannot lie in previous members 

-ERROR: 0:85: 'offset' : must be a multiple of the member's alignment 

-ERROR: 0:103: 'align' : must be a power of 2 

-ERROR: 0:105: 'align' : must be a power of 2 

-ERROR: 0:102: 'offset' : cannot lie in previous members 

-ERROR: 0:104: 'offset' : must be a multiple of the member's alignment 

-ERROR: 48 compilation errors.  No code generated.

-

-

-Shader version: 440

-ERROR: node is still EOpNull!

-0:144  Function Definition: interp( (global void)

-0:144    Function Parameters: 

-0:146    Sequence

-0:146      interpolateAtCentroid (global 2-component vector of float)

-0:146        vector swizzle (temp 2-component vector of float)

-0:146          direct index (smooth sample temp 3-component vector of float)

-0:146            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:146            Constant:

-0:146              2 (const int)

-0:146          Sequence

-0:146            Constant:

-0:146              0 (const int)

-0:146            Constant:

-0:146              1 (const int)

-0:147      interpolateAtSample (global float)

-0:147        direct index (temp float)

-0:147          direct index (smooth sample temp 3-component vector of float)

-0:147            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:147            Constant:

-0:147              2 (const int)

-0:147          Constant:

-0:147            0 (const int)

-0:147        Constant:

-0:147          2 (const int)

-0:150  Function Definition: layer( (global int)

-0:150    Function Parameters: 

-0:152    Sequence

-0:152      Branch: Return with expression

-0:152        'gl_Layer' (flat in int Layer)

-0:?   Linker Objects

-0:?     'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)

-0:?     'b' (layout(location=4 component=1 ) smooth in float)

-0:?     'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)

-0:?     'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)

-0:?     'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)

-0:?     'f' (layout(location=20 component=3 ) smooth in 6-element array of float)

-0:?     'be' (layout(location=30 component=3 ) out int)

-0:?     'bf' (layout(location=30 component=0 ) out 3-component vector of float)

-0:?     'inst1' (layout(column_major shared offset=12 ) uniform block{layout(column_major shared ) uniform int a})

-0:?     'inst2' (layout(offset=12 ) in block{in int a})

-0:?     'inst3' (layout(offset=12 ) out block{out int a})

-0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})

-0:?     'inst8' (layout(column_major shared align=16 ) uniform block{layout(column_major shared ) uniform int a})

-0:?     'inst5' (layout(align=16 ) in block{in int a})

-0:?     'inst6' (layout(align=16 ) out block{out int a})

-0:?     'v1' (layout(offset=12 ) uniform 4-component vector of float)

-0:?     'v2' (layout(offset=12 ) smooth in 4-component vector of float)

-0:?     'v3' (layout(offset=12 ) out 4-component vector of float)

-0:?     'v4' (layout(align=16 ) uniform 4-component vector of float)

-0:?     'v5' (layout(align=16 ) smooth in 4-component vector of float)

-0:?     'v6' (layout(align=16 ) out 4-component vector of float)

-0:?     'v7' (layout(std140 ) uniform 4-component vector of float)

-0:?     'inst7' (layout(column_major shared ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f})

-0:?     'inst10' (in block{layout(offset=12 ) in float f, layout(align=4 ) in float g})

-0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 align=32 ) uniform float e, layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g, layout(column_major std430 align=32 ) uniform float h})

-0:?     'inst11' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 ) uniform float g})

-0:?     'specExampleErrors' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float c, layout(column_major std140 offset=56 ) uniform double g, layout(column_major std140 offset=72 ) uniform double h})

-0:?     'specExample' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float d, layout(column_major std140 offset=64 align=16 ) uniform float e, layout(column_major std140 offset=72 align=2 ) uniform double f, layout(column_major std140 offset=80 ) uniform float h, layout(column_major std140 offset=128 align=64 ) uniform 3-component vector of double i, layout(column_major std140 offset=168 align=8 ) uniform float j})

-0:?     'specExampleErrors430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float c, layout(column_major std430 offset=56 ) buffer double g, layout(column_major std430 offset=72 ) buffer double h, layout(column_major std430 offset=80 ) buffer double i})

-0:?     'specExample430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float d, layout(column_major std430 offset=64 align=16 ) buffer float e, layout(column_major std430 offset=72 align=2 ) buffer double f, layout(column_major std430 offset=80 ) buffer float h, layout(column_major std430 offset=128 align=64 ) buffer 3-component vector of double i, layout(column_major std430 offset=168 align=8 ) buffer float j})

-0:?     'specExample4300' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=384 align=128 ) buffer float e, layout(column_major std430 offset=512 align=128 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})

-0:?     'specExample4301' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=512 align=128 ) buffer float e, layout(column_major std430 offset=520 align=8 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})

-0:?     'aconst' (global 4-element array of int)

-0:?     'bconst' (global 64-element array of int)

-0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point

-

-Shader version: 440

-ERROR: node is still EOpNull!

-0:144  Function Definition: interp( (global void)

-0:144    Function Parameters: 

-0:146    Sequence

-0:146      interpolateAtCentroid (global 2-component vector of float)

-0:146        vector swizzle (temp 2-component vector of float)

-0:146          direct index (smooth sample temp 3-component vector of float)

-0:146            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:146            Constant:

-0:146              2 (const int)

-0:146          Sequence

-0:146            Constant:

-0:146              0 (const int)

-0:146            Constant:

-0:146              1 (const int)

-0:147      interpolateAtSample (global float)

-0:147        direct index (temp float)

-0:147          direct index (smooth sample temp 3-component vector of float)

-0:147            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-0:147            Constant:

-0:147              2 (const int)

-0:147          Constant:

-0:147            0 (const int)

-0:147        Constant:

-0:147          2 (const int)

-0:150  Function Definition: layer( (global int)

-0:150    Function Parameters: 

-0:152    Sequence

-0:152      Branch: Return with expression

-0:152        'gl_Layer' (flat in int Layer)

-0:?   Linker Objects

-0:?     'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)

-0:?     'b' (layout(location=4 component=1 ) smooth in float)

-0:?     'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)

-0:?     'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)

-0:?     'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)

-0:?     'f' (layout(location=20 component=3 ) smooth in 6-element array of float)

-0:?     'be' (layout(location=30 component=3 ) out int)

-0:?     'bf' (layout(location=30 component=0 ) out 3-component vector of float)

-0:?     'inst1' (layout(column_major shared offset=12 ) uniform block{layout(column_major shared ) uniform int a})

-0:?     'inst2' (layout(offset=12 ) in block{in int a})

-0:?     'inst3' (layout(offset=12 ) out block{out int a})

-0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})

-0:?     'inst8' (layout(column_major shared align=16 ) uniform block{layout(column_major shared ) uniform int a})

-0:?     'inst5' (layout(align=16 ) in block{in int a})

-0:?     'inst6' (layout(align=16 ) out block{out int a})

-0:?     'v1' (layout(offset=12 ) uniform 4-component vector of float)

-0:?     'v2' (layout(offset=12 ) smooth in 4-component vector of float)

-0:?     'v3' (layout(offset=12 ) out 4-component vector of float)

-0:?     'v4' (layout(align=16 ) uniform 4-component vector of float)

-0:?     'v5' (layout(align=16 ) smooth in 4-component vector of float)

-0:?     'v6' (layout(align=16 ) out 4-component vector of float)

-0:?     'v7' (layout(std140 ) uniform 4-component vector of float)

-0:?     'inst7' (layout(column_major shared ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f})

-0:?     'inst10' (in block{layout(offset=12 ) in float f, layout(align=4 ) in float g})

-0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 align=32 ) uniform float e, layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g, layout(column_major std430 align=32 ) uniform float h})

-0:?     'inst11' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 ) uniform float g})

-0:?     'specExampleErrors' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float c, layout(column_major std140 offset=56 ) uniform double g, layout(column_major std140 offset=72 ) uniform double h})

-0:?     'specExample' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float d, layout(column_major std140 offset=64 align=16 ) uniform float e, layout(column_major std140 offset=72 align=2 ) uniform double f, layout(column_major std140 offset=80 ) uniform float h, layout(column_major std140 offset=128 align=64 ) uniform 3-component vector of double i, layout(column_major std140 offset=168 align=8 ) uniform float j})

-0:?     'specExampleErrors430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float c, layout(column_major std430 offset=56 ) buffer double g, layout(column_major std430 offset=72 ) buffer double h, layout(column_major std430 offset=80 ) buffer double i})

-0:?     'specExample430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float d, layout(column_major std430 offset=64 align=16 ) buffer float e, layout(column_major std430 offset=72 align=2 ) buffer double f, layout(column_major std430 offset=80 ) buffer float h, layout(column_major std430 offset=128 align=64 ) buffer 3-component vector of double i, layout(column_major std430 offset=168 align=8 ) buffer float j})

-0:?     'specExample4300' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=384 align=128 ) buffer float e, layout(column_major std430 offset=512 align=128 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})

-0:?     'specExample4301' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=512 align=128 ) buffer float e, layout(column_major std430 offset=520 align=8 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})

-0:?     'aconst' (global 4-element array of int)

-0:?     'bconst' (global 64-element array of int)

-0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)

-

+440.frag
+Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:11: 'location' : overlapping use of location 4
+ERROR: 0:13: 'component' : type overflows the available 4 components 
+ERROR: 0:22: 'location' : fragment outputs sharing the same location must be the same basic type 30
+ERROR: 0:24: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 
+ERROR: 0:25: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 
+ERROR: 0:26: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) 
+ERROR: 0:29: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 
+ERROR: 0:30: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 
+ERROR: 0:30: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:31: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 
+ERROR: 0:31: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:33: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 
+ERROR: 0:34: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 
+ERROR: 0:34: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:35: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) 
+ERROR: 0:35: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:37: 'offset' : only applies to block members, not blocks 
+ERROR: 0:38: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:38: 'offset' : only applies to block members, not blocks 
+ERROR: 0:39: 'output block' : not supported in this stage: fragment
+ERROR: 0:39: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:39: 'offset' : only applies to block members, not blocks 
+ERROR: 0:42: 'offset/align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:43: 'offset/align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:43: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:44: 'output block' : not supported in this stage: fragment
+ERROR: 0:44: 'offset/align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:44: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:46: 'offset' : cannot specify on a variable declaration 
+ERROR: 0:47: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:48: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:50: 'align' : cannot specify on a variable declaration 
+ERROR: 0:51: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:52: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:54: 'layout' : matrix or packing qualifiers can only be used on a uniform or buffer 
+ERROR: 0:55: 'layout' : cannot specify packing on a variable declaration 
+ERROR: 0:57: 'align' : must be a power of 2 
+ERROR: 0:58: 'align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:63: 'align' : can only be used with std140 or std430 layout packing 
+ERROR: 0:62: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:63: 'layout' : offset/align can only be used on a uniform or buffer 
+ERROR: 0:84: 'align' : must be a power of 2 
+ERROR: 0:83: 'offset' : cannot lie in previous members 
+ERROR: 0:85: 'offset' : must be a multiple of the member's alignment 
+ERROR: 0:103: 'align' : must be a power of 2 
+ERROR: 0:105: 'align' : must be a power of 2 
+ERROR: 0:102: 'offset' : cannot lie in previous members 
+ERROR: 0:104: 'offset' : must be a multiple of the member's alignment 
+ERROR: 48 compilation errors.  No code generated.
+
+
+Shader version: 440
+ERROR: node is still EOpNull!
+0:144  Function Definition: interp( (global void)
+0:144    Function Parameters: 
+0:146    Sequence
+0:146      interpolateAtCentroid (global 2-component vector of float)
+0:146        vector swizzle (temp 2-component vector of float)
+0:146          direct index (smooth sample temp 3-component vector of float)
+0:146            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:146            Constant:
+0:146              2 (const int)
+0:146          Sequence
+0:146            Constant:
+0:146              0 (const int)
+0:146            Constant:
+0:146              1 (const int)
+0:147      interpolateAtSample (global float)
+0:147        direct index (temp float)
+0:147          direct index (smooth sample temp 3-component vector of float)
+0:147            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:147            Constant:
+0:147              2 (const int)
+0:147          Constant:
+0:147            0 (const int)
+0:147        Constant:
+0:147          2 (const int)
+0:150  Function Definition: layer( (global int)
+0:150    Function Parameters: 
+0:152    Sequence
+0:152      Branch: Return with expression
+0:152        'gl_Layer' (flat in int Layer)
+0:?   Linker Objects
+0:?     'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:?     'b' (layout(location=4 component=1 ) smooth in float)
+0:?     'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:?     'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)
+0:?     'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)
+0:?     'f' (layout(location=20 component=3 ) smooth in 6-element array of float)
+0:?     'be' (layout(location=30 component=3 ) out int)
+0:?     'bf' (layout(location=30 component=0 ) out 3-component vector of float)
+0:?     'inst1' (layout(column_major shared offset=12 ) uniform block{layout(column_major shared ) uniform int a})
+0:?     'inst2' (layout(offset=12 ) in block{in int a})
+0:?     'inst3' (layout(offset=12 ) out block{out int a})
+0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:?     'inst8' (layout(column_major shared align=16 ) uniform block{layout(column_major shared ) uniform int a})
+0:?     'inst5' (layout(align=16 ) in block{in int a})
+0:?     'inst6' (layout(align=16 ) out block{out int a})
+0:?     'v1' (layout(offset=12 ) uniform 4-component vector of float)
+0:?     'v2' (layout(offset=12 ) smooth in 4-component vector of float)
+0:?     'v3' (layout(offset=12 ) out 4-component vector of float)
+0:?     'v4' (layout(align=16 ) uniform 4-component vector of float)
+0:?     'v5' (layout(align=16 ) smooth in 4-component vector of float)
+0:?     'v6' (layout(align=16 ) out 4-component vector of float)
+0:?     'v7' (layout(std140 ) uniform 4-component vector of float)
+0:?     'inst7' (layout(column_major shared ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f})
+0:?     'inst10' (in block{layout(offset=12 ) in float f, layout(align=4 ) in float g})
+0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 align=32 ) uniform float e, layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g, layout(column_major std430 align=32 ) uniform float h})
+0:?     'inst11' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 ) uniform float g})
+0:?     'specExampleErrors' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float c, layout(column_major std140 offset=56 ) uniform double g, layout(column_major std140 offset=72 ) uniform double h})
+0:?     'specExample' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float d, layout(column_major std140 offset=64 align=16 ) uniform float e, layout(column_major std140 offset=72 align=2 ) uniform double f, layout(column_major std140 offset=80 ) uniform float h, layout(column_major std140 offset=128 align=64 ) uniform 3-component vector of double i, layout(column_major std140 offset=168 align=8 ) uniform float j})
+0:?     'specExampleErrors430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float c, layout(column_major std430 offset=56 ) buffer double g, layout(column_major std430 offset=72 ) buffer double h, layout(column_major std430 offset=80 ) buffer double i})
+0:?     'specExample430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float d, layout(column_major std430 offset=64 align=16 ) buffer float e, layout(column_major std430 offset=72 align=2 ) buffer double f, layout(column_major std430 offset=80 ) buffer float h, layout(column_major std430 offset=128 align=64 ) buffer 3-component vector of double i, layout(column_major std430 offset=168 align=8 ) buffer float j})
+0:?     'specExample4300' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=384 align=128 ) buffer float e, layout(column_major std430 offset=512 align=128 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:?     'specExample4301' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=512 align=128 ) buffer float e, layout(column_major std430 offset=520 align=8 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:?     'aconst' (global 4-element array of int)
+0:?     'bconst' (global 64-element array of int)
+0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 440
+ERROR: node is still EOpNull!
+0:144  Function Definition: interp( (global void)
+0:144    Function Parameters: 
+0:146    Sequence
+0:146      interpolateAtCentroid (global 2-component vector of float)
+0:146        vector swizzle (temp 2-component vector of float)
+0:146          direct index (smooth sample temp 3-component vector of float)
+0:146            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:146            Constant:
+0:146              2 (const int)
+0:146          Sequence
+0:146            Constant:
+0:146              0 (const int)
+0:146            Constant:
+0:146              1 (const int)
+0:147      interpolateAtSample (global float)
+0:147        direct index (temp float)
+0:147          direct index (smooth sample temp 3-component vector of float)
+0:147            'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+0:147            Constant:
+0:147              2 (const int)
+0:147          Constant:
+0:147            0 (const int)
+0:147        Constant:
+0:147          2 (const int)
+0:150  Function Definition: layer( (global int)
+0:150    Function Parameters: 
+0:152    Sequence
+0:152      Branch: Return with expression
+0:152        'gl_Layer' (flat in int Layer)
+0:?   Linker Objects
+0:?     'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:?     'b' (layout(location=4 component=1 ) smooth in float)
+0:?     'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)
+0:?     'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)
+0:?     'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)
+0:?     'f' (layout(location=20 component=3 ) smooth in 6-element array of float)
+0:?     'be' (layout(location=30 component=3 ) out int)
+0:?     'bf' (layout(location=30 component=0 ) out 3-component vector of float)
+0:?     'inst1' (layout(column_major shared offset=12 ) uniform block{layout(column_major shared ) uniform int a})
+0:?     'inst2' (layout(offset=12 ) in block{in int a})
+0:?     'inst3' (layout(offset=12 ) out block{out int a})
+0:?     'inst4' (layout(column_major std140 align=16 ) uniform block{layout(column_major std140 offset=0 align=16 ) uniform int a})
+0:?     'inst8' (layout(column_major shared align=16 ) uniform block{layout(column_major shared ) uniform int a})
+0:?     'inst5' (layout(align=16 ) in block{in int a})
+0:?     'inst6' (layout(align=16 ) out block{out int a})
+0:?     'v1' (layout(offset=12 ) uniform 4-component vector of float)
+0:?     'v2' (layout(offset=12 ) smooth in 4-component vector of float)
+0:?     'v3' (layout(offset=12 ) out 4-component vector of float)
+0:?     'v4' (layout(align=16 ) uniform 4-component vector of float)
+0:?     'v5' (layout(align=16 ) smooth in 4-component vector of float)
+0:?     'v6' (layout(align=16 ) out 4-component vector of float)
+0:?     'v7' (layout(std140 ) uniform 4-component vector of float)
+0:?     'inst7' (layout(column_major shared ) uniform block{layout(column_major shared offset=12 align=4 ) uniform float f})
+0:?     'inst10' (in block{layout(offset=12 ) in float f, layout(align=4 ) in float g})
+0:?     'inst9' (layout(column_major std430 align=32 ) uniform block{layout(column_major std430 align=32 ) uniform float e, layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 offset=20 align=32 ) uniform float g, layout(column_major std430 align=32 ) uniform float h})
+0:?     'inst11' (layout(column_major std430 ) uniform block{layout(column_major std430 offset=12 align=4 ) uniform float f, layout(column_major std430 ) uniform float g})
+0:?     'specExampleErrors' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float c, layout(column_major std140 offset=56 ) uniform double g, layout(column_major std140 offset=72 ) uniform double h})
+0:?     'specExample' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform 4-component vector of float a, layout(column_major std140 offset=32 ) uniform 3-component vector of float b, layout(column_major std140 offset=48 ) uniform 2-component vector of float d, layout(column_major std140 offset=64 align=16 ) uniform float e, layout(column_major std140 offset=72 align=2 ) uniform double f, layout(column_major std140 offset=80 ) uniform float h, layout(column_major std140 offset=128 align=64 ) uniform 3-component vector of double i, layout(column_major std140 offset=168 align=8 ) uniform float j})
+0:?     'specExampleErrors430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float c, layout(column_major std430 offset=56 ) buffer double g, layout(column_major std430 offset=72 ) buffer double h, layout(column_major std430 offset=80 ) buffer double i})
+0:?     'specExample430' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float a, layout(column_major std430 offset=32 ) buffer 3-component vector of float b, layout(column_major std430 offset=48 ) buffer 2-component vector of float d, layout(column_major std430 offset=64 align=16 ) buffer float e, layout(column_major std430 offset=72 align=2 ) buffer double f, layout(column_major std430 offset=80 ) buffer float h, layout(column_major std430 offset=128 align=64 ) buffer 3-component vector of double i, layout(column_major std430 offset=168 align=8 ) buffer float j})
+0:?     'specExample4300' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=384 align=128 ) buffer float e, layout(column_major std430 offset=512 align=128 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:?     'specExample4301' (layout(column_major std430 align=128 ) buffer block{layout(column_major std430 offset=0 align=128 ) buffer 4-component vector of float a, layout(column_major std430 offset=128 align=128 ) buffer 3-component vector of float b, layout(column_major std430 offset=256 align=128 ) buffer 2-component vector of float d, layout(column_major std430 offset=512 align=128 ) buffer float e, layout(column_major std430 offset=520 align=8 ) buffer double f, layout(column_major std430 offset=640 align=128 ) buffer float h, layout(column_major std430 offset=768 align=128 ) buffer 3-component vector of double i})
+0:?     'aconst' (global 4-element array of int)
+0:?     'bconst' (global 64-element array of int)
+0:?     'sampInArray' (smooth sample in 4-element array of 3-component vector of float)
+
diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out
index 48dc67e..9ad3c1b 100644
--- a/Test/baseResults/440.vert.out
+++ b/Test/baseResults/440.vert.out
@@ -1,241 +1,241 @@
-440.vert

-Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:8: 'component' : type overflows the available 4 components 

-ERROR: 0:15: 'component' : component is too large 

-ERROR: 0:23: 'location' : overlapping use of location 4

-ERROR: 0:26: 'location' : overlapping use of location 2

-ERROR: 0:31: 'location' : overlapping use of location 15

-ERROR: 0:32: 'location' : overlapping use of location 10

-ERROR: 0:37: 'location' : overlapping use of location 20

-ERROR: 0:39: 'component' : type overflows the available 4 components 

-ERROR: 0:40: 'component' : type overflows the available 4 components 

-ERROR: 0:42: 'component' : cannot apply to a matrix, structure, or block 

-ERROR: 0:43: 'component' : cannot apply to a matrix, structure, or block 

-ERROR: 0:44: 'component' : cannot apply to a matrix, structure, or block 

-ERROR: 0:46: 'component' : must specify 'location' to use 'component' 

-ERROR: 0:52: 'location' : overlapping use of location 40

-ERROR: 0:54: 'component' : type overflows the available 4 components 

-ERROR: 0:55: 'component' : type overflows the available 4 components 

-ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block 

-ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block 

-ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration 

-ERROR: 0:81: 'xfb layout qualifier' : can only be used on an output 

-ERROR: 0:87: 'xfb_offset' : cannot declare a default, use a full declaration 

-ERROR: 0:97: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) 

-ERROR: 0:102: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) 

-ERROR: 0:102: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3

-ERROR: 0:103: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2

-ERROR: 0:105: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2

-ERROR: 0:108: 'xfb_stride' : all stride settings must match for xfb buffer 15

-ERROR: 0:112: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1

-ERROR: 0:114: 'xfb_stride' : all stride settings must match for xfb buffer 3

-ERROR: 0:115: 'xfb_stride' : all stride settings must match for xfb buffer 3

-ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 3

-ERROR: 0:117: 'xfb_stride' : all stride settings must match for xfb buffer 3

-ERROR: 0:138: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0

-ERROR: 0:143: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4

-ERROR: 0:144: 'xfb_offset' : must be a multiple of size of first component 

-ERROR: 0:145: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 

-ERROR: 0:147: 'xfb_offset' : must be a multiple of size of first component 

-ERROR: 0:148: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 

-ERROR: 0:152: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4

-ERROR: 0:155: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4

-ERROR: 0:155: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64

-ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4

-ERROR: 0:165: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters

-ERROR: 0:165: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters

-ERROR: 0:165: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters

-ERROR: 0:173: 'assign' :  l-value required "gl_BaseVertexARB" (can't modify shader input)

-ERROR: 0:174: 'assign' :  l-value required "gl_BaseInstanceARB" (can't modify shader input)

-ERROR: 0:175: 'assign' :  l-value required "gl_DrawIDARB" (can't modify shader input)

-ERROR: 0:176: 'glBaseInstanceARB' : undeclared identifier 

-ERROR: 49 compilation errors.  No code generated.

-

-

-Shader version: 440

-Requested GL_ARB_shader_draw_parameters

-in xfb mode

-ERROR: node is still EOpNull!

-0:163  Function Definition: drawParamsBad( (global int)

-0:163    Function Parameters: 

-0:165    Sequence

-0:165      Branch: Return with expression

-0:165        add (temp int)

-0:165          add (temp int)

-0:165            'gl_BaseVertexARB' (in int BaseVertex)

-0:165            'gl_BaseInstanceARB' (in int BaseInstance)

-0:165          'gl_DrawIDARB' (in int DrawId)

-0:170  Function Definition: drawParams( (global int)

-0:170    Function Parameters: 

-0:172    Sequence

-0:172      Branch: Return with expression

-0:172        add (temp int)

-0:172          add (temp int)

-0:172            'gl_BaseVertexARB' (in int BaseVertex)

-0:172            'gl_BaseInstanceARB' (in int BaseInstance)

-0:172          'gl_DrawIDARB' (in int DrawId)

-0:173      move second child to first child (temp int)

-0:173        'gl_BaseVertexARB' (in int BaseVertex)

-0:173        Constant:

-0:173          3 (const int)

-0:174      move second child to first child (temp int)

-0:174        'gl_BaseInstanceARB' (in int BaseInstance)

-0:174        Constant:

-0:174          3 (const int)

-0:175      move second child to first child (temp int)

-0:175        'gl_DrawIDARB' (in int DrawId)

-0:175        Constant:

-0:175          3 (const int)

-0:176      'glBaseInstanceARB' (temp float)

-0:?   Linker Objects

-0:?     'a' (layout(location=2 component=2 ) in 2-component vector of float)

-0:?     'b' (layout(location=2 component=1 ) in float)

-0:?     'c' (layout(location=3 component=2 ) in 3-component vector of float)

-0:?     'd' (layout(location=0 component=3 ) in 4-element array of float)

-0:?     'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)

-0:?     'f' (layout(location=4 component=3 ) in 5-element array of float)

-0:?     'g' (layout(location=9 ) in 6-element array of float)

-0:?     'h' (layout(location=4 component=2 ) in 2-component vector of float)

-0:?     'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)

-0:?     'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)

-0:?     'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)

-0:?     'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)

-0:?     'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)

-0:?     'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)

-0:?     'q' (layout(location=10 component=3 ) smooth out 6-element array of float)

-0:?     'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)

-0:?     's' (layout(location=15 component=3 ) smooth out float)

-0:?     't' (layout(location=10 component=1 ) smooth out float)

-0:?     'u' (layout(location=20 component=2 ) smooth out float)

-0:?     'v' (layout(location=20 component=0 ) smooth out float)

-0:?     'w' (layout(location=20 component=3 ) smooth out float)

-0:?     'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)

-0:?     'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)

-0:?     'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)

-0:?     'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)

-0:?     'Ss' (layout(location=33 component=1 ) smooth out structure{global int a})

-0:?     'bb' (layout(location=34 component=1 ) out block{out int a})

-0:?     'bc' (layout(location=4095 component=1 ) smooth out float)

-0:?     'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})

-0:?     'be' (layout(location=50 component=3 ) smooth out int)

-0:?     'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)

-0:?     'bbinst1' (out block{out 4-component vector of float bbv})

-0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})

-0:?     'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})

-0:?     'ubbinst3' (layout(column_major shared ) uniform block{layout(column_major shared xfb_offset=16 ) uniform 4-component vector of float bbv})

-0:?     'bg' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bh' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)

-0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})

-0:?     'bbinst5' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2, out 4-component vector of float bbv3})

-0:?     'bbinst6' (out block{layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) out 4-component vector of float bbv2, layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout(xfb_buffer=2 xfb_offset=24 ) out float bbf6})

-0:?     'bj' (layout(xfb_buffer=1 xfb_offset=4 ) smooth out float)

-0:?     'bk' (layout(xfb_buffer=1 xfb_offset=0 ) smooth out 2-component vector of int)

-0:?     'bl' (layout(xfb_stride=48 ) smooth out float)

-0:?     'bbinst7' (layout(xfb_stride=48 ) out block{layout(xfb_stride=64 ) out 4-component vector of float bbv1, layout(xfb_stride=32 ) out 4-component vector of float bbv2})

-0:?     'bbinst8' (layout(xfb_stride=92 ) out block{layout(xfb_buffer=0 xfb_offset=0 ) out bool b, layout(xfb_buffer=0 xfb_offset=8 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=0 xfb_offset=48 ) out int i, layout(xfb_buffer=0 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=0 xfb_offset=88 ) out float f, layout(xfb_buffer=0 xfb_offset=92 ) out float g})

-0:?     'bbinst9' (out block{layout(xfb_buffer=4 xfb_offset=1 ) out bool b, layout(xfb_buffer=4 xfb_offset=12 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=4 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=4 xfb_offset=90 ) out int i, layout(xfb_buffer=4 xfb_offset=98 ) out double d, layout(xfb_buffer=4 xfb_offset=108 ) out structure{global int a} s})

-0:?     'bm' (layout(xfb_buffer=5 xfb_offset=0 ) smooth out float)

-0:?     'bbinst10' (out block{layout(xfb_buffer=7 xfb_offset=0 ) out 4X4 matrix of double m1, layout(xfb_buffer=7 xfb_offset=128 ) out 4X4 matrix of double m2, layout(xfb_buffer=7 xfb_offset=256 ) out float f})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point

-ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:

-ERROR:     xfb_buffer 0, xfb_stride 92, minimum stride needed: 96

-ERROR: Linking vertex stage: xfb_stride must be multiple of 8 for buffer holding a double:

-ERROR:     xfb_buffer 0, xfb_stride 92

-ERROR: Linking vertex stage: xfb_stride must be multiple of 4:

-ERROR:     xfb_buffer 5, xfb_stride 6

-ERROR: Linking vertex stage: xfb_stride is too large:

-ERROR:     xfb_buffer 7, components (1/4 stride) needed are 66, gl_MaxTransformFeedbackInterleavedComponents is 64

-

-Shader version: 440

-Requested GL_ARB_shader_draw_parameters

-in xfb mode

-ERROR: node is still EOpNull!

-0:163  Function Definition: drawParamsBad( (global int)

-0:163    Function Parameters: 

-0:165    Sequence

-0:165      Branch: Return with expression

-0:165        add (temp int)

-0:165          add (temp int)

-0:165            'gl_BaseVertexARB' (in int BaseVertex)

-0:165            'gl_BaseInstanceARB' (in int BaseInstance)

-0:165          'gl_DrawIDARB' (in int DrawId)

-0:170  Function Definition: drawParams( (global int)

-0:170    Function Parameters: 

-0:172    Sequence

-0:172      Branch: Return with expression

-0:172        add (temp int)

-0:172          add (temp int)

-0:172            'gl_BaseVertexARB' (in int BaseVertex)

-0:172            'gl_BaseInstanceARB' (in int BaseInstance)

-0:172          'gl_DrawIDARB' (in int DrawId)

-0:173      move second child to first child (temp int)

-0:173        'gl_BaseVertexARB' (in int BaseVertex)

-0:173        Constant:

-0:173          3 (const int)

-0:174      move second child to first child (temp int)

-0:174        'gl_BaseInstanceARB' (in int BaseInstance)

-0:174        Constant:

-0:174          3 (const int)

-0:175      move second child to first child (temp int)

-0:175        'gl_DrawIDARB' (in int DrawId)

-0:175        Constant:

-0:175          3 (const int)

-0:176      'glBaseInstanceARB' (temp float)

-0:?   Linker Objects

-0:?     'a' (layout(location=2 component=2 ) in 2-component vector of float)

-0:?     'b' (layout(location=2 component=1 ) in float)

-0:?     'c' (layout(location=3 component=2 ) in 3-component vector of float)

-0:?     'd' (layout(location=0 component=3 ) in 4-element array of float)

-0:?     'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)

-0:?     'f' (layout(location=4 component=3 ) in 5-element array of float)

-0:?     'g' (layout(location=9 ) in 6-element array of float)

-0:?     'h' (layout(location=4 component=2 ) in 2-component vector of float)

-0:?     'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)

-0:?     'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)

-0:?     'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)

-0:?     'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)

-0:?     'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)

-0:?     'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)

-0:?     'q' (layout(location=10 component=3 ) smooth out 6-element array of float)

-0:?     'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)

-0:?     's' (layout(location=15 component=3 ) smooth out float)

-0:?     't' (layout(location=10 component=1 ) smooth out float)

-0:?     'u' (layout(location=20 component=2 ) smooth out float)

-0:?     'v' (layout(location=20 component=0 ) smooth out float)

-0:?     'w' (layout(location=20 component=3 ) smooth out float)

-0:?     'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)

-0:?     'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)

-0:?     'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)

-0:?     'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)

-0:?     'Ss' (layout(location=33 component=1 ) smooth out structure{global int a})

-0:?     'bb' (layout(location=34 component=1 ) out block{out int a})

-0:?     'bc' (layout(location=4095 component=1 ) smooth out float)

-0:?     'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})

-0:?     'be' (layout(location=50 component=3 ) smooth out int)

-0:?     'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)

-0:?     'bbinst1' (out block{out 4-component vector of float bbv})

-0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})

-0:?     'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})

-0:?     'ubbinst3' (layout(column_major shared ) uniform block{layout(column_major shared xfb_offset=16 ) uniform 4-component vector of float bbv})

-0:?     'bg' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)

-0:?     'bh' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)

-0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})

-0:?     'bbinst5' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2, out 4-component vector of float bbv3})

-0:?     'bbinst6' (out block{layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) out 4-component vector of float bbv2, layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout(xfb_buffer=2 xfb_offset=24 ) out float bbf6})

-0:?     'bj' (layout(xfb_buffer=1 xfb_offset=4 ) smooth out float)

-0:?     'bk' (layout(xfb_buffer=1 xfb_offset=0 ) smooth out 2-component vector of int)

-0:?     'bl' (layout(xfb_stride=48 ) smooth out float)

-0:?     'bbinst7' (layout(xfb_stride=48 ) out block{layout(xfb_stride=64 ) out 4-component vector of float bbv1, layout(xfb_stride=32 ) out 4-component vector of float bbv2})

-0:?     'bbinst8' (layout(xfb_stride=92 ) out block{layout(xfb_buffer=0 xfb_offset=0 ) out bool b, layout(xfb_buffer=0 xfb_offset=8 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=0 xfb_offset=48 ) out int i, layout(xfb_buffer=0 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=0 xfb_offset=88 ) out float f, layout(xfb_buffer=0 xfb_offset=92 ) out float g})

-0:?     'bbinst9' (out block{layout(xfb_buffer=4 xfb_offset=1 ) out bool b, layout(xfb_buffer=4 xfb_offset=12 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=4 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=4 xfb_offset=90 ) out int i, layout(xfb_buffer=4 xfb_offset=98 ) out double d, layout(xfb_buffer=4 xfb_offset=108 ) out structure{global int a} s})

-0:?     'bm' (layout(xfb_buffer=5 xfb_offset=0 ) smooth out float)

-0:?     'bbinst10' (out block{layout(xfb_buffer=7 xfb_offset=0 ) out 4X4 matrix of double m1, layout(xfb_buffer=7 xfb_offset=128 ) out 4X4 matrix of double m2, layout(xfb_buffer=7 xfb_offset=256 ) out float f})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+440.vert
+Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:8: 'component' : type overflows the available 4 components 
+ERROR: 0:15: 'component' : component is too large 
+ERROR: 0:23: 'location' : overlapping use of location 4
+ERROR: 0:26: 'location' : overlapping use of location 2
+ERROR: 0:31: 'location' : overlapping use of location 15
+ERROR: 0:32: 'location' : overlapping use of location 10
+ERROR: 0:37: 'location' : overlapping use of location 20
+ERROR: 0:39: 'component' : type overflows the available 4 components 
+ERROR: 0:40: 'component' : type overflows the available 4 components 
+ERROR: 0:42: 'component' : cannot apply to a matrix, structure, or block 
+ERROR: 0:43: 'component' : cannot apply to a matrix, structure, or block 
+ERROR: 0:44: 'component' : cannot apply to a matrix, structure, or block 
+ERROR: 0:46: 'component' : must specify 'location' to use 'component' 
+ERROR: 0:52: 'location' : overlapping use of location 40
+ERROR: 0:54: 'component' : type overflows the available 4 components 
+ERROR: 0:55: 'component' : type overflows the available 4 components 
+ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block 
+ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block 
+ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration 
+ERROR: 0:81: 'xfb layout qualifier' : can only be used on an output 
+ERROR: 0:87: 'xfb_offset' : cannot declare a default, use a full declaration 
+ERROR: 0:97: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) 
+ERROR: 0:102: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) 
+ERROR: 0:102: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3
+ERROR: 0:103: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2
+ERROR: 0:105: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2
+ERROR: 0:108: 'xfb_stride' : all stride settings must match for xfb buffer 15
+ERROR: 0:112: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1
+ERROR: 0:114: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:115: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:117: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:138: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0
+ERROR: 0:143: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:144: 'xfb_offset' : must be a multiple of size of first component 
+ERROR: 0:145: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 
+ERROR: 0:147: 'xfb_offset' : must be a multiple of size of first component 
+ERROR: 0:148: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 
+ERROR: 0:152: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:155: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:155: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64
+ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:165: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:165: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:165: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:173: 'assign' :  l-value required "gl_BaseVertexARB" (can't modify shader input)
+ERROR: 0:174: 'assign' :  l-value required "gl_BaseInstanceARB" (can't modify shader input)
+ERROR: 0:175: 'assign' :  l-value required "gl_DrawIDARB" (can't modify shader input)
+ERROR: 0:176: 'glBaseInstanceARB' : undeclared identifier 
+ERROR: 49 compilation errors.  No code generated.
+
+
+Shader version: 440
+Requested GL_ARB_shader_draw_parameters
+in xfb mode
+ERROR: node is still EOpNull!
+0:163  Function Definition: drawParamsBad( (global int)
+0:163    Function Parameters: 
+0:165    Sequence
+0:165      Branch: Return with expression
+0:165        add (temp int)
+0:165          add (temp int)
+0:165            'gl_BaseVertexARB' (in int BaseVertex)
+0:165            'gl_BaseInstanceARB' (in int BaseInstance)
+0:165          'gl_DrawIDARB' (in int DrawId)
+0:170  Function Definition: drawParams( (global int)
+0:170    Function Parameters: 
+0:172    Sequence
+0:172      Branch: Return with expression
+0:172        add (temp int)
+0:172          add (temp int)
+0:172            'gl_BaseVertexARB' (in int BaseVertex)
+0:172            'gl_BaseInstanceARB' (in int BaseInstance)
+0:172          'gl_DrawIDARB' (in int DrawId)
+0:173      move second child to first child (temp int)
+0:173        'gl_BaseVertexARB' (in int BaseVertex)
+0:173        Constant:
+0:173          3 (const int)
+0:174      move second child to first child (temp int)
+0:174        'gl_BaseInstanceARB' (in int BaseInstance)
+0:174        Constant:
+0:174          3 (const int)
+0:175      move second child to first child (temp int)
+0:175        'gl_DrawIDARB' (in int DrawId)
+0:175        Constant:
+0:175          3 (const int)
+0:176      'glBaseInstanceARB' (temp float)
+0:?   Linker Objects
+0:?     'a' (layout(location=2 component=2 ) in 2-component vector of float)
+0:?     'b' (layout(location=2 component=1 ) in float)
+0:?     'c' (layout(location=3 component=2 ) in 3-component vector of float)
+0:?     'd' (layout(location=0 component=3 ) in 4-element array of float)
+0:?     'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)
+0:?     'f' (layout(location=4 component=3 ) in 5-element array of float)
+0:?     'g' (layout(location=9 ) in 6-element array of float)
+0:?     'h' (layout(location=4 component=2 ) in 2-component vector of float)
+0:?     'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)
+0:?     'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)
+0:?     'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:?     'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:?     'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)
+0:?     'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)
+0:?     'q' (layout(location=10 component=3 ) smooth out 6-element array of float)
+0:?     'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)
+0:?     's' (layout(location=15 component=3 ) smooth out float)
+0:?     't' (layout(location=10 component=1 ) smooth out float)
+0:?     'u' (layout(location=20 component=2 ) smooth out float)
+0:?     'v' (layout(location=20 component=0 ) smooth out float)
+0:?     'w' (layout(location=20 component=3 ) smooth out float)
+0:?     'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)
+0:?     'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)
+0:?     'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)
+0:?     'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)
+0:?     'Ss' (layout(location=33 component=1 ) smooth out structure{global int a})
+0:?     'bb' (layout(location=34 component=1 ) out block{out int a})
+0:?     'bc' (layout(location=4095 component=1 ) smooth out float)
+0:?     'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
+0:?     'be' (layout(location=50 component=3 ) smooth out int)
+0:?     'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
+0:?     'bbinst1' (out block{out 4-component vector of float bbv})
+0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:?     'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
+0:?     'ubbinst3' (layout(column_major shared ) uniform block{layout(column_major shared xfb_offset=16 ) uniform 4-component vector of float bbv})
+0:?     'bg' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bh' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:?     'bbinst5' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2, out 4-component vector of float bbv3})
+0:?     'bbinst6' (out block{layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) out 4-component vector of float bbv2, layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout(xfb_buffer=2 xfb_offset=24 ) out float bbf6})
+0:?     'bj' (layout(xfb_buffer=1 xfb_offset=4 ) smooth out float)
+0:?     'bk' (layout(xfb_buffer=1 xfb_offset=0 ) smooth out 2-component vector of int)
+0:?     'bl' (layout(xfb_stride=48 ) smooth out float)
+0:?     'bbinst7' (layout(xfb_stride=48 ) out block{layout(xfb_stride=64 ) out 4-component vector of float bbv1, layout(xfb_stride=32 ) out 4-component vector of float bbv2})
+0:?     'bbinst8' (layout(xfb_stride=92 ) out block{layout(xfb_buffer=0 xfb_offset=0 ) out bool b, layout(xfb_buffer=0 xfb_offset=8 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=0 xfb_offset=48 ) out int i, layout(xfb_buffer=0 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=0 xfb_offset=88 ) out float f, layout(xfb_buffer=0 xfb_offset=92 ) out float g})
+0:?     'bbinst9' (out block{layout(xfb_buffer=4 xfb_offset=1 ) out bool b, layout(xfb_buffer=4 xfb_offset=12 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=4 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=4 xfb_offset=90 ) out int i, layout(xfb_buffer=4 xfb_offset=98 ) out double d, layout(xfb_buffer=4 xfb_offset=108 ) out structure{global int a} s})
+0:?     'bm' (layout(xfb_buffer=5 xfb_offset=0 ) smooth out float)
+0:?     'bbinst10' (out block{layout(xfb_buffer=7 xfb_offset=0 ) out 4X4 matrix of double m1, layout(xfb_buffer=7 xfb_offset=128 ) out 4X4 matrix of double m2, layout(xfb_buffer=7 xfb_offset=256 ) out float f})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries:
+ERROR:     xfb_buffer 0, xfb_stride 92, minimum stride needed: 96
+ERROR: Linking vertex stage: xfb_stride must be multiple of 8 for buffer holding a double:
+ERROR:     xfb_buffer 0, xfb_stride 92
+ERROR: Linking vertex stage: xfb_stride must be multiple of 4:
+ERROR:     xfb_buffer 5, xfb_stride 6
+ERROR: Linking vertex stage: xfb_stride is too large:
+ERROR:     xfb_buffer 7, components (1/4 stride) needed are 66, gl_MaxTransformFeedbackInterleavedComponents is 64
+
+Shader version: 440
+Requested GL_ARB_shader_draw_parameters
+in xfb mode
+ERROR: node is still EOpNull!
+0:163  Function Definition: drawParamsBad( (global int)
+0:163    Function Parameters: 
+0:165    Sequence
+0:165      Branch: Return with expression
+0:165        add (temp int)
+0:165          add (temp int)
+0:165            'gl_BaseVertexARB' (in int BaseVertex)
+0:165            'gl_BaseInstanceARB' (in int BaseInstance)
+0:165          'gl_DrawIDARB' (in int DrawId)
+0:170  Function Definition: drawParams( (global int)
+0:170    Function Parameters: 
+0:172    Sequence
+0:172      Branch: Return with expression
+0:172        add (temp int)
+0:172          add (temp int)
+0:172            'gl_BaseVertexARB' (in int BaseVertex)
+0:172            'gl_BaseInstanceARB' (in int BaseInstance)
+0:172          'gl_DrawIDARB' (in int DrawId)
+0:173      move second child to first child (temp int)
+0:173        'gl_BaseVertexARB' (in int BaseVertex)
+0:173        Constant:
+0:173          3 (const int)
+0:174      move second child to first child (temp int)
+0:174        'gl_BaseInstanceARB' (in int BaseInstance)
+0:174        Constant:
+0:174          3 (const int)
+0:175      move second child to first child (temp int)
+0:175        'gl_DrawIDARB' (in int DrawId)
+0:175        Constant:
+0:175          3 (const int)
+0:176      'glBaseInstanceARB' (temp float)
+0:?   Linker Objects
+0:?     'a' (layout(location=2 component=2 ) in 2-component vector of float)
+0:?     'b' (layout(location=2 component=1 ) in float)
+0:?     'c' (layout(location=3 component=2 ) in 3-component vector of float)
+0:?     'd' (layout(location=0 component=3 ) in 4-element array of float)
+0:?     'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)
+0:?     'f' (layout(location=4 component=3 ) in 5-element array of float)
+0:?     'g' (layout(location=9 ) in 6-element array of float)
+0:?     'h' (layout(location=4 component=2 ) in 2-component vector of float)
+0:?     'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)
+0:?     'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)
+0:?     'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:?     'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)
+0:?     'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)
+0:?     'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)
+0:?     'q' (layout(location=10 component=3 ) smooth out 6-element array of float)
+0:?     'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)
+0:?     's' (layout(location=15 component=3 ) smooth out float)
+0:?     't' (layout(location=10 component=1 ) smooth out float)
+0:?     'u' (layout(location=20 component=2 ) smooth out float)
+0:?     'v' (layout(location=20 component=0 ) smooth out float)
+0:?     'w' (layout(location=20 component=3 ) smooth out float)
+0:?     'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)
+0:?     'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)
+0:?     'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)
+0:?     'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)
+0:?     'Ss' (layout(location=33 component=1 ) smooth out structure{global int a})
+0:?     'bb' (layout(location=34 component=1 ) out block{out int a})
+0:?     'bc' (layout(location=4095 component=1 ) smooth out float)
+0:?     'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
+0:?     'be' (layout(location=50 component=3 ) smooth out int)
+0:?     'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
+0:?     'bbinst1' (out block{out 4-component vector of float bbv})
+0:?     'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
+0:?     'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
+0:?     'ubbinst3' (layout(column_major shared ) uniform block{layout(column_major shared xfb_offset=16 ) uniform 4-component vector of float bbv})
+0:?     'bg' (layout(xfb_buffer=2 xfb_offset=48 xfb_stride=80 ) smooth out 4-component vector of float)
+0:?     'bh' (layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) smooth out 4-component vector of float)
+0:?     'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=2 xfb_offset=16 ) out 4-component vector of float bbv1, layout(xfb_buffer=2 xfb_offset=32 ) out 4-component vector of float bbv2})
+0:?     'bbinst5' (out block{layout(xfb_buffer=3 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=48 xfb_stride=64 ) out 4-component vector of float bbv2, out 4-component vector of float bbv3})
+0:?     'bbinst6' (out block{layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=3 xfb_offset=32 xfb_stride=64 ) out 4-component vector of float bbv2, layout(xfb_buffer=2 xfb_offset=0 ) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout(xfb_buffer=2 xfb_offset=24 ) out float bbf6})
+0:?     'bj' (layout(xfb_buffer=1 xfb_offset=4 ) smooth out float)
+0:?     'bk' (layout(xfb_buffer=1 xfb_offset=0 ) smooth out 2-component vector of int)
+0:?     'bl' (layout(xfb_stride=48 ) smooth out float)
+0:?     'bbinst7' (layout(xfb_stride=48 ) out block{layout(xfb_stride=64 ) out 4-component vector of float bbv1, layout(xfb_stride=32 ) out 4-component vector of float bbv2})
+0:?     'bbinst8' (layout(xfb_stride=92 ) out block{layout(xfb_buffer=0 xfb_offset=0 ) out bool b, layout(xfb_buffer=0 xfb_offset=8 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=0 xfb_offset=48 ) out int i, layout(xfb_buffer=0 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=0 xfb_offset=88 ) out float f, layout(xfb_buffer=0 xfb_offset=92 ) out float g})
+0:?     'bbinst9' (out block{layout(xfb_buffer=4 xfb_offset=1 ) out bool b, layout(xfb_buffer=4 xfb_offset=12 ) out structure{global bool b, global structure{global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout(xfb_buffer=4 xfb_offset=52 ) out 3X3 matrix of float m3, layout(xfb_buffer=4 xfb_offset=90 ) out int i, layout(xfb_buffer=4 xfb_offset=98 ) out double d, layout(xfb_buffer=4 xfb_offset=108 ) out structure{global int a} s})
+0:?     'bm' (layout(xfb_buffer=5 xfb_offset=0 ) smooth out float)
+0:?     'bbinst10' (out block{layout(xfb_buffer=7 xfb_offset=0 ) out 4X4 matrix of double m1, layout(xfb_buffer=7 xfb_offset=128 ) out 4X4 matrix of double m2, layout(xfb_buffer=7 xfb_offset=256 ) out float f})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/450.comp.out b/Test/baseResults/450.comp.out
index 67ec647..d5d1eca 100644
--- a/Test/baseResults/450.comp.out
+++ b/Test/baseResults/450.comp.out
@@ -1,18 +1,18 @@
-450.comp

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 450

-local_size = (1, 1, 1)

-0:? Sequence

-0:?   Linker Objects

-

-

-Linked compute stage:

-

-ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point

-

-Shader version: 450

-local_size = (1, 1, 1)

-0:? Sequence

-0:?   Linker Objects

-

+450.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:?   Linker Objects
+
+
+Linked compute stage:
+
+ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:?   Linker Objects
+
diff --git a/Test/baseResults/450.frag.out b/Test/baseResults/450.frag.out
index 09a4163..5d7035f 100644
--- a/Test/baseResults/450.frag.out
+++ b/Test/baseResults/450.frag.out
@@ -1,287 +1,287 @@
-450.frag

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 450

-0:? Sequence

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:10    Sequence

-0:10      Sequence

-0:10        move second child to first child (temp 2-component vector of float)

-0:10          'v2' (temp 2-component vector of float)

-0:10          dPdxFine (global 2-component vector of float)

-0:10            'in2' (smooth in 2-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp 3-component vector of float)

-0:11          'v3' (temp 3-component vector of float)

-0:11          dPdyCoarse (global 3-component vector of float)

-0:11            'in3' (smooth in 3-component vector of float)

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'v4' (temp 4-component vector of float)

-0:12          fwidth (global 4-component vector of float)

-0:12            'in4' (smooth in 4-component vector of float)

-0:13      move second child to first child (temp 4-component vector of float)

-0:13        'v4' (temp 4-component vector of float)

-0:13        dPdyFine (global 4-component vector of float)

-0:13          'in4' (smooth in 4-component vector of float)

-0:14      move second child to first child (temp 3-component vector of float)

-0:14        'v3' (temp 3-component vector of float)

-0:14        dPdyFine (global 3-component vector of float)

-0:14          'in3' (smooth in 3-component vector of float)

-0:15      Sequence

-0:15        move second child to first child (temp float)

-0:15          'f' (temp float)

-0:15          add (temp float)

-0:15            add (temp float)

-0:15              dPdx (global float)

-0:15                'in1' (smooth in float)

-0:15              dPdxFine (global float)

-0:15                'in1' (smooth in float)

-0:15            dPdxCoarse (global float)

-0:15              'in1' (smooth in float)

-0:16      move second child to first child (temp 4-component vector of float)

-0:16        'v4' (temp 4-component vector of float)

-0:16        add (temp 4-component vector of float)

-0:16          fwidthCoarse (global 4-component vector of float)

-0:16            'in4' (smooth in 4-component vector of float)

-0:16          fwidthFine (global 4-component vector of float)

-0:16            'in4' (smooth in 4-component vector of float)

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'cull' (temp float)

-0:18          direct index (smooth temp float CullDistance)

-0:18            'gl_CullDistance' (smooth in implicitly-sized array of float CullDistance)

-0:18            Constant:

-0:18              2 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'consts' (temp float)

-0:19          Constant:

-0:19            20.000000

-0:21      Test condition and select (temp void)

-0:21        Condition

-0:21        'gl_HelperInvocation' (in bool HelperInvocation)

-0:21        true case

-0:22        Pre-Increment (temp 4-component vector of float)

-0:22          'v4' (temp 4-component vector of float)

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'sum' (temp int)

-0:24          Constant:

-0:24            32 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp 2-component vector of bool)

-0:32          'b2' (temp 2-component vector of bool)

-0:32          mix (global 2-component vector of bool)

-0:32            Construct bvec2 (temp 2-component vector of bool)

-0:32              'b1' (temp bool)

-0:32            Construct bvec2 (temp 2-component vector of bool)

-0:32              'b3' (temp bool)

-0:32            Construct bvec2 (temp 2-component vector of bool)

-0:32              'b' (temp bool)

-0:33      Sequence

-0:33        move second child to first child (temp uint)

-0:33          'um' (temp uint)

-0:33          mix (global uint)

-0:33            'uin' (temp uint)

-0:33            'uin' (temp uint)

-0:33            'b' (temp bool)

-0:34      Sequence

-0:34        move second child to first child (temp 3-component vector of int)

-0:34          'im3' (temp 3-component vector of int)

-0:34          mix (global 3-component vector of int)

-0:34            Construct ivec3 (temp 3-component vector of int)

-0:34              Convert uint to int (temp int)

-0:34                'uin' (temp uint)

-0:34            Construct ivec3 (temp 3-component vector of int)

-0:34              Convert uint to int (temp int)

-0:34                'uin' (temp uint)

-0:34            Construct bvec3 (temp 3-component vector of bool)

-0:34              'b' (temp bool)

-0:42  Function Definition: foo( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      Sequence

-0:44        move second child to first child (temp int)

-0:44          's' (temp int)

-0:44          textureSamples (global int)

-0:44            's2dms' (uniform sampler2DMS)

-0:45      add second child into first child (temp int)

-0:45        's' (temp int)

-0:45        textureSamples (global int)

-0:45          'us2dmsa' (uniform usampler2DMSArray)

-0:46      add second child into first child (temp int)

-0:46        's' (temp int)

-0:46        imageQuerySamples (global int)

-0:46          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:47      add second child into first child (temp int)

-0:47        's' (temp int)

-0:47        imageQuerySamples (global int)

-0:47          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:48      Sequence

-0:48        move second child to first child (temp float)

-0:48          'f' (temp float)

-0:48          imageAtomicExchange (global float)

-0:48            'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:48            Convert float to int (temp 3-component vector of int)

-0:48              'in3' (smooth in 3-component vector of float)

-0:48            Constant:

-0:48              2 (const int)

-0:48            Constant:

-0:48              4.500000

-0:?   Linker Objects

-0:?     'in1' (smooth in float)

-0:?     'in2' (smooth in 2-component vector of float)

-0:?     'in3' (smooth in 3-component vector of float)

-0:?     'in4' (smooth in 4-component vector of float)

-0:?     'gl_CullDistance' (smooth in implicitly-sized array of float CullDistance)

-0:?     's2dms' (uniform sampler2DMS)

-0:?     'us2dmsa' (uniform usampler2DMSArray)

-0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-

-

-Linked fragment stage:

-

-

-Shader version: 450

-0:? Sequence

-0:8  Function Definition: main( (global void)

-0:8    Function Parameters: 

-0:10    Sequence

-0:10      Sequence

-0:10        move second child to first child (temp 2-component vector of float)

-0:10          'v2' (temp 2-component vector of float)

-0:10          dPdxFine (global 2-component vector of float)

-0:10            'in2' (smooth in 2-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp 3-component vector of float)

-0:11          'v3' (temp 3-component vector of float)

-0:11          dPdyCoarse (global 3-component vector of float)

-0:11            'in3' (smooth in 3-component vector of float)

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'v4' (temp 4-component vector of float)

-0:12          fwidth (global 4-component vector of float)

-0:12            'in4' (smooth in 4-component vector of float)

-0:13      move second child to first child (temp 4-component vector of float)

-0:13        'v4' (temp 4-component vector of float)

-0:13        dPdyFine (global 4-component vector of float)

-0:13          'in4' (smooth in 4-component vector of float)

-0:14      move second child to first child (temp 3-component vector of float)

-0:14        'v3' (temp 3-component vector of float)

-0:14        dPdyFine (global 3-component vector of float)

-0:14          'in3' (smooth in 3-component vector of float)

-0:15      Sequence

-0:15        move second child to first child (temp float)

-0:15          'f' (temp float)

-0:15          add (temp float)

-0:15            add (temp float)

-0:15              dPdx (global float)

-0:15                'in1' (smooth in float)

-0:15              dPdxFine (global float)

-0:15                'in1' (smooth in float)

-0:15            dPdxCoarse (global float)

-0:15              'in1' (smooth in float)

-0:16      move second child to first child (temp 4-component vector of float)

-0:16        'v4' (temp 4-component vector of float)

-0:16        add (temp 4-component vector of float)

-0:16          fwidthCoarse (global 4-component vector of float)

-0:16            'in4' (smooth in 4-component vector of float)

-0:16          fwidthFine (global 4-component vector of float)

-0:16            'in4' (smooth in 4-component vector of float)

-0:18      Sequence

-0:18        move second child to first child (temp float)

-0:18          'cull' (temp float)

-0:18          direct index (smooth temp float CullDistance)

-0:18            'gl_CullDistance' (smooth in 3-element array of float CullDistance)

-0:18            Constant:

-0:18              2 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'consts' (temp float)

-0:19          Constant:

-0:19            20.000000

-0:21      Test condition and select (temp void)

-0:21        Condition

-0:21        'gl_HelperInvocation' (in bool HelperInvocation)

-0:21        true case

-0:22        Pre-Increment (temp 4-component vector of float)

-0:22          'v4' (temp 4-component vector of float)

-0:24      Sequence

-0:24        move second child to first child (temp int)

-0:24          'sum' (temp int)

-0:24          Constant:

-0:24            32 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp 2-component vector of bool)

-0:32          'b2' (temp 2-component vector of bool)

-0:32          mix (global 2-component vector of bool)

-0:32            Construct bvec2 (temp 2-component vector of bool)

-0:32              'b1' (temp bool)

-0:32            Construct bvec2 (temp 2-component vector of bool)

-0:32              'b3' (temp bool)

-0:32            Construct bvec2 (temp 2-component vector of bool)

-0:32              'b' (temp bool)

-0:33      Sequence

-0:33        move second child to first child (temp uint)

-0:33          'um' (temp uint)

-0:33          mix (global uint)

-0:33            'uin' (temp uint)

-0:33            'uin' (temp uint)

-0:33            'b' (temp bool)

-0:34      Sequence

-0:34        move second child to first child (temp 3-component vector of int)

-0:34          'im3' (temp 3-component vector of int)

-0:34          mix (global 3-component vector of int)

-0:34            Construct ivec3 (temp 3-component vector of int)

-0:34              Convert uint to int (temp int)

-0:34                'uin' (temp uint)

-0:34            Construct ivec3 (temp 3-component vector of int)

-0:34              Convert uint to int (temp int)

-0:34                'uin' (temp uint)

-0:34            Construct bvec3 (temp 3-component vector of bool)

-0:34              'b' (temp bool)

-0:42  Function Definition: foo( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      Sequence

-0:44        move second child to first child (temp int)

-0:44          's' (temp int)

-0:44          textureSamples (global int)

-0:44            's2dms' (uniform sampler2DMS)

-0:45      add second child into first child (temp int)

-0:45        's' (temp int)

-0:45        textureSamples (global int)

-0:45          'us2dmsa' (uniform usampler2DMSArray)

-0:46      add second child into first child (temp int)

-0:46        's' (temp int)

-0:46        imageQuerySamples (global int)

-0:46          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:47      add second child into first child (temp int)

-0:47        's' (temp int)

-0:47        imageQuerySamples (global int)

-0:47          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:48      Sequence

-0:48        move second child to first child (temp float)

-0:48          'f' (temp float)

-0:48          imageAtomicExchange (global float)

-0:48            'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-0:48            Convert float to int (temp 3-component vector of int)

-0:48              'in3' (smooth in 3-component vector of float)

-0:48            Constant:

-0:48              2 (const int)

-0:48            Constant:

-0:48              4.500000

-0:?   Linker Objects

-0:?     'in1' (smooth in float)

-0:?     'in2' (smooth in 2-component vector of float)

-0:?     'in3' (smooth in 3-component vector of float)

-0:?     'in4' (smooth in 4-component vector of float)

-0:?     'gl_CullDistance' (smooth in 3-element array of float CullDistance)

-0:?     's2dms' (uniform sampler2DMS)

-0:?     'us2dmsa' (uniform usampler2DMSArray)

-0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)

-0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)

-

+450.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+0:? Sequence
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:10    Sequence
+0:10      Sequence
+0:10        move second child to first child (temp 2-component vector of float)
+0:10          'v2' (temp 2-component vector of float)
+0:10          dPdxFine (global 2-component vector of float)
+0:10            'in2' (smooth in 2-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp 3-component vector of float)
+0:11          'v3' (temp 3-component vector of float)
+0:11          dPdyCoarse (global 3-component vector of float)
+0:11            'in3' (smooth in 3-component vector of float)
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'v4' (temp 4-component vector of float)
+0:12          fwidth (global 4-component vector of float)
+0:12            'in4' (smooth in 4-component vector of float)
+0:13      move second child to first child (temp 4-component vector of float)
+0:13        'v4' (temp 4-component vector of float)
+0:13        dPdyFine (global 4-component vector of float)
+0:13          'in4' (smooth in 4-component vector of float)
+0:14      move second child to first child (temp 3-component vector of float)
+0:14        'v3' (temp 3-component vector of float)
+0:14        dPdyFine (global 3-component vector of float)
+0:14          'in3' (smooth in 3-component vector of float)
+0:15      Sequence
+0:15        move second child to first child (temp float)
+0:15          'f' (temp float)
+0:15          add (temp float)
+0:15            add (temp float)
+0:15              dPdx (global float)
+0:15                'in1' (smooth in float)
+0:15              dPdxFine (global float)
+0:15                'in1' (smooth in float)
+0:15            dPdxCoarse (global float)
+0:15              'in1' (smooth in float)
+0:16      move second child to first child (temp 4-component vector of float)
+0:16        'v4' (temp 4-component vector of float)
+0:16        add (temp 4-component vector of float)
+0:16          fwidthCoarse (global 4-component vector of float)
+0:16            'in4' (smooth in 4-component vector of float)
+0:16          fwidthFine (global 4-component vector of float)
+0:16            'in4' (smooth in 4-component vector of float)
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'cull' (temp float)
+0:18          direct index (smooth temp float CullDistance)
+0:18            'gl_CullDistance' (smooth in implicitly-sized array of float CullDistance)
+0:18            Constant:
+0:18              2 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'consts' (temp float)
+0:19          Constant:
+0:19            20.000000
+0:21      Test condition and select (temp void)
+0:21        Condition
+0:21        'gl_HelperInvocation' (in bool HelperInvocation)
+0:21        true case
+0:22        Pre-Increment (temp 4-component vector of float)
+0:22          'v4' (temp 4-component vector of float)
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'sum' (temp int)
+0:24          Constant:
+0:24            32 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp 2-component vector of bool)
+0:32          'b2' (temp 2-component vector of bool)
+0:32          mix (global 2-component vector of bool)
+0:32            Construct bvec2 (temp 2-component vector of bool)
+0:32              'b1' (temp bool)
+0:32            Construct bvec2 (temp 2-component vector of bool)
+0:32              'b3' (temp bool)
+0:32            Construct bvec2 (temp 2-component vector of bool)
+0:32              'b' (temp bool)
+0:33      Sequence
+0:33        move second child to first child (temp uint)
+0:33          'um' (temp uint)
+0:33          mix (global uint)
+0:33            'uin' (temp uint)
+0:33            'uin' (temp uint)
+0:33            'b' (temp bool)
+0:34      Sequence
+0:34        move second child to first child (temp 3-component vector of int)
+0:34          'im3' (temp 3-component vector of int)
+0:34          mix (global 3-component vector of int)
+0:34            Construct ivec3 (temp 3-component vector of int)
+0:34              Convert uint to int (temp int)
+0:34                'uin' (temp uint)
+0:34            Construct ivec3 (temp 3-component vector of int)
+0:34              Convert uint to int (temp int)
+0:34                'uin' (temp uint)
+0:34            Construct bvec3 (temp 3-component vector of bool)
+0:34              'b' (temp bool)
+0:42  Function Definition: foo( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      Sequence
+0:44        move second child to first child (temp int)
+0:44          's' (temp int)
+0:44          textureSamples (global int)
+0:44            's2dms' (uniform sampler2DMS)
+0:45      add second child into first child (temp int)
+0:45        's' (temp int)
+0:45        textureSamples (global int)
+0:45          'us2dmsa' (uniform usampler2DMSArray)
+0:46      add second child into first child (temp int)
+0:46        's' (temp int)
+0:46        imageQuerySamples (global int)
+0:46          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:47      add second child into first child (temp int)
+0:47        's' (temp int)
+0:47        imageQuerySamples (global int)
+0:47          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48      Sequence
+0:48        move second child to first child (temp float)
+0:48          'f' (temp float)
+0:48          imageAtomicExchange (global float)
+0:48            'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48            Convert float to int (temp 3-component vector of int)
+0:48              'in3' (smooth in 3-component vector of float)
+0:48            Constant:
+0:48              2 (const int)
+0:48            Constant:
+0:48              4.500000
+0:?   Linker Objects
+0:?     'in1' (smooth in float)
+0:?     'in2' (smooth in 2-component vector of float)
+0:?     'in3' (smooth in 3-component vector of float)
+0:?     'in4' (smooth in 4-component vector of float)
+0:?     'gl_CullDistance' (smooth in implicitly-sized array of float CullDistance)
+0:?     's2dms' (uniform sampler2DMS)
+0:?     'us2dmsa' (uniform usampler2DMSArray)
+0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+0:? Sequence
+0:8  Function Definition: main( (global void)
+0:8    Function Parameters: 
+0:10    Sequence
+0:10      Sequence
+0:10        move second child to first child (temp 2-component vector of float)
+0:10          'v2' (temp 2-component vector of float)
+0:10          dPdxFine (global 2-component vector of float)
+0:10            'in2' (smooth in 2-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp 3-component vector of float)
+0:11          'v3' (temp 3-component vector of float)
+0:11          dPdyCoarse (global 3-component vector of float)
+0:11            'in3' (smooth in 3-component vector of float)
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'v4' (temp 4-component vector of float)
+0:12          fwidth (global 4-component vector of float)
+0:12            'in4' (smooth in 4-component vector of float)
+0:13      move second child to first child (temp 4-component vector of float)
+0:13        'v4' (temp 4-component vector of float)
+0:13        dPdyFine (global 4-component vector of float)
+0:13          'in4' (smooth in 4-component vector of float)
+0:14      move second child to first child (temp 3-component vector of float)
+0:14        'v3' (temp 3-component vector of float)
+0:14        dPdyFine (global 3-component vector of float)
+0:14          'in3' (smooth in 3-component vector of float)
+0:15      Sequence
+0:15        move second child to first child (temp float)
+0:15          'f' (temp float)
+0:15          add (temp float)
+0:15            add (temp float)
+0:15              dPdx (global float)
+0:15                'in1' (smooth in float)
+0:15              dPdxFine (global float)
+0:15                'in1' (smooth in float)
+0:15            dPdxCoarse (global float)
+0:15              'in1' (smooth in float)
+0:16      move second child to first child (temp 4-component vector of float)
+0:16        'v4' (temp 4-component vector of float)
+0:16        add (temp 4-component vector of float)
+0:16          fwidthCoarse (global 4-component vector of float)
+0:16            'in4' (smooth in 4-component vector of float)
+0:16          fwidthFine (global 4-component vector of float)
+0:16            'in4' (smooth in 4-component vector of float)
+0:18      Sequence
+0:18        move second child to first child (temp float)
+0:18          'cull' (temp float)
+0:18          direct index (smooth temp float CullDistance)
+0:18            'gl_CullDistance' (smooth in 3-element array of float CullDistance)
+0:18            Constant:
+0:18              2 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'consts' (temp float)
+0:19          Constant:
+0:19            20.000000
+0:21      Test condition and select (temp void)
+0:21        Condition
+0:21        'gl_HelperInvocation' (in bool HelperInvocation)
+0:21        true case
+0:22        Pre-Increment (temp 4-component vector of float)
+0:22          'v4' (temp 4-component vector of float)
+0:24      Sequence
+0:24        move second child to first child (temp int)
+0:24          'sum' (temp int)
+0:24          Constant:
+0:24            32 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp 2-component vector of bool)
+0:32          'b2' (temp 2-component vector of bool)
+0:32          mix (global 2-component vector of bool)
+0:32            Construct bvec2 (temp 2-component vector of bool)
+0:32              'b1' (temp bool)
+0:32            Construct bvec2 (temp 2-component vector of bool)
+0:32              'b3' (temp bool)
+0:32            Construct bvec2 (temp 2-component vector of bool)
+0:32              'b' (temp bool)
+0:33      Sequence
+0:33        move second child to first child (temp uint)
+0:33          'um' (temp uint)
+0:33          mix (global uint)
+0:33            'uin' (temp uint)
+0:33            'uin' (temp uint)
+0:33            'b' (temp bool)
+0:34      Sequence
+0:34        move second child to first child (temp 3-component vector of int)
+0:34          'im3' (temp 3-component vector of int)
+0:34          mix (global 3-component vector of int)
+0:34            Construct ivec3 (temp 3-component vector of int)
+0:34              Convert uint to int (temp int)
+0:34                'uin' (temp uint)
+0:34            Construct ivec3 (temp 3-component vector of int)
+0:34              Convert uint to int (temp int)
+0:34                'uin' (temp uint)
+0:34            Construct bvec3 (temp 3-component vector of bool)
+0:34              'b' (temp bool)
+0:42  Function Definition: foo( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      Sequence
+0:44        move second child to first child (temp int)
+0:44          's' (temp int)
+0:44          textureSamples (global int)
+0:44            's2dms' (uniform sampler2DMS)
+0:45      add second child into first child (temp int)
+0:45        's' (temp int)
+0:45        textureSamples (global int)
+0:45          'us2dmsa' (uniform usampler2DMSArray)
+0:46      add second child into first child (temp int)
+0:46        's' (temp int)
+0:46        imageQuerySamples (global int)
+0:46          'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:47      add second child into first child (temp int)
+0:47        's' (temp int)
+0:47        imageQuerySamples (global int)
+0:47          'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48      Sequence
+0:48        move second child to first child (temp float)
+0:48          'f' (temp float)
+0:48          imageAtomicExchange (global float)
+0:48            'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+0:48            Convert float to int (temp 3-component vector of int)
+0:48              'in3' (smooth in 3-component vector of float)
+0:48            Constant:
+0:48              2 (const int)
+0:48            Constant:
+0:48              4.500000
+0:?   Linker Objects
+0:?     'in1' (smooth in float)
+0:?     'in2' (smooth in 2-component vector of float)
+0:?     'in3' (smooth in 3-component vector of float)
+0:?     'in4' (smooth in 4-component vector of float)
+0:?     'gl_CullDistance' (smooth in 3-element array of float CullDistance)
+0:?     's2dms' (uniform sampler2DMS)
+0:?     'us2dmsa' (uniform usampler2DMSArray)
+0:?     'ii2dms' (layout(rgba32i ) uniform iimage2DMS)
+0:?     'i2dmsa' (layout(rgba32f ) uniform image2DMSArray)
+
diff --git a/Test/baseResults/450.geom.out b/Test/baseResults/450.geom.out
index b54f58d..d39c099 100644
--- a/Test/baseResults/450.geom.out
+++ b/Test/baseResults/450.geom.out
@@ -1,72 +1,72 @@
-450.geom

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 450

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = none

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      move second child to first child (temp float)

-0:13        direct index (layout(stream=0 ) temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float CullDistance)

-0:13            'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float CullDistance gl_CullDistance})

-0:13            Constant:

-0:13              3 (const uint)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)

-0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              Constant:

-0:13                1 (const int)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:?   Linker Objects

-0:?     'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float CullDistance gl_CullDistance})

-

-

-Linked geometry stage:

-

-ERROR: Linking geometry stage: At least one shader must specify an input layout primitive

-ERROR: Linking geometry stage: At least one shader must specify an output layout primitive

-ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

-

-Shader version: 450

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = none

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      move second child to first child (temp float)

-0:13        direct index (layout(stream=0 ) temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance)

-0:13            'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})

-0:13            Constant:

-0:13              3 (const uint)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)

-0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})

-0:13              'gl_in' (in 2-element array of block{in 1-element array of float CullDistance gl_CullDistance})

-0:13              Constant:

-0:13                1 (const int)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:?   Linker Objects

-0:?     'gl_in' (in 2-element array of block{in 1-element array of float CullDistance gl_CullDistance})

-0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})

-

+450.geom
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = none
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      move second child to first child (temp float)
+0:13        direct index (layout(stream=0 ) temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float CullDistance)
+0:13            'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float CullDistance gl_CullDistance})
+0:13            Constant:
+0:13              3 (const uint)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
+0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              Constant:
+0:13                1 (const int)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:?   Linker Objects
+0:?     'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float CullDistance gl_CullDistance})
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
+ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Shader version: 450
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = none
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      move second child to first child (temp float)
+0:13        direct index (layout(stream=0 ) temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance)
+0:13            'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
+0:13            Constant:
+0:13              3 (const uint)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
+0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 2-element array of block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              Constant:
+0:13                1 (const int)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:?   Linker Objects
+0:?     'gl_in' (in 2-element array of block{in 1-element array of float CullDistance gl_CullDistance})
+0:?     'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float CullDistance gl_CullDistance})
+
diff --git a/Test/baseResults/450.tesc.out b/Test/baseResults/450.tesc.out
index 26d9307..8f8c2a4 100644
--- a/Test/baseResults/450.tesc.out
+++ b/Test/baseResults/450.tesc.out
@@ -1,68 +1,68 @@
-450.tesc

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 450

-vertices = 0

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      move second child to first child (temp float)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)

-0:13            indirect index (temp block{out implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              'gl_out' (out 4-element array of block{out implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              'gl_InvocationID' (in int InvocationID)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)

-0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              Constant:

-0:13                1 (const int)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:?   Linker Objects

-0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:?     'gl_out' (out 4-element array of block{out implicitly-sized array of float CullDistance gl_CullDistance})

-

-

-Linked tessellation control stage:

-

-ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)

-

-Shader version: 450

-vertices = 0

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      move second child to first child (temp float)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (out 1-element array of float CullDistance)

-0:13            indirect index (temp block{out 1-element array of float CullDistance gl_CullDistance})

-0:13              'gl_out' (out 4-element array of block{out 1-element array of float CullDistance gl_CullDistance})

-0:13              'gl_InvocationID' (in int InvocationID)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)

-0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})

-0:13              'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})

-0:13              Constant:

-0:13                1 (const int)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:?   Linker Objects

-0:?     'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})

-0:?     'gl_out' (out 4-element array of block{out 1-element array of float CullDistance gl_CullDistance})

-

+450.tesc
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+vertices = 0
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      move second child to first child (temp float)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)
+0:13            indirect index (temp block{out implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_out' (out 4-element array of block{out implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_InvocationID' (in int InvocationID)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
+0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              Constant:
+0:13                1 (const int)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:?   Linker Objects
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:?     'gl_out' (out 4-element array of block{out implicitly-sized array of float CullDistance gl_CullDistance})
+
+
+Linked tessellation control stage:
+
+ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
+
+Shader version: 450
+vertices = 0
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      move second child to first child (temp float)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (out 1-element array of float CullDistance)
+0:13            indirect index (temp block{out 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_out' (out 4-element array of block{out 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_InvocationID' (in int InvocationID)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
+0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              Constant:
+0:13                1 (const int)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:?   Linker Objects
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
+0:?     'gl_out' (out 4-element array of block{out 1-element array of float CullDistance gl_CullDistance})
+
diff --git a/Test/baseResults/450.tese.out b/Test/baseResults/450.tese.out
index 04f58b3..c6e97b8 100644
--- a/Test/baseResults/450.tese.out
+++ b/Test/baseResults/450.tese.out
@@ -1,68 +1,68 @@
-450.tese

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 450

-input primitive = none

-vertex spacing = none

-triangle order = none

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      move second child to first child (temp float)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)

-0:13            'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})

-0:13            Constant:

-0:13              3 (const uint)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)

-0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:13              Constant:

-0:13                1 (const int)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:?   Linker Objects

-0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})

-0:?     'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})

-

-

-Linked tessellation evaluation stage:

-

-ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive

-

-Shader version: 450

-input primitive = none

-vertex spacing = equal_spacing

-triangle order = ccw

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      move second child to first child (temp float)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)

-0:13            'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})

-0:13            Constant:

-0:13              3 (const uint)

-0:13          Constant:

-0:13            2 (const int)

-0:13        direct index (temp float CullDistance)

-0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)

-0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})

-0:13              'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})

-0:13              Constant:

-0:13                1 (const int)

-0:13            Constant:

-0:13              0 (const int)

-0:13          Constant:

-0:13            2 (const int)

-0:?   Linker Objects

-0:?     'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})

-0:?     'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})

-

+450.tese
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 450
+input primitive = none
+vertex spacing = none
+triangle order = none
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      move second child to first child (temp float)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)
+0:13            'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
+0:13            Constant:
+0:13              3 (const uint)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in implicitly-sized array of float CullDistance)
+0:13            direct index (temp block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:13              Constant:
+0:13                1 (const int)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:?   Linker Objects
+0:?     'gl_in' (in 32-element array of block{in implicitly-sized array of float CullDistance gl_CullDistance})
+0:?     'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
+
+
+Linked tessellation evaluation stage:
+
+ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive
+
+Shader version: 450
+input primitive = none
+vertex spacing = equal_spacing
+triangle order = ccw
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      move second child to first child (temp float)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:13            'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:13            Constant:
+0:13              3 (const uint)
+0:13          Constant:
+0:13            2 (const int)
+0:13        direct index (temp float CullDistance)
+0:13          gl_CullDistance: direct index for structure (in 1-element array of float CullDistance)
+0:13            direct index (temp block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
+0:13              Constant:
+0:13                1 (const int)
+0:13            Constant:
+0:13              0 (const int)
+0:13          Constant:
+0:13            2 (const int)
+0:?   Linker Objects
+0:?     'gl_in' (in 32-element array of block{in 1-element array of float CullDistance gl_CullDistance})
+0:?     'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+
diff --git a/Test/baseResults/450.vert.out b/Test/baseResults/450.vert.out
index 44aff42..39cce38 100644
--- a/Test/baseResults/450.vert.out
+++ b/Test/baseResults/450.vert.out
@@ -1,69 +1,69 @@
-450.vert

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:12: 'out' : cannot be bool 

-ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 450

-ERROR: node is still EOpNull!

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      move second child to first child (temp float)

-0:9        direct index (temp float CullDistance)

-0:9          gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)

-0:9            'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})

-0:9            Constant:

-0:9              10 (const uint)

-0:9          Constant:

-0:9            2 (const int)

-0:9        Constant:

-0:9          4.500000

-0:?   Linker Objects

-0:?     'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})

-0:?     'outb' (smooth out bool)

-0:?     'outo' (smooth out sampler2D)

-0:?     'outa' (smooth out 4-element array of float)

-0:?     'outaa' (smooth out 4-element array of 2-element array of float)

-0:?     'outs' (smooth out structure{global float f})

-0:?     'outasa' (smooth out 4-element array of structure{global float f})

-0:?     'outsa' (smooth out 4-element array of structure{global float f})

-0:?     'outSA' (smooth out structure{global 4-element array of float f})

-0:?     'outSS' (smooth out structure{global float f, global structure{global float f} s})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 450

-ERROR: node is still EOpNull!

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      move second child to first child (temp float)

-0:9        direct index (temp float CullDistance)

-0:9          gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)

-0:9            'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})

-0:9            Constant:

-0:9              10 (const uint)

-0:9          Constant:

-0:9            2 (const int)

-0:9        Constant:

-0:9          4.500000

-0:?   Linker Objects

-0:?     'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})

-0:?     'outb' (smooth out bool)

-0:?     'outo' (smooth out sampler2D)

-0:?     'outa' (smooth out 4-element array of float)

-0:?     'outaa' (smooth out 4-element array of 2-element array of float)

-0:?     'outs' (smooth out structure{global float f})

-0:?     'outasa' (smooth out 4-element array of structure{global float f})

-0:?     'outsa' (smooth out 4-element array of structure{global float f})

-0:?     'outSA' (smooth out structure{global 4-element array of float f})

-0:?     'outSS' (smooth out structure{global float f, global structure{global float f} s})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+450.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:12: 'out' : cannot be bool 
+ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      move second child to first child (temp float)
+0:9        direct index (temp float CullDistance)
+0:9          gl_CullDistance: direct index for structure (out implicitly-sized array of float CullDistance)
+0:9            'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
+0:9            Constant:
+0:9              10 (const uint)
+0:9          Constant:
+0:9            2 (const int)
+0:9        Constant:
+0:9          4.500000
+0:?   Linker Objects
+0:?     'anon@0' (out block{out implicitly-sized array of float CullDistance gl_CullDistance})
+0:?     'outb' (smooth out bool)
+0:?     'outo' (smooth out sampler2D)
+0:?     'outa' (smooth out 4-element array of float)
+0:?     'outaa' (smooth out 4-element array of 2-element array of float)
+0:?     'outs' (smooth out structure{global float f})
+0:?     'outasa' (smooth out 4-element array of structure{global float f})
+0:?     'outsa' (smooth out 4-element array of structure{global float f})
+0:?     'outSA' (smooth out structure{global 4-element array of float f})
+0:?     'outSS' (smooth out structure{global float f, global structure{global float f} s})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+ERROR: node is still EOpNull!
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      move second child to first child (temp float)
+0:9        direct index (temp float CullDistance)
+0:9          gl_CullDistance: direct index for structure (out 3-element array of float CullDistance)
+0:9            'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:9            Constant:
+0:9              10 (const uint)
+0:9          Constant:
+0:9            2 (const int)
+0:9        Constant:
+0:9          4.500000
+0:?   Linker Objects
+0:?     'anon@0' (out block{out 3-element array of float CullDistance gl_CullDistance})
+0:?     'outb' (smooth out bool)
+0:?     'outo' (smooth out sampler2D)
+0:?     'outa' (smooth out 4-element array of float)
+0:?     'outaa' (smooth out 4-element array of 2-element array of float)
+0:?     'outs' (smooth out structure{global float f})
+0:?     'outasa' (smooth out 4-element array of structure{global float f})
+0:?     'outsa' (smooth out 4-element array of structure{global float f})
+0:?     'outSA' (smooth out structure{global 4-element array of float f})
+0:?     'outSS' (smooth out structure{global float f, global structure{global float f} s})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/Operations.frag.out b/Test/baseResults/Operations.frag.out
index ce6a78f..4bf1969 100644
--- a/Test/baseResults/Operations.frag.out
+++ b/Test/baseResults/Operations.frag.out
@@ -1,871 +1,871 @@
-Operations.frag

-Shader version: 130

-0:? Sequence

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:?     Sequence

-0:27      move second child to first child (temp 4-component vector of float)

-0:27        'v' (temp 4-component vector of float)

-0:27        radians (global 4-component vector of float)

-0:27          'uv4' (uniform 4-component vector of float)

-0:28      add second child into first child (temp 4-component vector of float)

-0:28        'v' (temp 4-component vector of float)

-0:28        degrees (global 4-component vector of float)

-0:28          'v' (temp 4-component vector of float)

-0:29      add second child into first child (temp 4-component vector of float)

-0:29        'v' (temp 4-component vector of float)

-0:29        Comma (temp 4-component vector of float)

-0:29          move second child to first child (temp int)

-0:29            'i' (temp int)

-0:29            component-wise multiply (temp int)

-0:29              'ui' (uniform int)

-0:29              'ui' (uniform int)

-0:29          sine (global 4-component vector of float)

-0:29            'v' (temp 4-component vector of float)

-0:30      add second child into first child (temp 4-component vector of float)

-0:30        'v' (temp 4-component vector of float)

-0:30        cosine (global 4-component vector of float)

-0:30          'v' (temp 4-component vector of float)

-0:31      add second child into first child (temp 4-component vector of float)

-0:31        'v' (temp 4-component vector of float)

-0:31        tangent (global 4-component vector of float)

-0:31          'v' (temp 4-component vector of float)

-0:32      add second child into first child (temp 4-component vector of float)

-0:32        'v' (temp 4-component vector of float)

-0:32        arc sine (global 4-component vector of float)

-0:32          'v' (temp 4-component vector of float)

-0:33      add second child into first child (temp 4-component vector of float)

-0:33        'v' (temp 4-component vector of float)

-0:33        arc cosine (global 4-component vector of float)

-0:33          'v' (temp 4-component vector of float)

-0:35      add second child into first child (temp 4-component vector of float)

-0:35        'v' (temp 4-component vector of float)

-0:35        arc tangent (global 4-component vector of float)

-0:35          'v' (temp 4-component vector of float)

-0:36      add second child into first child (temp 4-component vector of float)

-0:36        'v' (temp 4-component vector of float)

-0:36        hyp. sine (global 4-component vector of float)

-0:36          'v' (temp 4-component vector of float)

-0:37      add second child into first child (temp 4-component vector of float)

-0:37        'v' (temp 4-component vector of float)

-0:37        hyp. cosine (global 4-component vector of float)

-0:37          'v' (temp 4-component vector of float)

-0:38      add second child into first child (temp 4-component vector of float)

-0:38        'v' (temp 4-component vector of float)

-0:38        hyp. tangent (global 4-component vector of float)

-0:38          'v' (temp 4-component vector of float)

-0:39      add second child into first child (temp 4-component vector of float)

-0:39        'v' (temp 4-component vector of float)

-0:39        arc hyp. sine (global 4-component vector of float)

-0:39          'v' (temp 4-component vector of float)

-0:40      add second child into first child (temp 4-component vector of float)

-0:40        'v' (temp 4-component vector of float)

-0:40        arc hyp. cosine (global 4-component vector of float)

-0:40          'v' (temp 4-component vector of float)

-0:41      add second child into first child (temp 4-component vector of float)

-0:41        'v' (temp 4-component vector of float)

-0:41        arc hyp. tangent (global 4-component vector of float)

-0:41          'v' (temp 4-component vector of float)

-0:43      add second child into first child (temp 4-component vector of float)

-0:43        'v' (temp 4-component vector of float)

-0:43        pow (global 4-component vector of float)

-0:43          'v' (temp 4-component vector of float)

-0:43          'v' (temp 4-component vector of float)

-0:44      add second child into first child (temp 4-component vector of float)

-0:44        'v' (temp 4-component vector of float)

-0:44        exp (global 4-component vector of float)

-0:44          'v' (temp 4-component vector of float)

-0:45      add second child into first child (temp 4-component vector of float)

-0:45        'v' (temp 4-component vector of float)

-0:45        log (global 4-component vector of float)

-0:45          'v' (temp 4-component vector of float)

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'v' (temp 4-component vector of float)

-0:46        exp2 (global 4-component vector of float)

-0:46          'v' (temp 4-component vector of float)

-0:47      add second child into first child (temp 4-component vector of float)

-0:47        'v' (temp 4-component vector of float)

-0:47        log2 (global 4-component vector of float)

-0:47          'v' (temp 4-component vector of float)

-0:48      add second child into first child (temp 4-component vector of float)

-0:48        'v' (temp 4-component vector of float)

-0:48        sqrt (global 4-component vector of float)

-0:48          'v' (temp 4-component vector of float)

-0:49      add second child into first child (temp 4-component vector of float)

-0:49        'v' (temp 4-component vector of float)

-0:49        inverse sqrt (global 4-component vector of float)

-0:49          'v' (temp 4-component vector of float)

-0:50      add second child into first child (temp 4-component vector of float)

-0:50        'v' (temp 4-component vector of float)

-0:50        Absolute value (global 4-component vector of float)

-0:50          'v' (temp 4-component vector of float)

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'v' (temp 4-component vector of float)

-0:51        Sign (global 4-component vector of float)

-0:51          'v' (temp 4-component vector of float)

-0:52      add second child into first child (temp 4-component vector of float)

-0:52        'v' (temp 4-component vector of float)

-0:52        Floor (global 4-component vector of float)

-0:52          'v' (temp 4-component vector of float)

-0:60      add second child into first child (temp 4-component vector of float)

-0:60        'v' (temp 4-component vector of float)

-0:60        Ceiling (global 4-component vector of float)

-0:60          'v' (temp 4-component vector of float)

-0:61      add second child into first child (temp 4-component vector of float)

-0:61        'v' (temp 4-component vector of float)

-0:61        Fraction (global 4-component vector of float)

-0:61          'v' (temp 4-component vector of float)

-0:62      add second child into first child (temp 4-component vector of float)

-0:62        'v' (temp 4-component vector of float)

-0:62        mod (global 4-component vector of float)

-0:62          'v' (temp 4-component vector of float)

-0:62          'v' (temp 4-component vector of float)

-0:63      add second child into first child (temp 4-component vector of float)

-0:63        'v' (temp 4-component vector of float)

-0:63        mod (global 4-component vector of float)

-0:63          'v' (temp 4-component vector of float)

-0:63          direct index (temp float)

-0:63            'v' (temp 4-component vector of float)

-0:63            Constant:

-0:63              0 (const int)

-0:69      add second child into first child (temp 4-component vector of float)

-0:69        'v' (temp 4-component vector of float)

-0:69        min (global 4-component vector of float)

-0:69          'v' (temp 4-component vector of float)

-0:69          'uv4' (uniform 4-component vector of float)

-0:70      add second child into first child (temp 4-component vector of float)

-0:70        'v' (temp 4-component vector of float)

-0:70        max (global 4-component vector of float)

-0:70          'v' (temp 4-component vector of float)

-0:70          'uv4' (uniform 4-component vector of float)

-0:71      add second child into first child (temp 4-component vector of float)

-0:71        'v' (temp 4-component vector of float)

-0:71        clamp (global 4-component vector of float)

-0:71          'v' (temp 4-component vector of float)

-0:71          'uv4' (uniform 4-component vector of float)

-0:71          'uv4' (uniform 4-component vector of float)

-0:72      add second child into first child (temp 4-component vector of float)

-0:72        'v' (temp 4-component vector of float)

-0:72        mix (global 4-component vector of float)

-0:72          'v' (temp 4-component vector of float)

-0:72          'v' (temp 4-component vector of float)

-0:72          'v' (temp 4-component vector of float)

-0:86      add second child into first child (temp 4-component vector of float)

-0:86        'v' (temp 4-component vector of float)

-0:86        step (global 4-component vector of float)

-0:86          'v' (temp 4-component vector of float)

-0:86          'v' (temp 4-component vector of float)

-0:87      add second child into first child (temp 4-component vector of float)

-0:87        'v' (temp 4-component vector of float)

-0:87        smoothstep (global 4-component vector of float)

-0:87          'v' (temp 4-component vector of float)

-0:87          'v' (temp 4-component vector of float)

-0:87          'v' (temp 4-component vector of float)

-0:88      add second child into first child (temp 4-component vector of float)

-0:88        'v' (temp 4-component vector of float)

-0:88        step (global 4-component vector of float)

-0:88          'uf' (uniform float)

-0:88          'v' (temp 4-component vector of float)

-0:89      add second child into first child (temp 4-component vector of float)

-0:89        'v' (temp 4-component vector of float)

-0:89        smoothstep (global 4-component vector of float)

-0:89          'uf' (uniform float)

-0:89          'uf' (uniform float)

-0:89          'v' (temp 4-component vector of float)

-0:90      add second child into first child (temp 4-component vector of float)

-0:90        'v' (temp 4-component vector of float)

-0:90        normalize (global 4-component vector of float)

-0:90          'v' (temp 4-component vector of float)

-0:91      add second child into first child (temp 4-component vector of float)

-0:91        'v' (temp 4-component vector of float)

-0:91        face-forward (global 4-component vector of float)

-0:91          'v' (temp 4-component vector of float)

-0:91          'v' (temp 4-component vector of float)

-0:91          'v' (temp 4-component vector of float)

-0:92      add second child into first child (temp 4-component vector of float)

-0:92        'v' (temp 4-component vector of float)

-0:92        reflect (global 4-component vector of float)

-0:92          'v' (temp 4-component vector of float)

-0:92          'v' (temp 4-component vector of float)

-0:93      add second child into first child (temp 4-component vector of float)

-0:93        'v' (temp 4-component vector of float)

-0:93        refract (global 4-component vector of float)

-0:93          'v' (temp 4-component vector of float)

-0:93          'v' (temp 4-component vector of float)

-0:93          'uf' (uniform float)

-0:94      add second child into first child (temp 4-component vector of float)

-0:94        'v' (temp 4-component vector of float)

-0:94        dPdx (global 4-component vector of float)

-0:94          'v' (temp 4-component vector of float)

-0:95      add second child into first child (temp 4-component vector of float)

-0:95        'v' (temp 4-component vector of float)

-0:95        dPdy (global 4-component vector of float)

-0:95          'v' (temp 4-component vector of float)

-0:96      add second child into first child (temp 4-component vector of float)

-0:96        'v' (temp 4-component vector of float)

-0:96        fwidth (global 4-component vector of float)

-0:96          'v' (temp 4-component vector of float)

-0:130      move second child to first child (temp bool)

-0:130        'b' (temp bool)

-0:130        any (global bool)

-0:130          Compare Less Than (global 4-component vector of bool)

-0:130            'v' (temp 4-component vector of float)

-0:130            'uv4' (uniform 4-component vector of float)

-0:131      move second child to first child (temp bool)

-0:131        'b' (temp bool)

-0:131        logical-and (temp bool)

-0:131          'b' (temp bool)

-0:131          any (global bool)

-0:131            Compare Less Than or Equal (global 4-component vector of bool)

-0:131              'v' (temp 4-component vector of float)

-0:131              'uv4' (uniform 4-component vector of float)

-0:132      move second child to first child (temp bool)

-0:132        'b' (temp bool)

-0:132        logical-and (temp bool)

-0:132          'b' (temp bool)

-0:132          any (global bool)

-0:132            Compare Greater Than (global 4-component vector of bool)

-0:132              'v' (temp 4-component vector of float)

-0:132              'uv4' (uniform 4-component vector of float)

-0:133      move second child to first child (temp bool)

-0:133        'b' (temp bool)

-0:133        logical-and (temp bool)

-0:133          'b' (temp bool)

-0:133          any (global bool)

-0:133            Compare Greater Than or Equal (global 4-component vector of bool)

-0:133              'v' (temp 4-component vector of float)

-0:133              'uv4' (uniform 4-component vector of float)

-0:134      move second child to first child (temp bool)

-0:134        'b' (temp bool)

-0:134        logical-and (temp bool)

-0:134          'b' (temp bool)

-0:134          any (global bool)

-0:134            Equal (global 4-component vector of bool)

-0:134              'ub41' (uniform 4-component vector of bool)

-0:134              'ub42' (uniform 4-component vector of bool)

-0:135      move second child to first child (temp bool)

-0:135        'b' (temp bool)

-0:135        logical-and (temp bool)

-0:135          'b' (temp bool)

-0:135          any (global bool)

-0:135            NotEqual (global 4-component vector of bool)

-0:135              'ub41' (uniform 4-component vector of bool)

-0:135              'ub42' (uniform 4-component vector of bool)

-0:136      move second child to first child (temp bool)

-0:136        'b' (temp bool)

-0:136        logical-and (temp bool)

-0:136          'b' (temp bool)

-0:136          any (global bool)

-0:136            'ub41' (uniform 4-component vector of bool)

-0:137      move second child to first child (temp bool)

-0:137        'b' (temp bool)

-0:137        logical-and (temp bool)

-0:137          'b' (temp bool)

-0:137          all (global bool)

-0:137            'ub41' (uniform 4-component vector of bool)

-0:138      move second child to first child (temp bool)

-0:138        'b' (temp bool)

-0:138        logical-and (temp bool)

-0:138          'b' (temp bool)

-0:138          any (global bool)

-0:138            Negate conditional (global 4-component vector of bool)

-0:138              'ub41' (uniform 4-component vector of bool)

-0:140      move second child to first child (temp int)

-0:140        'i' (temp int)

-0:140        divide (temp int)

-0:140          subtract (temp int)

-0:140            component-wise multiply (temp int)

-0:140              add (temp int)

-0:140                'i' (temp int)

-0:140                'ui' (uniform int)

-0:140              'i' (temp int)

-0:140            'ui' (uniform int)

-0:140          'i' (temp int)

-0:141      move second child to first child (temp int)

-0:141        'i' (temp int)

-0:141        mod (temp int)

-0:141          'i' (temp int)

-0:141          'ui' (uniform int)

-0:142      Test condition and select (temp void)

-0:142        Condition

-0:142        logical-or (temp bool)

-0:142          Compare Equal (temp bool)

-0:142            'i' (temp int)

-0:142            'ui' (uniform int)

-0:142          logical-xor (temp bool)

-0:142            logical-and (temp bool)

-0:142              Compare Not Equal (temp bool)

-0:142                'i' (temp int)

-0:142                'ui' (uniform int)

-0:142              Compare Equal (temp bool)

-0:142                'i' (temp int)

-0:142                'ui' (uniform int)

-0:142            Compare Not Equal (temp bool)

-0:142              'i' (temp int)

-0:142              Constant:

-0:142                2 (const int)

-0:142        true case

-0:143        Pre-Increment (temp int)

-0:143          'i' (temp int)

-0:145      move second child to first child (temp float)

-0:145        'f' (temp float)

-0:145        divide (temp float)

-0:145          subtract (temp float)

-0:145            component-wise multiply (temp float)

-0:145              add (temp float)

-0:145                'uf' (uniform float)

-0:145                'uf' (uniform float)

-0:145              'uf' (uniform float)

-0:145            'uf' (uniform float)

-0:145          'uf' (uniform float)

-0:147      add second child into first child (temp float)

-0:147        'f' (temp float)

-0:147        length (global float)

-0:147          'v' (temp 4-component vector of float)

-0:148      add second child into first child (temp float)

-0:148        'f' (temp float)

-0:148        distance (global float)

-0:148          'v' (temp 4-component vector of float)

-0:148          'v' (temp 4-component vector of float)

-0:149      add second child into first child (temp float)

-0:149        'f' (temp float)

-0:149        dot-product (global float)

-0:149          'v' (temp 4-component vector of float)

-0:149          'v' (temp 4-component vector of float)

-0:150      add second child into first child (temp float)

-0:150        'f' (temp float)

-0:150        dot-product (global float)

-0:150          'f' (temp float)

-0:150          'uf' (uniform float)

-0:151      add second child into first child (temp float)

-0:151        'f' (temp float)

-0:151        direct index (temp float)

-0:151          cross-product (global 3-component vector of float)

-0:151            vector swizzle (temp 3-component vector of float)

-0:151              'v' (temp 4-component vector of float)

-0:151              Sequence

-0:151                Constant:

-0:151                  0 (const int)

-0:151                Constant:

-0:151                  1 (const int)

-0:151                Constant:

-0:151                  2 (const int)

-0:151            vector swizzle (temp 3-component vector of float)

-0:151              'v' (temp 4-component vector of float)

-0:151              Sequence

-0:151                Constant:

-0:151                  0 (const int)

-0:151                Constant:

-0:151                  1 (const int)

-0:151                Constant:

-0:151                  2 (const int)

-0:151          Constant:

-0:151            0 (const int)

-0:153      Test condition and select (temp void)

-0:153        Condition

-0:153        logical-or (temp bool)

-0:153          Compare Equal (temp bool)

-0:153            'f' (temp float)

-0:153            'uf' (uniform float)

-0:153          logical-and (temp bool)

-0:153            Compare Not Equal (temp bool)

-0:153              'f' (temp float)

-0:153              'uf' (uniform float)

-0:153            Compare Not Equal (temp bool)

-0:153              'f' (temp float)

-0:153              Constant:

-0:153                2.000000

-0:153        true case

-0:154        Pre-Increment (temp float)

-0:154          'f' (temp float)

-0:156      and second child into first child (temp int)

-0:156        'i' (temp int)

-0:156        'ui' (uniform int)

-0:157      or second child into first child (temp int)

-0:157        'i' (temp int)

-0:157        Constant:

-0:157          66 (const int)

-0:158      exclusive or second child into first child (temp int)

-0:158        'i' (temp int)

-0:158        'ui' (uniform int)

-0:159      mod second child into first child (temp int)

-0:159        'i' (temp int)

-0:159        Constant:

-0:159          17 (const int)

-0:160      right shift second child into first child (temp int)

-0:160        'i' (temp int)

-0:160        Constant:

-0:160          2 (const int)

-0:161      left shift second child into first child (temp int)

-0:161        'i' (temp int)

-0:161        'ui' (uniform int)

-0:162      move second child to first child (temp int)

-0:162        'i' (temp int)

-0:162        Bitwise not (temp int)

-0:162          'i' (temp int)

-0:163      move second child to first child (temp bool)

-0:163        'b' (temp bool)

-0:163        Negate conditional (temp bool)

-0:163          'b' (temp bool)

-0:165      move second child to first child (temp 4-component vector of float)

-0:165        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:165        Test condition and select (temp 4-component vector of float)

-0:165          Condition

-0:165          'b' (temp bool)

-0:165          true case

-0:165          add (temp 4-component vector of float)

-0:165            add (temp 4-component vector of float)

-0:165              Construct vec4 (temp 4-component vector of float)

-0:165                Convert int to float (temp float)

-0:165                  'i' (temp int)

-0:165              Construct vec4 (temp 4-component vector of float)

-0:165                'f' (temp float)

-0:165            'v' (temp 4-component vector of float)

-0:165          false case

-0:165          'v' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'uiv4' (uniform 4-component vector of int)

-0:?     'uv4' (uniform 4-component vector of float)

-0:?     'ub' (uniform bool)

-0:?     'ub41' (uniform 4-component vector of bool)

-0:?     'ub42' (uniform 4-component vector of bool)

-0:?     'uf' (uniform float)

-0:?     'ui' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:?     Sequence

-0:27      move second child to first child (temp 4-component vector of float)

-0:27        'v' (temp 4-component vector of float)

-0:27        radians (global 4-component vector of float)

-0:27          'uv4' (uniform 4-component vector of float)

-0:28      add second child into first child (temp 4-component vector of float)

-0:28        'v' (temp 4-component vector of float)

-0:28        degrees (global 4-component vector of float)

-0:28          'v' (temp 4-component vector of float)

-0:29      add second child into first child (temp 4-component vector of float)

-0:29        'v' (temp 4-component vector of float)

-0:29        Comma (temp 4-component vector of float)

-0:29          move second child to first child (temp int)

-0:29            'i' (temp int)

-0:29            component-wise multiply (temp int)

-0:29              'ui' (uniform int)

-0:29              'ui' (uniform int)

-0:29          sine (global 4-component vector of float)

-0:29            'v' (temp 4-component vector of float)

-0:30      add second child into first child (temp 4-component vector of float)

-0:30        'v' (temp 4-component vector of float)

-0:30        cosine (global 4-component vector of float)

-0:30          'v' (temp 4-component vector of float)

-0:31      add second child into first child (temp 4-component vector of float)

-0:31        'v' (temp 4-component vector of float)

-0:31        tangent (global 4-component vector of float)

-0:31          'v' (temp 4-component vector of float)

-0:32      add second child into first child (temp 4-component vector of float)

-0:32        'v' (temp 4-component vector of float)

-0:32        arc sine (global 4-component vector of float)

-0:32          'v' (temp 4-component vector of float)

-0:33      add second child into first child (temp 4-component vector of float)

-0:33        'v' (temp 4-component vector of float)

-0:33        arc cosine (global 4-component vector of float)

-0:33          'v' (temp 4-component vector of float)

-0:35      add second child into first child (temp 4-component vector of float)

-0:35        'v' (temp 4-component vector of float)

-0:35        arc tangent (global 4-component vector of float)

-0:35          'v' (temp 4-component vector of float)

-0:36      add second child into first child (temp 4-component vector of float)

-0:36        'v' (temp 4-component vector of float)

-0:36        hyp. sine (global 4-component vector of float)

-0:36          'v' (temp 4-component vector of float)

-0:37      add second child into first child (temp 4-component vector of float)

-0:37        'v' (temp 4-component vector of float)

-0:37        hyp. cosine (global 4-component vector of float)

-0:37          'v' (temp 4-component vector of float)

-0:38      add second child into first child (temp 4-component vector of float)

-0:38        'v' (temp 4-component vector of float)

-0:38        hyp. tangent (global 4-component vector of float)

-0:38          'v' (temp 4-component vector of float)

-0:39      add second child into first child (temp 4-component vector of float)

-0:39        'v' (temp 4-component vector of float)

-0:39        arc hyp. sine (global 4-component vector of float)

-0:39          'v' (temp 4-component vector of float)

-0:40      add second child into first child (temp 4-component vector of float)

-0:40        'v' (temp 4-component vector of float)

-0:40        arc hyp. cosine (global 4-component vector of float)

-0:40          'v' (temp 4-component vector of float)

-0:41      add second child into first child (temp 4-component vector of float)

-0:41        'v' (temp 4-component vector of float)

-0:41        arc hyp. tangent (global 4-component vector of float)

-0:41          'v' (temp 4-component vector of float)

-0:43      add second child into first child (temp 4-component vector of float)

-0:43        'v' (temp 4-component vector of float)

-0:43        pow (global 4-component vector of float)

-0:43          'v' (temp 4-component vector of float)

-0:43          'v' (temp 4-component vector of float)

-0:44      add second child into first child (temp 4-component vector of float)

-0:44        'v' (temp 4-component vector of float)

-0:44        exp (global 4-component vector of float)

-0:44          'v' (temp 4-component vector of float)

-0:45      add second child into first child (temp 4-component vector of float)

-0:45        'v' (temp 4-component vector of float)

-0:45        log (global 4-component vector of float)

-0:45          'v' (temp 4-component vector of float)

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'v' (temp 4-component vector of float)

-0:46        exp2 (global 4-component vector of float)

-0:46          'v' (temp 4-component vector of float)

-0:47      add second child into first child (temp 4-component vector of float)

-0:47        'v' (temp 4-component vector of float)

-0:47        log2 (global 4-component vector of float)

-0:47          'v' (temp 4-component vector of float)

-0:48      add second child into first child (temp 4-component vector of float)

-0:48        'v' (temp 4-component vector of float)

-0:48        sqrt (global 4-component vector of float)

-0:48          'v' (temp 4-component vector of float)

-0:49      add second child into first child (temp 4-component vector of float)

-0:49        'v' (temp 4-component vector of float)

-0:49        inverse sqrt (global 4-component vector of float)

-0:49          'v' (temp 4-component vector of float)

-0:50      add second child into first child (temp 4-component vector of float)

-0:50        'v' (temp 4-component vector of float)

-0:50        Absolute value (global 4-component vector of float)

-0:50          'v' (temp 4-component vector of float)

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'v' (temp 4-component vector of float)

-0:51        Sign (global 4-component vector of float)

-0:51          'v' (temp 4-component vector of float)

-0:52      add second child into first child (temp 4-component vector of float)

-0:52        'v' (temp 4-component vector of float)

-0:52        Floor (global 4-component vector of float)

-0:52          'v' (temp 4-component vector of float)

-0:60      add second child into first child (temp 4-component vector of float)

-0:60        'v' (temp 4-component vector of float)

-0:60        Ceiling (global 4-component vector of float)

-0:60          'v' (temp 4-component vector of float)

-0:61      add second child into first child (temp 4-component vector of float)

-0:61        'v' (temp 4-component vector of float)

-0:61        Fraction (global 4-component vector of float)

-0:61          'v' (temp 4-component vector of float)

-0:62      add second child into first child (temp 4-component vector of float)

-0:62        'v' (temp 4-component vector of float)

-0:62        mod (global 4-component vector of float)

-0:62          'v' (temp 4-component vector of float)

-0:62          'v' (temp 4-component vector of float)

-0:63      add second child into first child (temp 4-component vector of float)

-0:63        'v' (temp 4-component vector of float)

-0:63        mod (global 4-component vector of float)

-0:63          'v' (temp 4-component vector of float)

-0:63          direct index (temp float)

-0:63            'v' (temp 4-component vector of float)

-0:63            Constant:

-0:63              0 (const int)

-0:69      add second child into first child (temp 4-component vector of float)

-0:69        'v' (temp 4-component vector of float)

-0:69        min (global 4-component vector of float)

-0:69          'v' (temp 4-component vector of float)

-0:69          'uv4' (uniform 4-component vector of float)

-0:70      add second child into first child (temp 4-component vector of float)

-0:70        'v' (temp 4-component vector of float)

-0:70        max (global 4-component vector of float)

-0:70          'v' (temp 4-component vector of float)

-0:70          'uv4' (uniform 4-component vector of float)

-0:71      add second child into first child (temp 4-component vector of float)

-0:71        'v' (temp 4-component vector of float)

-0:71        clamp (global 4-component vector of float)

-0:71          'v' (temp 4-component vector of float)

-0:71          'uv4' (uniform 4-component vector of float)

-0:71          'uv4' (uniform 4-component vector of float)

-0:72      add second child into first child (temp 4-component vector of float)

-0:72        'v' (temp 4-component vector of float)

-0:72        mix (global 4-component vector of float)

-0:72          'v' (temp 4-component vector of float)

-0:72          'v' (temp 4-component vector of float)

-0:72          'v' (temp 4-component vector of float)

-0:86      add second child into first child (temp 4-component vector of float)

-0:86        'v' (temp 4-component vector of float)

-0:86        step (global 4-component vector of float)

-0:86          'v' (temp 4-component vector of float)

-0:86          'v' (temp 4-component vector of float)

-0:87      add second child into first child (temp 4-component vector of float)

-0:87        'v' (temp 4-component vector of float)

-0:87        smoothstep (global 4-component vector of float)

-0:87          'v' (temp 4-component vector of float)

-0:87          'v' (temp 4-component vector of float)

-0:87          'v' (temp 4-component vector of float)

-0:88      add second child into first child (temp 4-component vector of float)

-0:88        'v' (temp 4-component vector of float)

-0:88        step (global 4-component vector of float)

-0:88          'uf' (uniform float)

-0:88          'v' (temp 4-component vector of float)

-0:89      add second child into first child (temp 4-component vector of float)

-0:89        'v' (temp 4-component vector of float)

-0:89        smoothstep (global 4-component vector of float)

-0:89          'uf' (uniform float)

-0:89          'uf' (uniform float)

-0:89          'v' (temp 4-component vector of float)

-0:90      add second child into first child (temp 4-component vector of float)

-0:90        'v' (temp 4-component vector of float)

-0:90        normalize (global 4-component vector of float)

-0:90          'v' (temp 4-component vector of float)

-0:91      add second child into first child (temp 4-component vector of float)

-0:91        'v' (temp 4-component vector of float)

-0:91        face-forward (global 4-component vector of float)

-0:91          'v' (temp 4-component vector of float)

-0:91          'v' (temp 4-component vector of float)

-0:91          'v' (temp 4-component vector of float)

-0:92      add second child into first child (temp 4-component vector of float)

-0:92        'v' (temp 4-component vector of float)

-0:92        reflect (global 4-component vector of float)

-0:92          'v' (temp 4-component vector of float)

-0:92          'v' (temp 4-component vector of float)

-0:93      add second child into first child (temp 4-component vector of float)

-0:93        'v' (temp 4-component vector of float)

-0:93        refract (global 4-component vector of float)

-0:93          'v' (temp 4-component vector of float)

-0:93          'v' (temp 4-component vector of float)

-0:93          'uf' (uniform float)

-0:94      add second child into first child (temp 4-component vector of float)

-0:94        'v' (temp 4-component vector of float)

-0:94        dPdx (global 4-component vector of float)

-0:94          'v' (temp 4-component vector of float)

-0:95      add second child into first child (temp 4-component vector of float)

-0:95        'v' (temp 4-component vector of float)

-0:95        dPdy (global 4-component vector of float)

-0:95          'v' (temp 4-component vector of float)

-0:96      add second child into first child (temp 4-component vector of float)

-0:96        'v' (temp 4-component vector of float)

-0:96        fwidth (global 4-component vector of float)

-0:96          'v' (temp 4-component vector of float)

-0:130      move second child to first child (temp bool)

-0:130        'b' (temp bool)

-0:130        any (global bool)

-0:130          Compare Less Than (global 4-component vector of bool)

-0:130            'v' (temp 4-component vector of float)

-0:130            'uv4' (uniform 4-component vector of float)

-0:131      move second child to first child (temp bool)

-0:131        'b' (temp bool)

-0:131        logical-and (temp bool)

-0:131          'b' (temp bool)

-0:131          any (global bool)

-0:131            Compare Less Than or Equal (global 4-component vector of bool)

-0:131              'v' (temp 4-component vector of float)

-0:131              'uv4' (uniform 4-component vector of float)

-0:132      move second child to first child (temp bool)

-0:132        'b' (temp bool)

-0:132        logical-and (temp bool)

-0:132          'b' (temp bool)

-0:132          any (global bool)

-0:132            Compare Greater Than (global 4-component vector of bool)

-0:132              'v' (temp 4-component vector of float)

-0:132              'uv4' (uniform 4-component vector of float)

-0:133      move second child to first child (temp bool)

-0:133        'b' (temp bool)

-0:133        logical-and (temp bool)

-0:133          'b' (temp bool)

-0:133          any (global bool)

-0:133            Compare Greater Than or Equal (global 4-component vector of bool)

-0:133              'v' (temp 4-component vector of float)

-0:133              'uv4' (uniform 4-component vector of float)

-0:134      move second child to first child (temp bool)

-0:134        'b' (temp bool)

-0:134        logical-and (temp bool)

-0:134          'b' (temp bool)

-0:134          any (global bool)

-0:134            Equal (global 4-component vector of bool)

-0:134              'ub41' (uniform 4-component vector of bool)

-0:134              'ub42' (uniform 4-component vector of bool)

-0:135      move second child to first child (temp bool)

-0:135        'b' (temp bool)

-0:135        logical-and (temp bool)

-0:135          'b' (temp bool)

-0:135          any (global bool)

-0:135            NotEqual (global 4-component vector of bool)

-0:135              'ub41' (uniform 4-component vector of bool)

-0:135              'ub42' (uniform 4-component vector of bool)

-0:136      move second child to first child (temp bool)

-0:136        'b' (temp bool)

-0:136        logical-and (temp bool)

-0:136          'b' (temp bool)

-0:136          any (global bool)

-0:136            'ub41' (uniform 4-component vector of bool)

-0:137      move second child to first child (temp bool)

-0:137        'b' (temp bool)

-0:137        logical-and (temp bool)

-0:137          'b' (temp bool)

-0:137          all (global bool)

-0:137            'ub41' (uniform 4-component vector of bool)

-0:138      move second child to first child (temp bool)

-0:138        'b' (temp bool)

-0:138        logical-and (temp bool)

-0:138          'b' (temp bool)

-0:138          any (global bool)

-0:138            Negate conditional (global 4-component vector of bool)

-0:138              'ub41' (uniform 4-component vector of bool)

-0:140      move second child to first child (temp int)

-0:140        'i' (temp int)

-0:140        divide (temp int)

-0:140          subtract (temp int)

-0:140            component-wise multiply (temp int)

-0:140              add (temp int)

-0:140                'i' (temp int)

-0:140                'ui' (uniform int)

-0:140              'i' (temp int)

-0:140            'ui' (uniform int)

-0:140          'i' (temp int)

-0:141      move second child to first child (temp int)

-0:141        'i' (temp int)

-0:141        mod (temp int)

-0:141          'i' (temp int)

-0:141          'ui' (uniform int)

-0:142      Test condition and select (temp void)

-0:142        Condition

-0:142        logical-or (temp bool)

-0:142          Compare Equal (temp bool)

-0:142            'i' (temp int)

-0:142            'ui' (uniform int)

-0:142          logical-xor (temp bool)

-0:142            logical-and (temp bool)

-0:142              Compare Not Equal (temp bool)

-0:142                'i' (temp int)

-0:142                'ui' (uniform int)

-0:142              Compare Equal (temp bool)

-0:142                'i' (temp int)

-0:142                'ui' (uniform int)

-0:142            Compare Not Equal (temp bool)

-0:142              'i' (temp int)

-0:142              Constant:

-0:142                2 (const int)

-0:142        true case

-0:143        Pre-Increment (temp int)

-0:143          'i' (temp int)

-0:145      move second child to first child (temp float)

-0:145        'f' (temp float)

-0:145        divide (temp float)

-0:145          subtract (temp float)

-0:145            component-wise multiply (temp float)

-0:145              add (temp float)

-0:145                'uf' (uniform float)

-0:145                'uf' (uniform float)

-0:145              'uf' (uniform float)

-0:145            'uf' (uniform float)

-0:145          'uf' (uniform float)

-0:147      add second child into first child (temp float)

-0:147        'f' (temp float)

-0:147        length (global float)

-0:147          'v' (temp 4-component vector of float)

-0:148      add second child into first child (temp float)

-0:148        'f' (temp float)

-0:148        distance (global float)

-0:148          'v' (temp 4-component vector of float)

-0:148          'v' (temp 4-component vector of float)

-0:149      add second child into first child (temp float)

-0:149        'f' (temp float)

-0:149        dot-product (global float)

-0:149          'v' (temp 4-component vector of float)

-0:149          'v' (temp 4-component vector of float)

-0:150      add second child into first child (temp float)

-0:150        'f' (temp float)

-0:150        dot-product (global float)

-0:150          'f' (temp float)

-0:150          'uf' (uniform float)

-0:151      add second child into first child (temp float)

-0:151        'f' (temp float)

-0:151        direct index (temp float)

-0:151          cross-product (global 3-component vector of float)

-0:151            vector swizzle (temp 3-component vector of float)

-0:151              'v' (temp 4-component vector of float)

-0:151              Sequence

-0:151                Constant:

-0:151                  0 (const int)

-0:151                Constant:

-0:151                  1 (const int)

-0:151                Constant:

-0:151                  2 (const int)

-0:151            vector swizzle (temp 3-component vector of float)

-0:151              'v' (temp 4-component vector of float)

-0:151              Sequence

-0:151                Constant:

-0:151                  0 (const int)

-0:151                Constant:

-0:151                  1 (const int)

-0:151                Constant:

-0:151                  2 (const int)

-0:151          Constant:

-0:151            0 (const int)

-0:153      Test condition and select (temp void)

-0:153        Condition

-0:153        logical-or (temp bool)

-0:153          Compare Equal (temp bool)

-0:153            'f' (temp float)

-0:153            'uf' (uniform float)

-0:153          logical-and (temp bool)

-0:153            Compare Not Equal (temp bool)

-0:153              'f' (temp float)

-0:153              'uf' (uniform float)

-0:153            Compare Not Equal (temp bool)

-0:153              'f' (temp float)

-0:153              Constant:

-0:153                2.000000

-0:153        true case

-0:154        Pre-Increment (temp float)

-0:154          'f' (temp float)

-0:156      and second child into first child (temp int)

-0:156        'i' (temp int)

-0:156        'ui' (uniform int)

-0:157      or second child into first child (temp int)

-0:157        'i' (temp int)

-0:157        Constant:

-0:157          66 (const int)

-0:158      exclusive or second child into first child (temp int)

-0:158        'i' (temp int)

-0:158        'ui' (uniform int)

-0:159      mod second child into first child (temp int)

-0:159        'i' (temp int)

-0:159        Constant:

-0:159          17 (const int)

-0:160      right shift second child into first child (temp int)

-0:160        'i' (temp int)

-0:160        Constant:

-0:160          2 (const int)

-0:161      left shift second child into first child (temp int)

-0:161        'i' (temp int)

-0:161        'ui' (uniform int)

-0:162      move second child to first child (temp int)

-0:162        'i' (temp int)

-0:162        Bitwise not (temp int)

-0:162          'i' (temp int)

-0:163      move second child to first child (temp bool)

-0:163        'b' (temp bool)

-0:163        Negate conditional (temp bool)

-0:163          'b' (temp bool)

-0:165      move second child to first child (temp 4-component vector of float)

-0:165        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:165        Test condition and select (temp 4-component vector of float)

-0:165          Condition

-0:165          'b' (temp bool)

-0:165          true case

-0:165          add (temp 4-component vector of float)

-0:165            add (temp 4-component vector of float)

-0:165              Construct vec4 (temp 4-component vector of float)

-0:165                Convert int to float (temp float)

-0:165                  'i' (temp int)

-0:165              Construct vec4 (temp 4-component vector of float)

-0:165                'f' (temp float)

-0:165            'v' (temp 4-component vector of float)

-0:165          false case

-0:165          'v' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'uiv4' (uniform 4-component vector of int)

-0:?     'uv4' (uniform 4-component vector of float)

-0:?     'ub' (uniform bool)

-0:?     'ub41' (uniform 4-component vector of bool)

-0:?     'ub42' (uniform 4-component vector of bool)

-0:?     'uf' (uniform float)

-0:?     'ui' (uniform int)

-

+Operations.frag
+Shader version: 130
+0:? Sequence
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:?     Sequence
+0:27      move second child to first child (temp 4-component vector of float)
+0:27        'v' (temp 4-component vector of float)
+0:27        radians (global 4-component vector of float)
+0:27          'uv4' (uniform 4-component vector of float)
+0:28      add second child into first child (temp 4-component vector of float)
+0:28        'v' (temp 4-component vector of float)
+0:28        degrees (global 4-component vector of float)
+0:28          'v' (temp 4-component vector of float)
+0:29      add second child into first child (temp 4-component vector of float)
+0:29        'v' (temp 4-component vector of float)
+0:29        Comma (temp 4-component vector of float)
+0:29          move second child to first child (temp int)
+0:29            'i' (temp int)
+0:29            component-wise multiply (temp int)
+0:29              'ui' (uniform int)
+0:29              'ui' (uniform int)
+0:29          sine (global 4-component vector of float)
+0:29            'v' (temp 4-component vector of float)
+0:30      add second child into first child (temp 4-component vector of float)
+0:30        'v' (temp 4-component vector of float)
+0:30        cosine (global 4-component vector of float)
+0:30          'v' (temp 4-component vector of float)
+0:31      add second child into first child (temp 4-component vector of float)
+0:31        'v' (temp 4-component vector of float)
+0:31        tangent (global 4-component vector of float)
+0:31          'v' (temp 4-component vector of float)
+0:32      add second child into first child (temp 4-component vector of float)
+0:32        'v' (temp 4-component vector of float)
+0:32        arc sine (global 4-component vector of float)
+0:32          'v' (temp 4-component vector of float)
+0:33      add second child into first child (temp 4-component vector of float)
+0:33        'v' (temp 4-component vector of float)
+0:33        arc cosine (global 4-component vector of float)
+0:33          'v' (temp 4-component vector of float)
+0:35      add second child into first child (temp 4-component vector of float)
+0:35        'v' (temp 4-component vector of float)
+0:35        arc tangent (global 4-component vector of float)
+0:35          'v' (temp 4-component vector of float)
+0:36      add second child into first child (temp 4-component vector of float)
+0:36        'v' (temp 4-component vector of float)
+0:36        hyp. sine (global 4-component vector of float)
+0:36          'v' (temp 4-component vector of float)
+0:37      add second child into first child (temp 4-component vector of float)
+0:37        'v' (temp 4-component vector of float)
+0:37        hyp. cosine (global 4-component vector of float)
+0:37          'v' (temp 4-component vector of float)
+0:38      add second child into first child (temp 4-component vector of float)
+0:38        'v' (temp 4-component vector of float)
+0:38        hyp. tangent (global 4-component vector of float)
+0:38          'v' (temp 4-component vector of float)
+0:39      add second child into first child (temp 4-component vector of float)
+0:39        'v' (temp 4-component vector of float)
+0:39        arc hyp. sine (global 4-component vector of float)
+0:39          'v' (temp 4-component vector of float)
+0:40      add second child into first child (temp 4-component vector of float)
+0:40        'v' (temp 4-component vector of float)
+0:40        arc hyp. cosine (global 4-component vector of float)
+0:40          'v' (temp 4-component vector of float)
+0:41      add second child into first child (temp 4-component vector of float)
+0:41        'v' (temp 4-component vector of float)
+0:41        arc hyp. tangent (global 4-component vector of float)
+0:41          'v' (temp 4-component vector of float)
+0:43      add second child into first child (temp 4-component vector of float)
+0:43        'v' (temp 4-component vector of float)
+0:43        pow (global 4-component vector of float)
+0:43          'v' (temp 4-component vector of float)
+0:43          'v' (temp 4-component vector of float)
+0:44      add second child into first child (temp 4-component vector of float)
+0:44        'v' (temp 4-component vector of float)
+0:44        exp (global 4-component vector of float)
+0:44          'v' (temp 4-component vector of float)
+0:45      add second child into first child (temp 4-component vector of float)
+0:45        'v' (temp 4-component vector of float)
+0:45        log (global 4-component vector of float)
+0:45          'v' (temp 4-component vector of float)
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'v' (temp 4-component vector of float)
+0:46        exp2 (global 4-component vector of float)
+0:46          'v' (temp 4-component vector of float)
+0:47      add second child into first child (temp 4-component vector of float)
+0:47        'v' (temp 4-component vector of float)
+0:47        log2 (global 4-component vector of float)
+0:47          'v' (temp 4-component vector of float)
+0:48      add second child into first child (temp 4-component vector of float)
+0:48        'v' (temp 4-component vector of float)
+0:48        sqrt (global 4-component vector of float)
+0:48          'v' (temp 4-component vector of float)
+0:49      add second child into first child (temp 4-component vector of float)
+0:49        'v' (temp 4-component vector of float)
+0:49        inverse sqrt (global 4-component vector of float)
+0:49          'v' (temp 4-component vector of float)
+0:50      add second child into first child (temp 4-component vector of float)
+0:50        'v' (temp 4-component vector of float)
+0:50        Absolute value (global 4-component vector of float)
+0:50          'v' (temp 4-component vector of float)
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'v' (temp 4-component vector of float)
+0:51        Sign (global 4-component vector of float)
+0:51          'v' (temp 4-component vector of float)
+0:52      add second child into first child (temp 4-component vector of float)
+0:52        'v' (temp 4-component vector of float)
+0:52        Floor (global 4-component vector of float)
+0:52          'v' (temp 4-component vector of float)
+0:60      add second child into first child (temp 4-component vector of float)
+0:60        'v' (temp 4-component vector of float)
+0:60        Ceiling (global 4-component vector of float)
+0:60          'v' (temp 4-component vector of float)
+0:61      add second child into first child (temp 4-component vector of float)
+0:61        'v' (temp 4-component vector of float)
+0:61        Fraction (global 4-component vector of float)
+0:61          'v' (temp 4-component vector of float)
+0:62      add second child into first child (temp 4-component vector of float)
+0:62        'v' (temp 4-component vector of float)
+0:62        mod (global 4-component vector of float)
+0:62          'v' (temp 4-component vector of float)
+0:62          'v' (temp 4-component vector of float)
+0:63      add second child into first child (temp 4-component vector of float)
+0:63        'v' (temp 4-component vector of float)
+0:63        mod (global 4-component vector of float)
+0:63          'v' (temp 4-component vector of float)
+0:63          direct index (temp float)
+0:63            'v' (temp 4-component vector of float)
+0:63            Constant:
+0:63              0 (const int)
+0:69      add second child into first child (temp 4-component vector of float)
+0:69        'v' (temp 4-component vector of float)
+0:69        min (global 4-component vector of float)
+0:69          'v' (temp 4-component vector of float)
+0:69          'uv4' (uniform 4-component vector of float)
+0:70      add second child into first child (temp 4-component vector of float)
+0:70        'v' (temp 4-component vector of float)
+0:70        max (global 4-component vector of float)
+0:70          'v' (temp 4-component vector of float)
+0:70          'uv4' (uniform 4-component vector of float)
+0:71      add second child into first child (temp 4-component vector of float)
+0:71        'v' (temp 4-component vector of float)
+0:71        clamp (global 4-component vector of float)
+0:71          'v' (temp 4-component vector of float)
+0:71          'uv4' (uniform 4-component vector of float)
+0:71          'uv4' (uniform 4-component vector of float)
+0:72      add second child into first child (temp 4-component vector of float)
+0:72        'v' (temp 4-component vector of float)
+0:72        mix (global 4-component vector of float)
+0:72          'v' (temp 4-component vector of float)
+0:72          'v' (temp 4-component vector of float)
+0:72          'v' (temp 4-component vector of float)
+0:86      add second child into first child (temp 4-component vector of float)
+0:86        'v' (temp 4-component vector of float)
+0:86        step (global 4-component vector of float)
+0:86          'v' (temp 4-component vector of float)
+0:86          'v' (temp 4-component vector of float)
+0:87      add second child into first child (temp 4-component vector of float)
+0:87        'v' (temp 4-component vector of float)
+0:87        smoothstep (global 4-component vector of float)
+0:87          'v' (temp 4-component vector of float)
+0:87          'v' (temp 4-component vector of float)
+0:87          'v' (temp 4-component vector of float)
+0:88      add second child into first child (temp 4-component vector of float)
+0:88        'v' (temp 4-component vector of float)
+0:88        step (global 4-component vector of float)
+0:88          'uf' (uniform float)
+0:88          'v' (temp 4-component vector of float)
+0:89      add second child into first child (temp 4-component vector of float)
+0:89        'v' (temp 4-component vector of float)
+0:89        smoothstep (global 4-component vector of float)
+0:89          'uf' (uniform float)
+0:89          'uf' (uniform float)
+0:89          'v' (temp 4-component vector of float)
+0:90      add second child into first child (temp 4-component vector of float)
+0:90        'v' (temp 4-component vector of float)
+0:90        normalize (global 4-component vector of float)
+0:90          'v' (temp 4-component vector of float)
+0:91      add second child into first child (temp 4-component vector of float)
+0:91        'v' (temp 4-component vector of float)
+0:91        face-forward (global 4-component vector of float)
+0:91          'v' (temp 4-component vector of float)
+0:91          'v' (temp 4-component vector of float)
+0:91          'v' (temp 4-component vector of float)
+0:92      add second child into first child (temp 4-component vector of float)
+0:92        'v' (temp 4-component vector of float)
+0:92        reflect (global 4-component vector of float)
+0:92          'v' (temp 4-component vector of float)
+0:92          'v' (temp 4-component vector of float)
+0:93      add second child into first child (temp 4-component vector of float)
+0:93        'v' (temp 4-component vector of float)
+0:93        refract (global 4-component vector of float)
+0:93          'v' (temp 4-component vector of float)
+0:93          'v' (temp 4-component vector of float)
+0:93          'uf' (uniform float)
+0:94      add second child into first child (temp 4-component vector of float)
+0:94        'v' (temp 4-component vector of float)
+0:94        dPdx (global 4-component vector of float)
+0:94          'v' (temp 4-component vector of float)
+0:95      add second child into first child (temp 4-component vector of float)
+0:95        'v' (temp 4-component vector of float)
+0:95        dPdy (global 4-component vector of float)
+0:95          'v' (temp 4-component vector of float)
+0:96      add second child into first child (temp 4-component vector of float)
+0:96        'v' (temp 4-component vector of float)
+0:96        fwidth (global 4-component vector of float)
+0:96          'v' (temp 4-component vector of float)
+0:130      move second child to first child (temp bool)
+0:130        'b' (temp bool)
+0:130        any (global bool)
+0:130          Compare Less Than (global 4-component vector of bool)
+0:130            'v' (temp 4-component vector of float)
+0:130            'uv4' (uniform 4-component vector of float)
+0:131      move second child to first child (temp bool)
+0:131        'b' (temp bool)
+0:131        logical-and (temp bool)
+0:131          'b' (temp bool)
+0:131          any (global bool)
+0:131            Compare Less Than or Equal (global 4-component vector of bool)
+0:131              'v' (temp 4-component vector of float)
+0:131              'uv4' (uniform 4-component vector of float)
+0:132      move second child to first child (temp bool)
+0:132        'b' (temp bool)
+0:132        logical-and (temp bool)
+0:132          'b' (temp bool)
+0:132          any (global bool)
+0:132            Compare Greater Than (global 4-component vector of bool)
+0:132              'v' (temp 4-component vector of float)
+0:132              'uv4' (uniform 4-component vector of float)
+0:133      move second child to first child (temp bool)
+0:133        'b' (temp bool)
+0:133        logical-and (temp bool)
+0:133          'b' (temp bool)
+0:133          any (global bool)
+0:133            Compare Greater Than or Equal (global 4-component vector of bool)
+0:133              'v' (temp 4-component vector of float)
+0:133              'uv4' (uniform 4-component vector of float)
+0:134      move second child to first child (temp bool)
+0:134        'b' (temp bool)
+0:134        logical-and (temp bool)
+0:134          'b' (temp bool)
+0:134          any (global bool)
+0:134            Equal (global 4-component vector of bool)
+0:134              'ub41' (uniform 4-component vector of bool)
+0:134              'ub42' (uniform 4-component vector of bool)
+0:135      move second child to first child (temp bool)
+0:135        'b' (temp bool)
+0:135        logical-and (temp bool)
+0:135          'b' (temp bool)
+0:135          any (global bool)
+0:135            NotEqual (global 4-component vector of bool)
+0:135              'ub41' (uniform 4-component vector of bool)
+0:135              'ub42' (uniform 4-component vector of bool)
+0:136      move second child to first child (temp bool)
+0:136        'b' (temp bool)
+0:136        logical-and (temp bool)
+0:136          'b' (temp bool)
+0:136          any (global bool)
+0:136            'ub41' (uniform 4-component vector of bool)
+0:137      move second child to first child (temp bool)
+0:137        'b' (temp bool)
+0:137        logical-and (temp bool)
+0:137          'b' (temp bool)
+0:137          all (global bool)
+0:137            'ub41' (uniform 4-component vector of bool)
+0:138      move second child to first child (temp bool)
+0:138        'b' (temp bool)
+0:138        logical-and (temp bool)
+0:138          'b' (temp bool)
+0:138          any (global bool)
+0:138            Negate conditional (global 4-component vector of bool)
+0:138              'ub41' (uniform 4-component vector of bool)
+0:140      move second child to first child (temp int)
+0:140        'i' (temp int)
+0:140        divide (temp int)
+0:140          subtract (temp int)
+0:140            component-wise multiply (temp int)
+0:140              add (temp int)
+0:140                'i' (temp int)
+0:140                'ui' (uniform int)
+0:140              'i' (temp int)
+0:140            'ui' (uniform int)
+0:140          'i' (temp int)
+0:141      move second child to first child (temp int)
+0:141        'i' (temp int)
+0:141        mod (temp int)
+0:141          'i' (temp int)
+0:141          'ui' (uniform int)
+0:142      Test condition and select (temp void)
+0:142        Condition
+0:142        logical-or (temp bool)
+0:142          Compare Equal (temp bool)
+0:142            'i' (temp int)
+0:142            'ui' (uniform int)
+0:142          logical-xor (temp bool)
+0:142            logical-and (temp bool)
+0:142              Compare Not Equal (temp bool)
+0:142                'i' (temp int)
+0:142                'ui' (uniform int)
+0:142              Compare Equal (temp bool)
+0:142                'i' (temp int)
+0:142                'ui' (uniform int)
+0:142            Compare Not Equal (temp bool)
+0:142              'i' (temp int)
+0:142              Constant:
+0:142                2 (const int)
+0:142        true case
+0:143        Pre-Increment (temp int)
+0:143          'i' (temp int)
+0:145      move second child to first child (temp float)
+0:145        'f' (temp float)
+0:145        divide (temp float)
+0:145          subtract (temp float)
+0:145            component-wise multiply (temp float)
+0:145              add (temp float)
+0:145                'uf' (uniform float)
+0:145                'uf' (uniform float)
+0:145              'uf' (uniform float)
+0:145            'uf' (uniform float)
+0:145          'uf' (uniform float)
+0:147      add second child into first child (temp float)
+0:147        'f' (temp float)
+0:147        length (global float)
+0:147          'v' (temp 4-component vector of float)
+0:148      add second child into first child (temp float)
+0:148        'f' (temp float)
+0:148        distance (global float)
+0:148          'v' (temp 4-component vector of float)
+0:148          'v' (temp 4-component vector of float)
+0:149      add second child into first child (temp float)
+0:149        'f' (temp float)
+0:149        dot-product (global float)
+0:149          'v' (temp 4-component vector of float)
+0:149          'v' (temp 4-component vector of float)
+0:150      add second child into first child (temp float)
+0:150        'f' (temp float)
+0:150        dot-product (global float)
+0:150          'f' (temp float)
+0:150          'uf' (uniform float)
+0:151      add second child into first child (temp float)
+0:151        'f' (temp float)
+0:151        direct index (temp float)
+0:151          cross-product (global 3-component vector of float)
+0:151            vector swizzle (temp 3-component vector of float)
+0:151              'v' (temp 4-component vector of float)
+0:151              Sequence
+0:151                Constant:
+0:151                  0 (const int)
+0:151                Constant:
+0:151                  1 (const int)
+0:151                Constant:
+0:151                  2 (const int)
+0:151            vector swizzle (temp 3-component vector of float)
+0:151              'v' (temp 4-component vector of float)
+0:151              Sequence
+0:151                Constant:
+0:151                  0 (const int)
+0:151                Constant:
+0:151                  1 (const int)
+0:151                Constant:
+0:151                  2 (const int)
+0:151          Constant:
+0:151            0 (const int)
+0:153      Test condition and select (temp void)
+0:153        Condition
+0:153        logical-or (temp bool)
+0:153          Compare Equal (temp bool)
+0:153            'f' (temp float)
+0:153            'uf' (uniform float)
+0:153          logical-and (temp bool)
+0:153            Compare Not Equal (temp bool)
+0:153              'f' (temp float)
+0:153              'uf' (uniform float)
+0:153            Compare Not Equal (temp bool)
+0:153              'f' (temp float)
+0:153              Constant:
+0:153                2.000000
+0:153        true case
+0:154        Pre-Increment (temp float)
+0:154          'f' (temp float)
+0:156      and second child into first child (temp int)
+0:156        'i' (temp int)
+0:156        'ui' (uniform int)
+0:157      or second child into first child (temp int)
+0:157        'i' (temp int)
+0:157        Constant:
+0:157          66 (const int)
+0:158      exclusive or second child into first child (temp int)
+0:158        'i' (temp int)
+0:158        'ui' (uniform int)
+0:159      mod second child into first child (temp int)
+0:159        'i' (temp int)
+0:159        Constant:
+0:159          17 (const int)
+0:160      right shift second child into first child (temp int)
+0:160        'i' (temp int)
+0:160        Constant:
+0:160          2 (const int)
+0:161      left shift second child into first child (temp int)
+0:161        'i' (temp int)
+0:161        'ui' (uniform int)
+0:162      move second child to first child (temp int)
+0:162        'i' (temp int)
+0:162        Bitwise not (temp int)
+0:162          'i' (temp int)
+0:163      move second child to first child (temp bool)
+0:163        'b' (temp bool)
+0:163        Negate conditional (temp bool)
+0:163          'b' (temp bool)
+0:165      move second child to first child (temp 4-component vector of float)
+0:165        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:165        Test condition and select (temp 4-component vector of float)
+0:165          Condition
+0:165          'b' (temp bool)
+0:165          true case
+0:165          add (temp 4-component vector of float)
+0:165            add (temp 4-component vector of float)
+0:165              Construct vec4 (temp 4-component vector of float)
+0:165                Convert int to float (temp float)
+0:165                  'i' (temp int)
+0:165              Construct vec4 (temp 4-component vector of float)
+0:165                'f' (temp float)
+0:165            'v' (temp 4-component vector of float)
+0:165          false case
+0:165          'v' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'uiv4' (uniform 4-component vector of int)
+0:?     'uv4' (uniform 4-component vector of float)
+0:?     'ub' (uniform bool)
+0:?     'ub41' (uniform 4-component vector of bool)
+0:?     'ub42' (uniform 4-component vector of bool)
+0:?     'uf' (uniform float)
+0:?     'ui' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:?     Sequence
+0:27      move second child to first child (temp 4-component vector of float)
+0:27        'v' (temp 4-component vector of float)
+0:27        radians (global 4-component vector of float)
+0:27          'uv4' (uniform 4-component vector of float)
+0:28      add second child into first child (temp 4-component vector of float)
+0:28        'v' (temp 4-component vector of float)
+0:28        degrees (global 4-component vector of float)
+0:28          'v' (temp 4-component vector of float)
+0:29      add second child into first child (temp 4-component vector of float)
+0:29        'v' (temp 4-component vector of float)
+0:29        Comma (temp 4-component vector of float)
+0:29          move second child to first child (temp int)
+0:29            'i' (temp int)
+0:29            component-wise multiply (temp int)
+0:29              'ui' (uniform int)
+0:29              'ui' (uniform int)
+0:29          sine (global 4-component vector of float)
+0:29            'v' (temp 4-component vector of float)
+0:30      add second child into first child (temp 4-component vector of float)
+0:30        'v' (temp 4-component vector of float)
+0:30        cosine (global 4-component vector of float)
+0:30          'v' (temp 4-component vector of float)
+0:31      add second child into first child (temp 4-component vector of float)
+0:31        'v' (temp 4-component vector of float)
+0:31        tangent (global 4-component vector of float)
+0:31          'v' (temp 4-component vector of float)
+0:32      add second child into first child (temp 4-component vector of float)
+0:32        'v' (temp 4-component vector of float)
+0:32        arc sine (global 4-component vector of float)
+0:32          'v' (temp 4-component vector of float)
+0:33      add second child into first child (temp 4-component vector of float)
+0:33        'v' (temp 4-component vector of float)
+0:33        arc cosine (global 4-component vector of float)
+0:33          'v' (temp 4-component vector of float)
+0:35      add second child into first child (temp 4-component vector of float)
+0:35        'v' (temp 4-component vector of float)
+0:35        arc tangent (global 4-component vector of float)
+0:35          'v' (temp 4-component vector of float)
+0:36      add second child into first child (temp 4-component vector of float)
+0:36        'v' (temp 4-component vector of float)
+0:36        hyp. sine (global 4-component vector of float)
+0:36          'v' (temp 4-component vector of float)
+0:37      add second child into first child (temp 4-component vector of float)
+0:37        'v' (temp 4-component vector of float)
+0:37        hyp. cosine (global 4-component vector of float)
+0:37          'v' (temp 4-component vector of float)
+0:38      add second child into first child (temp 4-component vector of float)
+0:38        'v' (temp 4-component vector of float)
+0:38        hyp. tangent (global 4-component vector of float)
+0:38          'v' (temp 4-component vector of float)
+0:39      add second child into first child (temp 4-component vector of float)
+0:39        'v' (temp 4-component vector of float)
+0:39        arc hyp. sine (global 4-component vector of float)
+0:39          'v' (temp 4-component vector of float)
+0:40      add second child into first child (temp 4-component vector of float)
+0:40        'v' (temp 4-component vector of float)
+0:40        arc hyp. cosine (global 4-component vector of float)
+0:40          'v' (temp 4-component vector of float)
+0:41      add second child into first child (temp 4-component vector of float)
+0:41        'v' (temp 4-component vector of float)
+0:41        arc hyp. tangent (global 4-component vector of float)
+0:41          'v' (temp 4-component vector of float)
+0:43      add second child into first child (temp 4-component vector of float)
+0:43        'v' (temp 4-component vector of float)
+0:43        pow (global 4-component vector of float)
+0:43          'v' (temp 4-component vector of float)
+0:43          'v' (temp 4-component vector of float)
+0:44      add second child into first child (temp 4-component vector of float)
+0:44        'v' (temp 4-component vector of float)
+0:44        exp (global 4-component vector of float)
+0:44          'v' (temp 4-component vector of float)
+0:45      add second child into first child (temp 4-component vector of float)
+0:45        'v' (temp 4-component vector of float)
+0:45        log (global 4-component vector of float)
+0:45          'v' (temp 4-component vector of float)
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'v' (temp 4-component vector of float)
+0:46        exp2 (global 4-component vector of float)
+0:46          'v' (temp 4-component vector of float)
+0:47      add second child into first child (temp 4-component vector of float)
+0:47        'v' (temp 4-component vector of float)
+0:47        log2 (global 4-component vector of float)
+0:47          'v' (temp 4-component vector of float)
+0:48      add second child into first child (temp 4-component vector of float)
+0:48        'v' (temp 4-component vector of float)
+0:48        sqrt (global 4-component vector of float)
+0:48          'v' (temp 4-component vector of float)
+0:49      add second child into first child (temp 4-component vector of float)
+0:49        'v' (temp 4-component vector of float)
+0:49        inverse sqrt (global 4-component vector of float)
+0:49          'v' (temp 4-component vector of float)
+0:50      add second child into first child (temp 4-component vector of float)
+0:50        'v' (temp 4-component vector of float)
+0:50        Absolute value (global 4-component vector of float)
+0:50          'v' (temp 4-component vector of float)
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'v' (temp 4-component vector of float)
+0:51        Sign (global 4-component vector of float)
+0:51          'v' (temp 4-component vector of float)
+0:52      add second child into first child (temp 4-component vector of float)
+0:52        'v' (temp 4-component vector of float)
+0:52        Floor (global 4-component vector of float)
+0:52          'v' (temp 4-component vector of float)
+0:60      add second child into first child (temp 4-component vector of float)
+0:60        'v' (temp 4-component vector of float)
+0:60        Ceiling (global 4-component vector of float)
+0:60          'v' (temp 4-component vector of float)
+0:61      add second child into first child (temp 4-component vector of float)
+0:61        'v' (temp 4-component vector of float)
+0:61        Fraction (global 4-component vector of float)
+0:61          'v' (temp 4-component vector of float)
+0:62      add second child into first child (temp 4-component vector of float)
+0:62        'v' (temp 4-component vector of float)
+0:62        mod (global 4-component vector of float)
+0:62          'v' (temp 4-component vector of float)
+0:62          'v' (temp 4-component vector of float)
+0:63      add second child into first child (temp 4-component vector of float)
+0:63        'v' (temp 4-component vector of float)
+0:63        mod (global 4-component vector of float)
+0:63          'v' (temp 4-component vector of float)
+0:63          direct index (temp float)
+0:63            'v' (temp 4-component vector of float)
+0:63            Constant:
+0:63              0 (const int)
+0:69      add second child into first child (temp 4-component vector of float)
+0:69        'v' (temp 4-component vector of float)
+0:69        min (global 4-component vector of float)
+0:69          'v' (temp 4-component vector of float)
+0:69          'uv4' (uniform 4-component vector of float)
+0:70      add second child into first child (temp 4-component vector of float)
+0:70        'v' (temp 4-component vector of float)
+0:70        max (global 4-component vector of float)
+0:70          'v' (temp 4-component vector of float)
+0:70          'uv4' (uniform 4-component vector of float)
+0:71      add second child into first child (temp 4-component vector of float)
+0:71        'v' (temp 4-component vector of float)
+0:71        clamp (global 4-component vector of float)
+0:71          'v' (temp 4-component vector of float)
+0:71          'uv4' (uniform 4-component vector of float)
+0:71          'uv4' (uniform 4-component vector of float)
+0:72      add second child into first child (temp 4-component vector of float)
+0:72        'v' (temp 4-component vector of float)
+0:72        mix (global 4-component vector of float)
+0:72          'v' (temp 4-component vector of float)
+0:72          'v' (temp 4-component vector of float)
+0:72          'v' (temp 4-component vector of float)
+0:86      add second child into first child (temp 4-component vector of float)
+0:86        'v' (temp 4-component vector of float)
+0:86        step (global 4-component vector of float)
+0:86          'v' (temp 4-component vector of float)
+0:86          'v' (temp 4-component vector of float)
+0:87      add second child into first child (temp 4-component vector of float)
+0:87        'v' (temp 4-component vector of float)
+0:87        smoothstep (global 4-component vector of float)
+0:87          'v' (temp 4-component vector of float)
+0:87          'v' (temp 4-component vector of float)
+0:87          'v' (temp 4-component vector of float)
+0:88      add second child into first child (temp 4-component vector of float)
+0:88        'v' (temp 4-component vector of float)
+0:88        step (global 4-component vector of float)
+0:88          'uf' (uniform float)
+0:88          'v' (temp 4-component vector of float)
+0:89      add second child into first child (temp 4-component vector of float)
+0:89        'v' (temp 4-component vector of float)
+0:89        smoothstep (global 4-component vector of float)
+0:89          'uf' (uniform float)
+0:89          'uf' (uniform float)
+0:89          'v' (temp 4-component vector of float)
+0:90      add second child into first child (temp 4-component vector of float)
+0:90        'v' (temp 4-component vector of float)
+0:90        normalize (global 4-component vector of float)
+0:90          'v' (temp 4-component vector of float)
+0:91      add second child into first child (temp 4-component vector of float)
+0:91        'v' (temp 4-component vector of float)
+0:91        face-forward (global 4-component vector of float)
+0:91          'v' (temp 4-component vector of float)
+0:91          'v' (temp 4-component vector of float)
+0:91          'v' (temp 4-component vector of float)
+0:92      add second child into first child (temp 4-component vector of float)
+0:92        'v' (temp 4-component vector of float)
+0:92        reflect (global 4-component vector of float)
+0:92          'v' (temp 4-component vector of float)
+0:92          'v' (temp 4-component vector of float)
+0:93      add second child into first child (temp 4-component vector of float)
+0:93        'v' (temp 4-component vector of float)
+0:93        refract (global 4-component vector of float)
+0:93          'v' (temp 4-component vector of float)
+0:93          'v' (temp 4-component vector of float)
+0:93          'uf' (uniform float)
+0:94      add second child into first child (temp 4-component vector of float)
+0:94        'v' (temp 4-component vector of float)
+0:94        dPdx (global 4-component vector of float)
+0:94          'v' (temp 4-component vector of float)
+0:95      add second child into first child (temp 4-component vector of float)
+0:95        'v' (temp 4-component vector of float)
+0:95        dPdy (global 4-component vector of float)
+0:95          'v' (temp 4-component vector of float)
+0:96      add second child into first child (temp 4-component vector of float)
+0:96        'v' (temp 4-component vector of float)
+0:96        fwidth (global 4-component vector of float)
+0:96          'v' (temp 4-component vector of float)
+0:130      move second child to first child (temp bool)
+0:130        'b' (temp bool)
+0:130        any (global bool)
+0:130          Compare Less Than (global 4-component vector of bool)
+0:130            'v' (temp 4-component vector of float)
+0:130            'uv4' (uniform 4-component vector of float)
+0:131      move second child to first child (temp bool)
+0:131        'b' (temp bool)
+0:131        logical-and (temp bool)
+0:131          'b' (temp bool)
+0:131          any (global bool)
+0:131            Compare Less Than or Equal (global 4-component vector of bool)
+0:131              'v' (temp 4-component vector of float)
+0:131              'uv4' (uniform 4-component vector of float)
+0:132      move second child to first child (temp bool)
+0:132        'b' (temp bool)
+0:132        logical-and (temp bool)
+0:132          'b' (temp bool)
+0:132          any (global bool)
+0:132            Compare Greater Than (global 4-component vector of bool)
+0:132              'v' (temp 4-component vector of float)
+0:132              'uv4' (uniform 4-component vector of float)
+0:133      move second child to first child (temp bool)
+0:133        'b' (temp bool)
+0:133        logical-and (temp bool)
+0:133          'b' (temp bool)
+0:133          any (global bool)
+0:133            Compare Greater Than or Equal (global 4-component vector of bool)
+0:133              'v' (temp 4-component vector of float)
+0:133              'uv4' (uniform 4-component vector of float)
+0:134      move second child to first child (temp bool)
+0:134        'b' (temp bool)
+0:134        logical-and (temp bool)
+0:134          'b' (temp bool)
+0:134          any (global bool)
+0:134            Equal (global 4-component vector of bool)
+0:134              'ub41' (uniform 4-component vector of bool)
+0:134              'ub42' (uniform 4-component vector of bool)
+0:135      move second child to first child (temp bool)
+0:135        'b' (temp bool)
+0:135        logical-and (temp bool)
+0:135          'b' (temp bool)
+0:135          any (global bool)
+0:135            NotEqual (global 4-component vector of bool)
+0:135              'ub41' (uniform 4-component vector of bool)
+0:135              'ub42' (uniform 4-component vector of bool)
+0:136      move second child to first child (temp bool)
+0:136        'b' (temp bool)
+0:136        logical-and (temp bool)
+0:136          'b' (temp bool)
+0:136          any (global bool)
+0:136            'ub41' (uniform 4-component vector of bool)
+0:137      move second child to first child (temp bool)
+0:137        'b' (temp bool)
+0:137        logical-and (temp bool)
+0:137          'b' (temp bool)
+0:137          all (global bool)
+0:137            'ub41' (uniform 4-component vector of bool)
+0:138      move second child to first child (temp bool)
+0:138        'b' (temp bool)
+0:138        logical-and (temp bool)
+0:138          'b' (temp bool)
+0:138          any (global bool)
+0:138            Negate conditional (global 4-component vector of bool)
+0:138              'ub41' (uniform 4-component vector of bool)
+0:140      move second child to first child (temp int)
+0:140        'i' (temp int)
+0:140        divide (temp int)
+0:140          subtract (temp int)
+0:140            component-wise multiply (temp int)
+0:140              add (temp int)
+0:140                'i' (temp int)
+0:140                'ui' (uniform int)
+0:140              'i' (temp int)
+0:140            'ui' (uniform int)
+0:140          'i' (temp int)
+0:141      move second child to first child (temp int)
+0:141        'i' (temp int)
+0:141        mod (temp int)
+0:141          'i' (temp int)
+0:141          'ui' (uniform int)
+0:142      Test condition and select (temp void)
+0:142        Condition
+0:142        logical-or (temp bool)
+0:142          Compare Equal (temp bool)
+0:142            'i' (temp int)
+0:142            'ui' (uniform int)
+0:142          logical-xor (temp bool)
+0:142            logical-and (temp bool)
+0:142              Compare Not Equal (temp bool)
+0:142                'i' (temp int)
+0:142                'ui' (uniform int)
+0:142              Compare Equal (temp bool)
+0:142                'i' (temp int)
+0:142                'ui' (uniform int)
+0:142            Compare Not Equal (temp bool)
+0:142              'i' (temp int)
+0:142              Constant:
+0:142                2 (const int)
+0:142        true case
+0:143        Pre-Increment (temp int)
+0:143          'i' (temp int)
+0:145      move second child to first child (temp float)
+0:145        'f' (temp float)
+0:145        divide (temp float)
+0:145          subtract (temp float)
+0:145            component-wise multiply (temp float)
+0:145              add (temp float)
+0:145                'uf' (uniform float)
+0:145                'uf' (uniform float)
+0:145              'uf' (uniform float)
+0:145            'uf' (uniform float)
+0:145          'uf' (uniform float)
+0:147      add second child into first child (temp float)
+0:147        'f' (temp float)
+0:147        length (global float)
+0:147          'v' (temp 4-component vector of float)
+0:148      add second child into first child (temp float)
+0:148        'f' (temp float)
+0:148        distance (global float)
+0:148          'v' (temp 4-component vector of float)
+0:148          'v' (temp 4-component vector of float)
+0:149      add second child into first child (temp float)
+0:149        'f' (temp float)
+0:149        dot-product (global float)
+0:149          'v' (temp 4-component vector of float)
+0:149          'v' (temp 4-component vector of float)
+0:150      add second child into first child (temp float)
+0:150        'f' (temp float)
+0:150        dot-product (global float)
+0:150          'f' (temp float)
+0:150          'uf' (uniform float)
+0:151      add second child into first child (temp float)
+0:151        'f' (temp float)
+0:151        direct index (temp float)
+0:151          cross-product (global 3-component vector of float)
+0:151            vector swizzle (temp 3-component vector of float)
+0:151              'v' (temp 4-component vector of float)
+0:151              Sequence
+0:151                Constant:
+0:151                  0 (const int)
+0:151                Constant:
+0:151                  1 (const int)
+0:151                Constant:
+0:151                  2 (const int)
+0:151            vector swizzle (temp 3-component vector of float)
+0:151              'v' (temp 4-component vector of float)
+0:151              Sequence
+0:151                Constant:
+0:151                  0 (const int)
+0:151                Constant:
+0:151                  1 (const int)
+0:151                Constant:
+0:151                  2 (const int)
+0:151          Constant:
+0:151            0 (const int)
+0:153      Test condition and select (temp void)
+0:153        Condition
+0:153        logical-or (temp bool)
+0:153          Compare Equal (temp bool)
+0:153            'f' (temp float)
+0:153            'uf' (uniform float)
+0:153          logical-and (temp bool)
+0:153            Compare Not Equal (temp bool)
+0:153              'f' (temp float)
+0:153              'uf' (uniform float)
+0:153            Compare Not Equal (temp bool)
+0:153              'f' (temp float)
+0:153              Constant:
+0:153                2.000000
+0:153        true case
+0:154        Pre-Increment (temp float)
+0:154          'f' (temp float)
+0:156      and second child into first child (temp int)
+0:156        'i' (temp int)
+0:156        'ui' (uniform int)
+0:157      or second child into first child (temp int)
+0:157        'i' (temp int)
+0:157        Constant:
+0:157          66 (const int)
+0:158      exclusive or second child into first child (temp int)
+0:158        'i' (temp int)
+0:158        'ui' (uniform int)
+0:159      mod second child into first child (temp int)
+0:159        'i' (temp int)
+0:159        Constant:
+0:159          17 (const int)
+0:160      right shift second child into first child (temp int)
+0:160        'i' (temp int)
+0:160        Constant:
+0:160          2 (const int)
+0:161      left shift second child into first child (temp int)
+0:161        'i' (temp int)
+0:161        'ui' (uniform int)
+0:162      move second child to first child (temp int)
+0:162        'i' (temp int)
+0:162        Bitwise not (temp int)
+0:162          'i' (temp int)
+0:163      move second child to first child (temp bool)
+0:163        'b' (temp bool)
+0:163        Negate conditional (temp bool)
+0:163          'b' (temp bool)
+0:165      move second child to first child (temp 4-component vector of float)
+0:165        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:165        Test condition and select (temp 4-component vector of float)
+0:165          Condition
+0:165          'b' (temp bool)
+0:165          true case
+0:165          add (temp 4-component vector of float)
+0:165            add (temp 4-component vector of float)
+0:165              Construct vec4 (temp 4-component vector of float)
+0:165                Convert int to float (temp float)
+0:165                  'i' (temp int)
+0:165              Construct vec4 (temp 4-component vector of float)
+0:165                'f' (temp float)
+0:165            'v' (temp 4-component vector of float)
+0:165          false case
+0:165          'v' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'uiv4' (uniform 4-component vector of int)
+0:?     'uv4' (uniform 4-component vector of float)
+0:?     'ub' (uniform bool)
+0:?     'ub41' (uniform 4-component vector of bool)
+0:?     'ub42' (uniform 4-component vector of bool)
+0:?     'uf' (uniform float)
+0:?     'ui' (uniform int)
+
diff --git a/Test/baseResults/aggOps.frag.out b/Test/baseResults/aggOps.frag.out
index 9f26d3b..7a60fbc 100644
--- a/Test/baseResults/aggOps.frag.out
+++ b/Test/baseResults/aggOps.frag.out
@@ -1,298 +1,298 @@
-aggOps.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:23  Function Definition: main( (global void)

-0:23    Function Parameters: 

-0:?     Sequence

-0:27      move second child to first child (temp 3-element array of structure{global int i, global float f})

-0:27        'a' (temp 3-element array of structure{global int i, global float f})

-0:27        Construct structure (temp 3-element array of structure{global int i, global float f})

-0:27          Construct structure (temp structure{global int i, global float f})

-0:27            Convert float to int (temp int)

-0:27              direct index (temp float)

-0:27                'u' (smooth in 4-component vector of float)

-0:27                Constant:

-0:27                  0 (const int)

-0:27            direct index (temp float)

-0:27              'u' (smooth in 4-component vector of float)

-0:27              Constant:

-0:27                1 (const int)

-0:27          Construct structure (temp structure{global int i, global float f})

-0:27            Convert float to int (temp int)

-0:27              direct index (temp float)

-0:27                'u' (smooth in 4-component vector of float)

-0:27                Constant:

-0:27                  2 (const int)

-0:27            direct index (temp float)

-0:27              'u' (smooth in 4-component vector of float)

-0:27              Constant:

-0:27                3 (const int)

-0:27          Constant:

-0:27            14 (const int)

-0:27            14.000000

-0:28      move second child to first child (temp 3-element array of structure{global int i, global float f})

-0:28        'b' (temp 3-element array of structure{global int i, global float f})

-0:28        Construct structure (temp 3-element array of structure{global int i, global float f})

-0:28          Constant:

-0:28            17 (const int)

-0:28            17.000000

-0:28          Construct structure (temp structure{global int i, global float f})

-0:28            Convert float to int (temp int)

-0:28              direct index (temp float)

-0:28                'w' (smooth in 4-component vector of float)

-0:28                Constant:

-0:28                  0 (const int)

-0:28            direct index (temp float)

-0:28              'w' (smooth in 4-component vector of float)

-0:28              Constant:

-0:28                1 (const int)

-0:28          Construct structure (temp structure{global int i, global float f})

-0:28            Convert float to int (temp int)

-0:28              direct index (temp float)

-0:28                'w' (smooth in 4-component vector of float)

-0:28                Constant:

-0:28                  2 (const int)

-0:28            direct index (temp float)

-0:28              'w' (smooth in 4-component vector of float)

-0:28              Constant:

-0:28                3 (const int)

-0:30      Test condition and select (temp void)

-0:30        Condition

-0:30        Compare Equal (temp bool)

-0:30          'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:30          'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:30        true case

-0:31        move second child to first child (temp 4-component vector of float)

-0:31          'v' (temp 4-component vector of float)

-0:31          texture (global 4-component vector of float)

-0:31            'sampler' (uniform sampler2D)

-0:31            'coord' (smooth in 2-component vector of float)

-0:30        false case

-0:33        move second child to first child (temp 4-component vector of float)

-0:33          'v' (temp 4-component vector of float)

-0:33          texture (global 4-component vector of float)

-0:33            'sampler' (uniform sampler2D)

-0:33            vector-scale (temp 2-component vector of float)

-0:33              Constant:

-0:33                2.000000

-0:33              'coord' (smooth in 2-component vector of float)

-0:35      Test condition and select (temp void)

-0:35        Condition

-0:35        Compare Equal (temp bool)

-0:35          'u' (smooth in 4-component vector of float)

-0:35          'v' (temp 4-component vector of float)

-0:35        true case

-0:36        vector scale second child into first child (temp 4-component vector of float)

-0:36          'v' (temp 4-component vector of float)

-0:36          Constant:

-0:36            3.000000

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Not Equal (temp bool)

-0:38          'u' (smooth in 4-component vector of float)

-0:38          'v' (temp 4-component vector of float)

-0:38        true case

-0:39        vector scale second child into first child (temp 4-component vector of float)

-0:39          'v' (temp 4-component vector of float)

-0:39          Constant:

-0:39            4.000000

-0:41      Test condition and select (temp void)

-0:41        Condition

-0:41        Compare Equal (temp bool)

-0:41          'coord' (smooth in 2-component vector of float)

-0:41          vector swizzle (temp 2-component vector of float)

-0:41            'v' (temp 4-component vector of float)

-0:41            Sequence

-0:41              Constant:

-0:41                1 (const int)

-0:41              Constant:

-0:41                3 (const int)

-0:41        true case

-0:42        vector scale second child into first child (temp 4-component vector of float)

-0:42          'v' (temp 4-component vector of float)

-0:42          Constant:

-0:42            5.000000

-0:44      Test condition and select (temp void)

-0:44        Condition

-0:44        Compare Equal (temp bool)

-0:44          'a' (temp 3-element array of structure{global int i, global float f})

-0:44          'b' (temp 3-element array of structure{global int i, global float f})

-0:44        true case

-0:45        vector scale second child into first child (temp 4-component vector of float)

-0:45          'v' (temp 4-component vector of float)

-0:45          Constant:

-0:45            6.000000

-0:47      Test condition and select (temp void)

-0:47        Condition

-0:47        Compare Not Equal (temp bool)

-0:47          'a' (temp 3-element array of structure{global int i, global float f})

-0:47          'b' (temp 3-element array of structure{global int i, global float f})

-0:47        true case

-0:48        vector scale second child into first child (temp 4-component vector of float)

-0:48          'v' (temp 4-component vector of float)

-0:48          Constant:

-0:48            7.000000

-0:50      move second child to first child (temp 4-component vector of float)

-0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:50        'v' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'u' (smooth in 4-component vector of float)

-0:?     'w' (smooth in 4-component vector of float)

-0:?     'foo1' (uniform structure{global int i, global float f})

-0:?     'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:23  Function Definition: main( (global void)

-0:23    Function Parameters: 

-0:?     Sequence

-0:27      move second child to first child (temp 3-element array of structure{global int i, global float f})

-0:27        'a' (temp 3-element array of structure{global int i, global float f})

-0:27        Construct structure (temp 3-element array of structure{global int i, global float f})

-0:27          Construct structure (temp structure{global int i, global float f})

-0:27            Convert float to int (temp int)

-0:27              direct index (temp float)

-0:27                'u' (smooth in 4-component vector of float)

-0:27                Constant:

-0:27                  0 (const int)

-0:27            direct index (temp float)

-0:27              'u' (smooth in 4-component vector of float)

-0:27              Constant:

-0:27                1 (const int)

-0:27          Construct structure (temp structure{global int i, global float f})

-0:27            Convert float to int (temp int)

-0:27              direct index (temp float)

-0:27                'u' (smooth in 4-component vector of float)

-0:27                Constant:

-0:27                  2 (const int)

-0:27            direct index (temp float)

-0:27              'u' (smooth in 4-component vector of float)

-0:27              Constant:

-0:27                3 (const int)

-0:27          Constant:

-0:27            14 (const int)

-0:27            14.000000

-0:28      move second child to first child (temp 3-element array of structure{global int i, global float f})

-0:28        'b' (temp 3-element array of structure{global int i, global float f})

-0:28        Construct structure (temp 3-element array of structure{global int i, global float f})

-0:28          Constant:

-0:28            17 (const int)

-0:28            17.000000

-0:28          Construct structure (temp structure{global int i, global float f})

-0:28            Convert float to int (temp int)

-0:28              direct index (temp float)

-0:28                'w' (smooth in 4-component vector of float)

-0:28                Constant:

-0:28                  0 (const int)

-0:28            direct index (temp float)

-0:28              'w' (smooth in 4-component vector of float)

-0:28              Constant:

-0:28                1 (const int)

-0:28          Construct structure (temp structure{global int i, global float f})

-0:28            Convert float to int (temp int)

-0:28              direct index (temp float)

-0:28                'w' (smooth in 4-component vector of float)

-0:28                Constant:

-0:28                  2 (const int)

-0:28            direct index (temp float)

-0:28              'w' (smooth in 4-component vector of float)

-0:28              Constant:

-0:28                3 (const int)

-0:30      Test condition and select (temp void)

-0:30        Condition

-0:30        Compare Equal (temp bool)

-0:30          'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:30          'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:30        true case

-0:31        move second child to first child (temp 4-component vector of float)

-0:31          'v' (temp 4-component vector of float)

-0:31          texture (global 4-component vector of float)

-0:31            'sampler' (uniform sampler2D)

-0:31            'coord' (smooth in 2-component vector of float)

-0:30        false case

-0:33        move second child to first child (temp 4-component vector of float)

-0:33          'v' (temp 4-component vector of float)

-0:33          texture (global 4-component vector of float)

-0:33            'sampler' (uniform sampler2D)

-0:33            vector-scale (temp 2-component vector of float)

-0:33              Constant:

-0:33                2.000000

-0:33              'coord' (smooth in 2-component vector of float)

-0:35      Test condition and select (temp void)

-0:35        Condition

-0:35        Compare Equal (temp bool)

-0:35          'u' (smooth in 4-component vector of float)

-0:35          'v' (temp 4-component vector of float)

-0:35        true case

-0:36        vector scale second child into first child (temp 4-component vector of float)

-0:36          'v' (temp 4-component vector of float)

-0:36          Constant:

-0:36            3.000000

-0:38      Test condition and select (temp void)

-0:38        Condition

-0:38        Compare Not Equal (temp bool)

-0:38          'u' (smooth in 4-component vector of float)

-0:38          'v' (temp 4-component vector of float)

-0:38        true case

-0:39        vector scale second child into first child (temp 4-component vector of float)

-0:39          'v' (temp 4-component vector of float)

-0:39          Constant:

-0:39            4.000000

-0:41      Test condition and select (temp void)

-0:41        Condition

-0:41        Compare Equal (temp bool)

-0:41          'coord' (smooth in 2-component vector of float)

-0:41          vector swizzle (temp 2-component vector of float)

-0:41            'v' (temp 4-component vector of float)

-0:41            Sequence

-0:41              Constant:

-0:41                1 (const int)

-0:41              Constant:

-0:41                3 (const int)

-0:41        true case

-0:42        vector scale second child into first child (temp 4-component vector of float)

-0:42          'v' (temp 4-component vector of float)

-0:42          Constant:

-0:42            5.000000

-0:44      Test condition and select (temp void)

-0:44        Condition

-0:44        Compare Equal (temp bool)

-0:44          'a' (temp 3-element array of structure{global int i, global float f})

-0:44          'b' (temp 3-element array of structure{global int i, global float f})

-0:44        true case

-0:45        vector scale second child into first child (temp 4-component vector of float)

-0:45          'v' (temp 4-component vector of float)

-0:45          Constant:

-0:45            6.000000

-0:47      Test condition and select (temp void)

-0:47        Condition

-0:47        Compare Not Equal (temp bool)

-0:47          'a' (temp 3-element array of structure{global int i, global float f})

-0:47          'b' (temp 3-element array of structure{global int i, global float f})

-0:47        true case

-0:48        vector scale second child into first child (temp 4-component vector of float)

-0:48          'v' (temp 4-component vector of float)

-0:48          Constant:

-0:48            7.000000

-0:50      move second child to first child (temp 4-component vector of float)

-0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:50        'v' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'u' (smooth in 4-component vector of float)

-0:?     'w' (smooth in 4-component vector of float)

-0:?     'foo1' (uniform structure{global int i, global float f})

-0:?     'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-

+aggOps.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:23  Function Definition: main( (global void)
+0:23    Function Parameters: 
+0:?     Sequence
+0:27      move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:27        'a' (temp 3-element array of structure{global int i, global float f})
+0:27        Construct structure (temp 3-element array of structure{global int i, global float f})
+0:27          Construct structure (temp structure{global int i, global float f})
+0:27            Convert float to int (temp int)
+0:27              direct index (temp float)
+0:27                'u' (smooth in 4-component vector of float)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            direct index (temp float)
+0:27              'u' (smooth in 4-component vector of float)
+0:27              Constant:
+0:27                1 (const int)
+0:27          Construct structure (temp structure{global int i, global float f})
+0:27            Convert float to int (temp int)
+0:27              direct index (temp float)
+0:27                'u' (smooth in 4-component vector of float)
+0:27                Constant:
+0:27                  2 (const int)
+0:27            direct index (temp float)
+0:27              'u' (smooth in 4-component vector of float)
+0:27              Constant:
+0:27                3 (const int)
+0:27          Constant:
+0:27            14 (const int)
+0:27            14.000000
+0:28      move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:28        'b' (temp 3-element array of structure{global int i, global float f})
+0:28        Construct structure (temp 3-element array of structure{global int i, global float f})
+0:28          Constant:
+0:28            17 (const int)
+0:28            17.000000
+0:28          Construct structure (temp structure{global int i, global float f})
+0:28            Convert float to int (temp int)
+0:28              direct index (temp float)
+0:28                'w' (smooth in 4-component vector of float)
+0:28                Constant:
+0:28                  0 (const int)
+0:28            direct index (temp float)
+0:28              'w' (smooth in 4-component vector of float)
+0:28              Constant:
+0:28                1 (const int)
+0:28          Construct structure (temp structure{global int i, global float f})
+0:28            Convert float to int (temp int)
+0:28              direct index (temp float)
+0:28                'w' (smooth in 4-component vector of float)
+0:28                Constant:
+0:28                  2 (const int)
+0:28            direct index (temp float)
+0:28              'w' (smooth in 4-component vector of float)
+0:28              Constant:
+0:28                3 (const int)
+0:30      Test condition and select (temp void)
+0:30        Condition
+0:30        Compare Equal (temp bool)
+0:30          'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30          'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30        true case
+0:31        move second child to first child (temp 4-component vector of float)
+0:31          'v' (temp 4-component vector of float)
+0:31          texture (global 4-component vector of float)
+0:31            'sampler' (uniform sampler2D)
+0:31            'coord' (smooth in 2-component vector of float)
+0:30        false case
+0:33        move second child to first child (temp 4-component vector of float)
+0:33          'v' (temp 4-component vector of float)
+0:33          texture (global 4-component vector of float)
+0:33            'sampler' (uniform sampler2D)
+0:33            vector-scale (temp 2-component vector of float)
+0:33              Constant:
+0:33                2.000000
+0:33              'coord' (smooth in 2-component vector of float)
+0:35      Test condition and select (temp void)
+0:35        Condition
+0:35        Compare Equal (temp bool)
+0:35          'u' (smooth in 4-component vector of float)
+0:35          'v' (temp 4-component vector of float)
+0:35        true case
+0:36        vector scale second child into first child (temp 4-component vector of float)
+0:36          'v' (temp 4-component vector of float)
+0:36          Constant:
+0:36            3.000000
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Not Equal (temp bool)
+0:38          'u' (smooth in 4-component vector of float)
+0:38          'v' (temp 4-component vector of float)
+0:38        true case
+0:39        vector scale second child into first child (temp 4-component vector of float)
+0:39          'v' (temp 4-component vector of float)
+0:39          Constant:
+0:39            4.000000
+0:41      Test condition and select (temp void)
+0:41        Condition
+0:41        Compare Equal (temp bool)
+0:41          'coord' (smooth in 2-component vector of float)
+0:41          vector swizzle (temp 2-component vector of float)
+0:41            'v' (temp 4-component vector of float)
+0:41            Sequence
+0:41              Constant:
+0:41                1 (const int)
+0:41              Constant:
+0:41                3 (const int)
+0:41        true case
+0:42        vector scale second child into first child (temp 4-component vector of float)
+0:42          'v' (temp 4-component vector of float)
+0:42          Constant:
+0:42            5.000000
+0:44      Test condition and select (temp void)
+0:44        Condition
+0:44        Compare Equal (temp bool)
+0:44          'a' (temp 3-element array of structure{global int i, global float f})
+0:44          'b' (temp 3-element array of structure{global int i, global float f})
+0:44        true case
+0:45        vector scale second child into first child (temp 4-component vector of float)
+0:45          'v' (temp 4-component vector of float)
+0:45          Constant:
+0:45            6.000000
+0:47      Test condition and select (temp void)
+0:47        Condition
+0:47        Compare Not Equal (temp bool)
+0:47          'a' (temp 3-element array of structure{global int i, global float f})
+0:47          'b' (temp 3-element array of structure{global int i, global float f})
+0:47        true case
+0:48        vector scale second child into first child (temp 4-component vector of float)
+0:48          'v' (temp 4-component vector of float)
+0:48          Constant:
+0:48            7.000000
+0:50      move second child to first child (temp 4-component vector of float)
+0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:50        'v' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'u' (smooth in 4-component vector of float)
+0:?     'w' (smooth in 4-component vector of float)
+0:?     'foo1' (uniform structure{global int i, global float f})
+0:?     'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:23  Function Definition: main( (global void)
+0:23    Function Parameters: 
+0:?     Sequence
+0:27      move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:27        'a' (temp 3-element array of structure{global int i, global float f})
+0:27        Construct structure (temp 3-element array of structure{global int i, global float f})
+0:27          Construct structure (temp structure{global int i, global float f})
+0:27            Convert float to int (temp int)
+0:27              direct index (temp float)
+0:27                'u' (smooth in 4-component vector of float)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            direct index (temp float)
+0:27              'u' (smooth in 4-component vector of float)
+0:27              Constant:
+0:27                1 (const int)
+0:27          Construct structure (temp structure{global int i, global float f})
+0:27            Convert float to int (temp int)
+0:27              direct index (temp float)
+0:27                'u' (smooth in 4-component vector of float)
+0:27                Constant:
+0:27                  2 (const int)
+0:27            direct index (temp float)
+0:27              'u' (smooth in 4-component vector of float)
+0:27              Constant:
+0:27                3 (const int)
+0:27          Constant:
+0:27            14 (const int)
+0:27            14.000000
+0:28      move second child to first child (temp 3-element array of structure{global int i, global float f})
+0:28        'b' (temp 3-element array of structure{global int i, global float f})
+0:28        Construct structure (temp 3-element array of structure{global int i, global float f})
+0:28          Constant:
+0:28            17 (const int)
+0:28            17.000000
+0:28          Construct structure (temp structure{global int i, global float f})
+0:28            Convert float to int (temp int)
+0:28              direct index (temp float)
+0:28                'w' (smooth in 4-component vector of float)
+0:28                Constant:
+0:28                  0 (const int)
+0:28            direct index (temp float)
+0:28              'w' (smooth in 4-component vector of float)
+0:28              Constant:
+0:28                1 (const int)
+0:28          Construct structure (temp structure{global int i, global float f})
+0:28            Convert float to int (temp int)
+0:28              direct index (temp float)
+0:28                'w' (smooth in 4-component vector of float)
+0:28                Constant:
+0:28                  2 (const int)
+0:28            direct index (temp float)
+0:28              'w' (smooth in 4-component vector of float)
+0:28              Constant:
+0:28                3 (const int)
+0:30      Test condition and select (temp void)
+0:30        Condition
+0:30        Compare Equal (temp bool)
+0:30          'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30          'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:30        true case
+0:31        move second child to first child (temp 4-component vector of float)
+0:31          'v' (temp 4-component vector of float)
+0:31          texture (global 4-component vector of float)
+0:31            'sampler' (uniform sampler2D)
+0:31            'coord' (smooth in 2-component vector of float)
+0:30        false case
+0:33        move second child to first child (temp 4-component vector of float)
+0:33          'v' (temp 4-component vector of float)
+0:33          texture (global 4-component vector of float)
+0:33            'sampler' (uniform sampler2D)
+0:33            vector-scale (temp 2-component vector of float)
+0:33              Constant:
+0:33                2.000000
+0:33              'coord' (smooth in 2-component vector of float)
+0:35      Test condition and select (temp void)
+0:35        Condition
+0:35        Compare Equal (temp bool)
+0:35          'u' (smooth in 4-component vector of float)
+0:35          'v' (temp 4-component vector of float)
+0:35        true case
+0:36        vector scale second child into first child (temp 4-component vector of float)
+0:36          'v' (temp 4-component vector of float)
+0:36          Constant:
+0:36            3.000000
+0:38      Test condition and select (temp void)
+0:38        Condition
+0:38        Compare Not Equal (temp bool)
+0:38          'u' (smooth in 4-component vector of float)
+0:38          'v' (temp 4-component vector of float)
+0:38        true case
+0:39        vector scale second child into first child (temp 4-component vector of float)
+0:39          'v' (temp 4-component vector of float)
+0:39          Constant:
+0:39            4.000000
+0:41      Test condition and select (temp void)
+0:41        Condition
+0:41        Compare Equal (temp bool)
+0:41          'coord' (smooth in 2-component vector of float)
+0:41          vector swizzle (temp 2-component vector of float)
+0:41            'v' (temp 4-component vector of float)
+0:41            Sequence
+0:41              Constant:
+0:41                1 (const int)
+0:41              Constant:
+0:41                3 (const int)
+0:41        true case
+0:42        vector scale second child into first child (temp 4-component vector of float)
+0:42          'v' (temp 4-component vector of float)
+0:42          Constant:
+0:42            5.000000
+0:44      Test condition and select (temp void)
+0:44        Condition
+0:44        Compare Equal (temp bool)
+0:44          'a' (temp 3-element array of structure{global int i, global float f})
+0:44          'b' (temp 3-element array of structure{global int i, global float f})
+0:44        true case
+0:45        vector scale second child into first child (temp 4-component vector of float)
+0:45          'v' (temp 4-component vector of float)
+0:45          Constant:
+0:45            6.000000
+0:47      Test condition and select (temp void)
+0:47        Condition
+0:47        Compare Not Equal (temp bool)
+0:47          'a' (temp 3-element array of structure{global int i, global float f})
+0:47          'b' (temp 3-element array of structure{global int i, global float f})
+0:47        true case
+0:48        vector scale second child into first child (temp 4-component vector of float)
+0:48          'v' (temp 4-component vector of float)
+0:48          Constant:
+0:48            7.000000
+0:50      move second child to first child (temp 4-component vector of float)
+0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:50        'v' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'u' (smooth in 4-component vector of float)
+0:?     'w' (smooth in 4-component vector of float)
+0:?     'foo1' (uniform structure{global int i, global float f})
+0:?     'foo2a' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'foo2b' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+
diff --git a/Test/baseResults/always-discard.frag.out b/Test/baseResults/always-discard.frag.out
index 709c056..e1eeae3 100644
--- a/Test/baseResults/always-discard.frag.out
+++ b/Test/baseResults/always-discard.frag.out
@@ -1,239 +1,239 @@
-always-discard.frag

-Shader version: 110

-0:? Sequence

-0:4  Function Definition: main( (global void)

-0:4    Function Parameters: 

-0:6    Sequence

-0:6      Sequence

-0:6        move second child to first child (temp 4-component vector of float)

-0:6          'white' (temp 4-component vector of float)

-0:6          Constant:

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:7      Sequence

-0:7        move second child to first child (temp 4-component vector of float)

-0:7          'black' (temp 4-component vector of float)

-0:7          Constant:

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'color' (temp 4-component vector of float)

-0:8          'white' (temp 4-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'x' (temp float)

-0:11          subtract (temp float)

-0:11            component-wise multiply (temp float)

-0:11              direct index (temp float)

-0:11                'tex_coord' (smooth in 2-component vector of float)

-0:11                Constant:

-0:11                  0 (const int)

-0:11              Constant:

-0:11                2.000000

-0:11            Constant:

-0:11              1.000000

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'y' (temp float)

-0:12          subtract (temp float)

-0:12            component-wise multiply (temp float)

-0:12              direct index (temp float)

-0:12                'tex_coord' (smooth in 2-component vector of float)

-0:12                Constant:

-0:12                  1 (const int)

-0:12              Constant:

-0:12                2.000000

-0:12            Constant:

-0:12              1.000000

-0:14      Sequence

-0:14        move second child to first child (temp float)

-0:14          'radius' (temp float)

-0:14          sqrt (global float)

-0:14            add (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'x' (temp float)

-0:14                'x' (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'y' (temp float)

-0:14                'y' (temp float)

-0:15      Test condition and select (temp void)

-0:15        Condition

-0:15        Compare Greater Than (temp bool)

-0:15          'radius' (temp float)

-0:15          Constant:

-0:15            1.000000

-0:15        true case

-0:16        Sequence

-0:16          Test condition and select (temp void)

-0:16            Condition

-0:16            Compare Greater Than (temp bool)

-0:16              'radius' (temp float)

-0:16              Constant:

-0:16                1.100000

-0:16            true case

-0:17            Sequence

-0:17              Pre-Increment (temp 4-component vector of float)

-0:17                'color' (temp 4-component vector of float)

-0:20          move second child to first child (temp 4-component vector of float)

-0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:20            'color' (temp 4-component vector of float)

-0:22          Test condition and select (temp void)

-0:22            Condition

-0:22            Compare Greater Than (temp bool)

-0:22              'radius' (temp float)

-0:22              Constant:

-0:22                1.200000

-0:22            true case

-0:23            Sequence

-0:23              Pre-Increment (temp 4-component vector of float)

-0:23                'color' (temp 4-component vector of float)

-0:28      Branch: Kill

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Greater Than or Equal (temp bool)

-0:31          'radius' (temp float)

-0:31          Constant:

-0:31            0.750000

-0:31        true case

-0:32        subtract second child into first child (temp 4-component vector of float)

-0:32          'color' (temp 4-component vector of float)

-0:32          Absolute value (global float)

-0:32            divide (temp float)

-0:32              pow (global float)

-0:32                'radius' (temp float)

-0:32                Constant:

-0:32                  16.000000

-0:32              Constant:

-0:32                2.000000

-0:34      move second child to first child (temp 4-component vector of float)

-0:34        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:34        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex_coord' (smooth in 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:4  Function Definition: main( (global void)

-0:4    Function Parameters: 

-0:6    Sequence

-0:6      Sequence

-0:6        move second child to first child (temp 4-component vector of float)

-0:6          'white' (temp 4-component vector of float)

-0:6          Constant:

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:7      Sequence

-0:7        move second child to first child (temp 4-component vector of float)

-0:7          'black' (temp 4-component vector of float)

-0:7          Constant:

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'color' (temp 4-component vector of float)

-0:8          'white' (temp 4-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'x' (temp float)

-0:11          subtract (temp float)

-0:11            component-wise multiply (temp float)

-0:11              direct index (temp float)

-0:11                'tex_coord' (smooth in 2-component vector of float)

-0:11                Constant:

-0:11                  0 (const int)

-0:11              Constant:

-0:11                2.000000

-0:11            Constant:

-0:11              1.000000

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'y' (temp float)

-0:12          subtract (temp float)

-0:12            component-wise multiply (temp float)

-0:12              direct index (temp float)

-0:12                'tex_coord' (smooth in 2-component vector of float)

-0:12                Constant:

-0:12                  1 (const int)

-0:12              Constant:

-0:12                2.000000

-0:12            Constant:

-0:12              1.000000

-0:14      Sequence

-0:14        move second child to first child (temp float)

-0:14          'radius' (temp float)

-0:14          sqrt (global float)

-0:14            add (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'x' (temp float)

-0:14                'x' (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'y' (temp float)

-0:14                'y' (temp float)

-0:15      Test condition and select (temp void)

-0:15        Condition

-0:15        Compare Greater Than (temp bool)

-0:15          'radius' (temp float)

-0:15          Constant:

-0:15            1.000000

-0:15        true case

-0:16        Sequence

-0:16          Test condition and select (temp void)

-0:16            Condition

-0:16            Compare Greater Than (temp bool)

-0:16              'radius' (temp float)

-0:16              Constant:

-0:16                1.100000

-0:16            true case

-0:17            Sequence

-0:17              Pre-Increment (temp 4-component vector of float)

-0:17                'color' (temp 4-component vector of float)

-0:20          move second child to first child (temp 4-component vector of float)

-0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:20            'color' (temp 4-component vector of float)

-0:22          Test condition and select (temp void)

-0:22            Condition

-0:22            Compare Greater Than (temp bool)

-0:22              'radius' (temp float)

-0:22              Constant:

-0:22                1.200000

-0:22            true case

-0:23            Sequence

-0:23              Pre-Increment (temp 4-component vector of float)

-0:23                'color' (temp 4-component vector of float)

-0:28      Branch: Kill

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Greater Than or Equal (temp bool)

-0:31          'radius' (temp float)

-0:31          Constant:

-0:31            0.750000

-0:31        true case

-0:32        subtract second child into first child (temp 4-component vector of float)

-0:32          'color' (temp 4-component vector of float)

-0:32          Absolute value (global float)

-0:32            divide (temp float)

-0:32              pow (global float)

-0:32                'radius' (temp float)

-0:32                Constant:

-0:32                  16.000000

-0:32              Constant:

-0:32                2.000000

-0:34      move second child to first child (temp 4-component vector of float)

-0:34        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:34        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex_coord' (smooth in 2-component vector of float)

-

+always-discard.frag
+Shader version: 110
+0:? Sequence
+0:4  Function Definition: main( (global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child (temp 4-component vector of float)
+0:6          'white' (temp 4-component vector of float)
+0:6          Constant:
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:7      Sequence
+0:7        move second child to first child (temp 4-component vector of float)
+0:7          'black' (temp 4-component vector of float)
+0:7          Constant:
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'color' (temp 4-component vector of float)
+0:8          'white' (temp 4-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'x' (temp float)
+0:11          subtract (temp float)
+0:11            component-wise multiply (temp float)
+0:11              direct index (temp float)
+0:11                'tex_coord' (smooth in 2-component vector of float)
+0:11                Constant:
+0:11                  0 (const int)
+0:11              Constant:
+0:11                2.000000
+0:11            Constant:
+0:11              1.000000
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'y' (temp float)
+0:12          subtract (temp float)
+0:12            component-wise multiply (temp float)
+0:12              direct index (temp float)
+0:12                'tex_coord' (smooth in 2-component vector of float)
+0:12                Constant:
+0:12                  1 (const int)
+0:12              Constant:
+0:12                2.000000
+0:12            Constant:
+0:12              1.000000
+0:14      Sequence
+0:14        move second child to first child (temp float)
+0:14          'radius' (temp float)
+0:14          sqrt (global float)
+0:14            add (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'x' (temp float)
+0:14                'x' (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'y' (temp float)
+0:14                'y' (temp float)
+0:15      Test condition and select (temp void)
+0:15        Condition
+0:15        Compare Greater Than (temp bool)
+0:15          'radius' (temp float)
+0:15          Constant:
+0:15            1.000000
+0:15        true case
+0:16        Sequence
+0:16          Test condition and select (temp void)
+0:16            Condition
+0:16            Compare Greater Than (temp bool)
+0:16              'radius' (temp float)
+0:16              Constant:
+0:16                1.100000
+0:16            true case
+0:17            Sequence
+0:17              Pre-Increment (temp 4-component vector of float)
+0:17                'color' (temp 4-component vector of float)
+0:20          move second child to first child (temp 4-component vector of float)
+0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20            'color' (temp 4-component vector of float)
+0:22          Test condition and select (temp void)
+0:22            Condition
+0:22            Compare Greater Than (temp bool)
+0:22              'radius' (temp float)
+0:22              Constant:
+0:22                1.200000
+0:22            true case
+0:23            Sequence
+0:23              Pre-Increment (temp 4-component vector of float)
+0:23                'color' (temp 4-component vector of float)
+0:28      Branch: Kill
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Greater Than or Equal (temp bool)
+0:31          'radius' (temp float)
+0:31          Constant:
+0:31            0.750000
+0:31        true case
+0:32        subtract second child into first child (temp 4-component vector of float)
+0:32          'color' (temp 4-component vector of float)
+0:32          Absolute value (global float)
+0:32            divide (temp float)
+0:32              pow (global float)
+0:32                'radius' (temp float)
+0:32                Constant:
+0:32                  16.000000
+0:32              Constant:
+0:32                2.000000
+0:34      move second child to first child (temp 4-component vector of float)
+0:34        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex_coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:4  Function Definition: main( (global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child (temp 4-component vector of float)
+0:6          'white' (temp 4-component vector of float)
+0:6          Constant:
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:7      Sequence
+0:7        move second child to first child (temp 4-component vector of float)
+0:7          'black' (temp 4-component vector of float)
+0:7          Constant:
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'color' (temp 4-component vector of float)
+0:8          'white' (temp 4-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'x' (temp float)
+0:11          subtract (temp float)
+0:11            component-wise multiply (temp float)
+0:11              direct index (temp float)
+0:11                'tex_coord' (smooth in 2-component vector of float)
+0:11                Constant:
+0:11                  0 (const int)
+0:11              Constant:
+0:11                2.000000
+0:11            Constant:
+0:11              1.000000
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'y' (temp float)
+0:12          subtract (temp float)
+0:12            component-wise multiply (temp float)
+0:12              direct index (temp float)
+0:12                'tex_coord' (smooth in 2-component vector of float)
+0:12                Constant:
+0:12                  1 (const int)
+0:12              Constant:
+0:12                2.000000
+0:12            Constant:
+0:12              1.000000
+0:14      Sequence
+0:14        move second child to first child (temp float)
+0:14          'radius' (temp float)
+0:14          sqrt (global float)
+0:14            add (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'x' (temp float)
+0:14                'x' (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'y' (temp float)
+0:14                'y' (temp float)
+0:15      Test condition and select (temp void)
+0:15        Condition
+0:15        Compare Greater Than (temp bool)
+0:15          'radius' (temp float)
+0:15          Constant:
+0:15            1.000000
+0:15        true case
+0:16        Sequence
+0:16          Test condition and select (temp void)
+0:16            Condition
+0:16            Compare Greater Than (temp bool)
+0:16              'radius' (temp float)
+0:16              Constant:
+0:16                1.100000
+0:16            true case
+0:17            Sequence
+0:17              Pre-Increment (temp 4-component vector of float)
+0:17                'color' (temp 4-component vector of float)
+0:20          move second child to first child (temp 4-component vector of float)
+0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20            'color' (temp 4-component vector of float)
+0:22          Test condition and select (temp void)
+0:22            Condition
+0:22            Compare Greater Than (temp bool)
+0:22              'radius' (temp float)
+0:22              Constant:
+0:22                1.200000
+0:22            true case
+0:23            Sequence
+0:23              Pre-Increment (temp 4-component vector of float)
+0:23                'color' (temp 4-component vector of float)
+0:28      Branch: Kill
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Greater Than or Equal (temp bool)
+0:31          'radius' (temp float)
+0:31          Constant:
+0:31            0.750000
+0:31        true case
+0:32        subtract second child into first child (temp 4-component vector of float)
+0:32          'color' (temp 4-component vector of float)
+0:32          Absolute value (global float)
+0:32            divide (temp float)
+0:32              pow (global float)
+0:32                'radius' (temp float)
+0:32                Constant:
+0:32                  16.000000
+0:32              Constant:
+0:32                2.000000
+0:34      move second child to first child (temp 4-component vector of float)
+0:34        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex_coord' (smooth in 2-component vector of float)
+
diff --git a/Test/baseResults/always-discard2.frag.out b/Test/baseResults/always-discard2.frag.out
index 0fd1104..72f21d2 100644
--- a/Test/baseResults/always-discard2.frag.out
+++ b/Test/baseResults/always-discard2.frag.out
@@ -1,121 +1,121 @@
-always-discard2.frag

-Shader version: 110

-0:? Sequence

-0:4  Function Definition: main( (global void)

-0:4    Function Parameters: 

-0:6    Sequence

-0:6      Sequence

-0:6        move second child to first child (temp 4-component vector of float)

-0:6          'white' (temp 4-component vector of float)

-0:6          Constant:

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:7      Sequence

-0:7        move second child to first child (temp 4-component vector of float)

-0:7          'black' (temp 4-component vector of float)

-0:7          Constant:

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'color' (temp 4-component vector of float)

-0:8          'white' (temp 4-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'x' (temp float)

-0:11          subtract (temp float)

-0:11            component-wise multiply (temp float)

-0:11              direct index (temp float)

-0:11                'tex_coord' (smooth in 2-component vector of float)

-0:11                Constant:

-0:11                  0 (const int)

-0:11              Constant:

-0:11                2.000000

-0:11            Constant:

-0:11              1.000000

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'y' (temp float)

-0:12          subtract (temp float)

-0:12            component-wise multiply (temp float)

-0:12              direct index (temp float)

-0:12                'tex_coord' (smooth in 2-component vector of float)

-0:12                Constant:

-0:12                  1 (const int)

-0:12              Constant:

-0:12                2.000000

-0:12            Constant:

-0:12              1.000000

-0:14      Branch: Kill

-0:17      move second child to first child (temp 4-component vector of float)

-0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:17        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex_coord' (smooth in 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:4  Function Definition: main( (global void)

-0:4    Function Parameters: 

-0:6    Sequence

-0:6      Sequence

-0:6        move second child to first child (temp 4-component vector of float)

-0:6          'white' (temp 4-component vector of float)

-0:6          Constant:

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:7      Sequence

-0:7        move second child to first child (temp 4-component vector of float)

-0:7          'black' (temp 4-component vector of float)

-0:7          Constant:

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'color' (temp 4-component vector of float)

-0:8          'white' (temp 4-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'x' (temp float)

-0:11          subtract (temp float)

-0:11            component-wise multiply (temp float)

-0:11              direct index (temp float)

-0:11                'tex_coord' (smooth in 2-component vector of float)

-0:11                Constant:

-0:11                  0 (const int)

-0:11              Constant:

-0:11                2.000000

-0:11            Constant:

-0:11              1.000000

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'y' (temp float)

-0:12          subtract (temp float)

-0:12            component-wise multiply (temp float)

-0:12              direct index (temp float)

-0:12                'tex_coord' (smooth in 2-component vector of float)

-0:12                Constant:

-0:12                  1 (const int)

-0:12              Constant:

-0:12                2.000000

-0:12            Constant:

-0:12              1.000000

-0:14      Branch: Kill

-0:17      move second child to first child (temp 4-component vector of float)

-0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:17        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex_coord' (smooth in 2-component vector of float)

-

+always-discard2.frag
+Shader version: 110
+0:? Sequence
+0:4  Function Definition: main( (global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child (temp 4-component vector of float)
+0:6          'white' (temp 4-component vector of float)
+0:6          Constant:
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:7      Sequence
+0:7        move second child to first child (temp 4-component vector of float)
+0:7          'black' (temp 4-component vector of float)
+0:7          Constant:
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'color' (temp 4-component vector of float)
+0:8          'white' (temp 4-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'x' (temp float)
+0:11          subtract (temp float)
+0:11            component-wise multiply (temp float)
+0:11              direct index (temp float)
+0:11                'tex_coord' (smooth in 2-component vector of float)
+0:11                Constant:
+0:11                  0 (const int)
+0:11              Constant:
+0:11                2.000000
+0:11            Constant:
+0:11              1.000000
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'y' (temp float)
+0:12          subtract (temp float)
+0:12            component-wise multiply (temp float)
+0:12              direct index (temp float)
+0:12                'tex_coord' (smooth in 2-component vector of float)
+0:12                Constant:
+0:12                  1 (const int)
+0:12              Constant:
+0:12                2.000000
+0:12            Constant:
+0:12              1.000000
+0:14      Branch: Kill
+0:17      move second child to first child (temp 4-component vector of float)
+0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex_coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:4  Function Definition: main( (global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child (temp 4-component vector of float)
+0:6          'white' (temp 4-component vector of float)
+0:6          Constant:
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:7      Sequence
+0:7        move second child to first child (temp 4-component vector of float)
+0:7          'black' (temp 4-component vector of float)
+0:7          Constant:
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'color' (temp 4-component vector of float)
+0:8          'white' (temp 4-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'x' (temp float)
+0:11          subtract (temp float)
+0:11            component-wise multiply (temp float)
+0:11              direct index (temp float)
+0:11                'tex_coord' (smooth in 2-component vector of float)
+0:11                Constant:
+0:11                  0 (const int)
+0:11              Constant:
+0:11                2.000000
+0:11            Constant:
+0:11              1.000000
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'y' (temp float)
+0:12          subtract (temp float)
+0:12            component-wise multiply (temp float)
+0:12              direct index (temp float)
+0:12                'tex_coord' (smooth in 2-component vector of float)
+0:12                Constant:
+0:12                  1 (const int)
+0:12              Constant:
+0:12                2.000000
+0:12            Constant:
+0:12              1.000000
+0:14      Branch: Kill
+0:17      move second child to first child (temp 4-component vector of float)
+0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex_coord' (smooth in 2-component vector of float)
+
diff --git a/Test/baseResults/array.frag.out b/Test/baseResults/array.frag.out
index 1715ae8..8b3cf80 100644
--- a/Test/baseResults/array.frag.out
+++ b/Test/baseResults/array.frag.out
@@ -1,530 +1,530 @@
-array.frag

-ERROR: 0:21: '[' :  array index out of range '2'

-ERROR: 0:27: '[' :  array must be redeclared with a size before being indexed with a variable

-ERROR: 0:30: 'assign' :  cannot convert from 'global 4-element array of float' to 'global 5-element array of float'

-ERROR: 0:31: 'assign' :  cannot convert from 'global 4-element array of float' to 'global implicitly-sized array of float'

-ERROR: 0:33: 'foo' : no matching overloaded function found 

-ERROR: 0:42: '[' :  array index out of range '5'

-ERROR: 0:45: '[' :  array index out of range '1000'

-ERROR: 0:46: '[' :  index out of range '-1'

-ERROR: 0:52: '[' :  array index out of range '2'

-ERROR: 0:54: 'const' : non-matching or non-convertible constant type for const initializer 

-ERROR: 0:56: '=' :  cannot convert from 'const 2-element array of int' to 'temp 3-element array of int'

-ERROR: 0:57: '[]' : scalar integer expression required 

-ERROR: 0:57: '[' :  index out of range '-858993459'

-ERROR: 0:58: '[]' : scalar integer expression required 

-ERROR: 0:61: '' : array size required 

-ERROR: 0:62: '' : array size required 

-ERROR: 0:63: '' : array size required 

-ERROR: 0:66: '=' :  cannot convert from 'temp 3-component vector of float' to 'global float'

-ERROR: 0:76: 'bar' : no matching overloaded function found 

-ERROR: 0:79: '' : array size required 

-ERROR: 0:84: 'return' : type does not match, or is not convertible to, the function's return type 

-ERROR: 0:93: 'length' :  array must be declared with a size before using this method

-ERROR: 0:101: '[' :  array index out of range '5'

-ERROR: 0:104: 'constructor' : array constructor must have at least one argument 

-ERROR: 0:104: '=' :  cannot convert from 'const float' to 'global implicitly-sized array of int'

-ERROR: 0:106: 'constructor' : array argument must be sized 

-ERROR: 26 compilation errors.  No code generated.

-

-

-Shader version: 130

-ERROR: node is still EOpNull!

-0:9  Function Definition: foo(f1[5]; (global 4-element array of float)

-0:9    Function Parameters: 

-0:9      'a' (in 5-element array of float)

-0:11    Sequence

-0:11      Branch: Return with expression

-0:11        Construct float (temp 4-element array of float)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              1 (const int)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              2 (const int)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              3 (const int)

-0:14  Function Definition: bar(f1[5]; (global void)

-0:14    Function Parameters: 

-0:14      '' (in 5-element array of float)

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:21        move second child to first child (temp float)

-0:21          direct index (temp float)

-0:21            'gu' (temp 2-element array of float)

-0:21            Constant:

-0:21              2 (const int)

-0:21          Constant:

-0:21            4.000000

-0:24      move second child to first child (temp float)

-0:24        direct index (temp float)

-0:24          'gu' (global implicitly-sized array of float)

-0:24          Constant:

-0:24            2 (const int)

-0:24        Constant:

-0:24          4.000000

-0:26      move second child to first child (temp float)

-0:26        direct index (temp float)

-0:26          'gu' (global implicitly-sized array of float)

-0:26          Constant:

-0:26            3 (const int)

-0:26        Constant:

-0:26          3.000000

-0:27      move second child to first child (temp float)

-0:27        indirect index (temp float)

-0:27          'gu' (global implicitly-sized array of float)

-0:27          'a' (uniform int)

-0:27        Constant:

-0:27          5.000000

-0:29      move second child to first child (temp 4-element array of float)

-0:29        'g4' (global 4-element array of float)

-0:29        Function Call: foo(f1[5]; (global 4-element array of float)

-0:29          'g5' (global 5-element array of float)

-0:30      'g5' (global 5-element array of float)

-0:31      'gu' (global implicitly-sized array of float)

-0:33      Constant:

-0:33        0.000000

-0:34      Function Call: bar(f1[5]; (global void)

-0:34        'g5' (global 5-element array of float)

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        Compare Equal (temp bool)

-0:36          Constant:

-0:36            1.000000

-0:36            2.000000

-0:36            3.000000

-0:36            4.000000

-0:36          'g4' (global 4-element array of float)

-0:36        true case

-0:37        move second child to first child (temp float)

-0:37          direct index (temp float)

-0:37            'gu' (global implicitly-sized array of float)

-0:37            Constant:

-0:37              0 (const int)

-0:37          Constant:

-0:37            2.000000

-0:40      move second child to first child (temp float)

-0:40        direct index (temp float)

-0:40          'u' (temp 5-element array of float)

-0:40          Constant:

-0:40            2 (const int)

-0:40        Constant:

-0:40          3.000000

-0:42      move second child to first child (temp float)

-0:42        direct index (temp float)

-0:42          'u' (temp 5-element array of float)

-0:42          Constant:

-0:42            5 (const int)

-0:42        Constant:

-0:42          5.000000

-0:43      Function Call: foo(f1[5]; (global 4-element array of float)

-0:43        'u' (temp 5-element array of float)

-0:45      move second child to first child (temp 4-component vector of float)

-0:45        direct index (temp 4-component vector of float FragData)

-0:45          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:45          Constant:

-0:45            1000 (const int)

-0:45        Constant:

-0:45          1.000000

-0:45          1.000000

-0:45          1.000000

-0:45          1.000000

-0:46      move second child to first child (temp 4-component vector of float)

-0:46        direct index (temp 4-component vector of float FragData)

-0:46          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:46          Constant:

-0:46            -1 (const int)

-0:46        Constant:

-0:46          1.000000

-0:46          1.000000

-0:46          1.000000

-0:46          1.000000

-0:47      move second child to first child (temp 4-component vector of float)

-0:47        direct index (temp 4-component vector of float FragData)

-0:47          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:47          Constant:

-0:47            3 (const int)

-0:47        Constant:

-0:47          1.000000

-0:47          1.000000

-0:47          1.000000

-0:47          1.000000

-0:50      Sequence

-0:50        move second child to first child (temp int)

-0:50          'sum' (temp int)

-0:50          Constant:

-0:50            3 (const int)

-0:51      add second child into first child (temp int)

-0:51        'sum' (temp int)

-0:51        Constant:

-0:51          2 (const int)

-0:52      add second child into first child (temp int)

-0:52        'sum' (temp int)

-0:52        Constant:

-0:52          2 (const int)

-0:55      Sequence

-0:55        move second child to first child (temp 2-element array of int)

-0:55          'ica' (temp 2-element array of int)

-0:55          Constant:

-0:55            3 (const int)

-0:55            2 (const int)

-0:57      move second child to first child (temp int)

-0:57        direct index (temp int)

-0:57          'ica' (temp 2-element array of int)

-0:57          Constant:

-0:57            3.100000

-0:57        Constant:

-0:57          3 (const int)

-0:58      move second child to first child (temp int)

-0:58        indirect index (temp int)

-0:58          'ica' (temp 2-element array of int)

-0:58          direct index (temp float)

-0:58            'u' (temp 5-element array of float)

-0:58            Constant:

-0:58              1 (const int)

-0:58        Constant:

-0:58          4 (const int)

-0:68  Function Definition: foo( (global void)

-0:68    Function Parameters: 

-0:?     Sequence

-0:71      move second child to first child (temp int)

-0:71        direct index (temp int)

-0:71          'uns' (temp implicitly-sized array of int)

-0:71          Constant:

-0:71            3 (const int)

-0:71        Constant:

-0:71          40 (const int)

-0:72      move second child to first child (temp int)

-0:72        direct index (temp int)

-0:72          'uns' (temp implicitly-sized array of int)

-0:72          Constant:

-0:72            1 (const int)

-0:72        Constant:

-0:72          30 (const int)

-0:73      move second child to first child (temp 3-component vector of float)

-0:73        direct index (temp 3-component vector of float)

-0:73          'guns' (global implicitly-sized array of 3-component vector of float)

-0:73          Constant:

-0:73            2 (const int)

-0:73        Constant:

-0:73          2.400000

-0:73          2.400000

-0:73          2.400000

-0:76      Constant:

-0:76        0.000000

-0:79  Function Definition: foo2( (global implicitly-sized array of float)

-0:79    Function Parameters: 

-0:?     Sequence

-0:82      Branch: Return with expression

-0:82        'f' (temp implicitly-sized array of float)

-0:84      Branch: Return with expression

-0:84        'g' (temp 9-element array of float)

-0:89  Function Definition: foo3( (global void)

-0:89    Function Parameters: 

-0:?     Sequence

-0:92      move second child to first child (temp float)

-0:92        direct index (temp float)

-0:92          'resize1' (temp 3-element array of float)

-0:92          Constant:

-0:92            2 (const int)

-0:92        Constant:

-0:92          4.000000

-0:93      Constant:

-0:93        1 (const int)

-0:95      Constant:

-0:95        3 (const int)

-0:98      move second child to first child (temp float)

-0:98        direct index (temp float)

-0:98          'resize2' (temp 5-element array of float)

-0:98          Constant:

-0:98            5 (const int)

-0:98        Constant:

-0:98          4.000000

-0:100      Constant:

-0:100        5 (const int)

-0:101      move second child to first child (temp float)

-0:101        direct index (temp float)

-0:101          'resize2' (temp 5-element array of float)

-0:101          Constant:

-0:101            5 (const int)

-0:101        Constant:

-0:101          4.000000

-0:106  Sequence

-0:106    move second child to first child (temp float)

-0:106      'b' (global float)

-0:106      Constant:

-0:106        0.000000

-0:?   Linker Objects

-0:?     'gu' (global implicitly-sized array of float)

-0:?     'g4' (global 4-element array of float)

-0:?     'g5' (global 5-element array of float)

-0:?     'a' (uniform int)

-0:?     'guns' (global implicitly-sized array of 3-component vector of float)

-0:?     'f' (global float)

-0:?     'gUnusedUnsized' (global implicitly-sized array of float)

-0:?     'i' (global implicitly-sized array of int)

-0:?     'emptyA' (global implicitly-sized array of float)

-0:?     'b' (global float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-ERROR: node is still EOpNull!

-0:9  Function Definition: foo(f1[5]; (global 4-element array of float)

-0:9    Function Parameters: 

-0:9      'a' (in 5-element array of float)

-0:11    Sequence

-0:11      Branch: Return with expression

-0:11        Construct float (temp 4-element array of float)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              1 (const int)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              2 (const int)

-0:11          direct index (temp float)

-0:11            'a' (in 5-element array of float)

-0:11            Constant:

-0:11              3 (const int)

-0:14  Function Definition: bar(f1[5]; (global void)

-0:14    Function Parameters: 

-0:14      '' (in 5-element array of float)

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:21        move second child to first child (temp float)

-0:21          direct index (temp float)

-0:21            'gu' (temp 2-element array of float)

-0:21            Constant:

-0:21              2 (const int)

-0:21          Constant:

-0:21            4.000000

-0:24      move second child to first child (temp float)

-0:24        direct index (temp float)

-0:24          'gu' (global 4-element array of float)

-0:24          Constant:

-0:24            2 (const int)

-0:24        Constant:

-0:24          4.000000

-0:26      move second child to first child (temp float)

-0:26        direct index (temp float)

-0:26          'gu' (global 4-element array of float)

-0:26          Constant:

-0:26            3 (const int)

-0:26        Constant:

-0:26          3.000000

-0:27      move second child to first child (temp float)

-0:27        indirect index (temp float)

-0:27          'gu' (global 4-element array of float)

-0:27          'a' (uniform int)

-0:27        Constant:

-0:27          5.000000

-0:29      move second child to first child (temp 4-element array of float)

-0:29        'g4' (global 4-element array of float)

-0:29        Function Call: foo(f1[5]; (global 4-element array of float)

-0:29          'g5' (global 5-element array of float)

-0:30      'g5' (global 5-element array of float)

-0:31      'gu' (global 4-element array of float)

-0:33      Constant:

-0:33        0.000000

-0:34      Function Call: bar(f1[5]; (global void)

-0:34        'g5' (global 5-element array of float)

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        Compare Equal (temp bool)

-0:36          Constant:

-0:36            1.000000

-0:36            2.000000

-0:36            3.000000

-0:36            4.000000

-0:36          'g4' (global 4-element array of float)

-0:36        true case

-0:37        move second child to first child (temp float)

-0:37          direct index (temp float)

-0:37            'gu' (global 4-element array of float)

-0:37            Constant:

-0:37              0 (const int)

-0:37          Constant:

-0:37            2.000000

-0:40      move second child to first child (temp float)

-0:40        direct index (temp float)

-0:40          'u' (temp 5-element array of float)

-0:40          Constant:

-0:40            2 (const int)

-0:40        Constant:

-0:40          3.000000

-0:42      move second child to first child (temp float)

-0:42        direct index (temp float)

-0:42          'u' (temp 5-element array of float)

-0:42          Constant:

-0:42            5 (const int)

-0:42        Constant:

-0:42          5.000000

-0:43      Function Call: foo(f1[5]; (global 4-element array of float)

-0:43        'u' (temp 5-element array of float)

-0:45      move second child to first child (temp 4-component vector of float)

-0:45        direct index (temp 4-component vector of float FragData)

-0:45          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:45          Constant:

-0:45            1000 (const int)

-0:45        Constant:

-0:45          1.000000

-0:45          1.000000

-0:45          1.000000

-0:45          1.000000

-0:46      move second child to first child (temp 4-component vector of float)

-0:46        direct index (temp 4-component vector of float FragData)

-0:46          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:46          Constant:

-0:46            -1 (const int)

-0:46        Constant:

-0:46          1.000000

-0:46          1.000000

-0:46          1.000000

-0:46          1.000000

-0:47      move second child to first child (temp 4-component vector of float)

-0:47        direct index (temp 4-component vector of float FragData)

-0:47          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:47          Constant:

-0:47            3 (const int)

-0:47        Constant:

-0:47          1.000000

-0:47          1.000000

-0:47          1.000000

-0:47          1.000000

-0:50      Sequence

-0:50        move second child to first child (temp int)

-0:50          'sum' (temp int)

-0:50          Constant:

-0:50            3 (const int)

-0:51      add second child into first child (temp int)

-0:51        'sum' (temp int)

-0:51        Constant:

-0:51          2 (const int)

-0:52      add second child into first child (temp int)

-0:52        'sum' (temp int)

-0:52        Constant:

-0:52          2 (const int)

-0:55      Sequence

-0:55        move second child to first child (temp 2-element array of int)

-0:55          'ica' (temp 2-element array of int)

-0:55          Constant:

-0:55            3 (const int)

-0:55            2 (const int)

-0:57      move second child to first child (temp int)

-0:57        direct index (temp int)

-0:57          'ica' (temp 2-element array of int)

-0:57          Constant:

-0:57            3.100000

-0:57        Constant:

-0:57          3 (const int)

-0:58      move second child to first child (temp int)

-0:58        indirect index (temp int)

-0:58          'ica' (temp 2-element array of int)

-0:58          direct index (temp float)

-0:58            'u' (temp 5-element array of float)

-0:58            Constant:

-0:58              1 (const int)

-0:58        Constant:

-0:58          4 (const int)

-0:68  Function Definition: foo( (global void)

-0:68    Function Parameters: 

-0:?     Sequence

-0:71      move second child to first child (temp int)

-0:71        direct index (temp int)

-0:71          'uns' (temp 4-element array of int)

-0:71          Constant:

-0:71            3 (const int)

-0:71        Constant:

-0:71          40 (const int)

-0:72      move second child to first child (temp int)

-0:72        direct index (temp int)

-0:72          'uns' (temp 4-element array of int)

-0:72          Constant:

-0:72            1 (const int)

-0:72        Constant:

-0:72          30 (const int)

-0:73      move second child to first child (temp 3-component vector of float)

-0:73        direct index (temp 3-component vector of float)

-0:73          'guns' (global 8-element array of 3-component vector of float)

-0:73          Constant:

-0:73            2 (const int)

-0:73        Constant:

-0:73          2.400000

-0:73          2.400000

-0:73          2.400000

-0:76      Constant:

-0:76        0.000000

-0:79  Function Definition: foo2( (global implicitly-sized array of float)

-0:79    Function Parameters: 

-0:?     Sequence

-0:82      Branch: Return with expression

-0:82        'f' (temp 1-element array of float)

-0:84      Branch: Return with expression

-0:84        'g' (temp 9-element array of float)

-0:89  Function Definition: foo3( (global void)

-0:89    Function Parameters: 

-0:?     Sequence

-0:92      move second child to first child (temp float)

-0:92        direct index (temp float)

-0:92          'resize1' (temp 3-element array of float)

-0:92          Constant:

-0:92            2 (const int)

-0:92        Constant:

-0:92          4.000000

-0:93      Constant:

-0:93        1 (const int)

-0:95      Constant:

-0:95        3 (const int)

-0:98      move second child to first child (temp float)

-0:98        direct index (temp float)

-0:98          'resize2' (temp 5-element array of float)

-0:98          Constant:

-0:98            5 (const int)

-0:98        Constant:

-0:98          4.000000

-0:100      Constant:

-0:100        5 (const int)

-0:101      move second child to first child (temp float)

-0:101        direct index (temp float)

-0:101          'resize2' (temp 5-element array of float)

-0:101          Constant:

-0:101            5 (const int)

-0:101        Constant:

-0:101          4.000000

-0:106  Sequence

-0:106    move second child to first child (temp float)

-0:106      'b' (global float)

-0:106      Constant:

-0:106        0.000000

-0:?   Linker Objects

-0:?     'gu' (global 4-element array of float)

-0:?     'g4' (global 4-element array of float)

-0:?     'g5' (global 5-element array of float)

-0:?     'a' (uniform int)

-0:?     'guns' (global 8-element array of 3-component vector of float)

-0:?     'f' (global float)

-0:?     'gUnusedUnsized' (global 1-element array of float)

-0:?     'i' (global 1-element array of int)

-0:?     'emptyA' (global 1-element array of float)

-0:?     'b' (global float)

-

+array.frag
+ERROR: 0:21: '[' :  array index out of range '2'
+ERROR: 0:27: '[' :  array must be redeclared with a size before being indexed with a variable
+ERROR: 0:30: 'assign' :  cannot convert from 'global 4-element array of float' to 'global 5-element array of float'
+ERROR: 0:31: 'assign' :  cannot convert from 'global 4-element array of float' to 'global implicitly-sized array of float'
+ERROR: 0:33: 'foo' : no matching overloaded function found 
+ERROR: 0:42: '[' :  array index out of range '5'
+ERROR: 0:45: '[' :  array index out of range '1000'
+ERROR: 0:46: '[' :  index out of range '-1'
+ERROR: 0:52: '[' :  array index out of range '2'
+ERROR: 0:54: 'const' : non-matching or non-convertible constant type for const initializer 
+ERROR: 0:56: '=' :  cannot convert from 'const 2-element array of int' to 'temp 3-element array of int'
+ERROR: 0:57: '[]' : scalar integer expression required 
+ERROR: 0:57: '[' :  index out of range '-858993459'
+ERROR: 0:58: '[]' : scalar integer expression required 
+ERROR: 0:61: '' : array size required 
+ERROR: 0:62: '' : array size required 
+ERROR: 0:63: '' : array size required 
+ERROR: 0:66: '=' :  cannot convert from 'temp 3-component vector of float' to 'global float'
+ERROR: 0:76: 'bar' : no matching overloaded function found 
+ERROR: 0:79: '' : array size required 
+ERROR: 0:84: 'return' : type does not match, or is not convertible to, the function's return type 
+ERROR: 0:93: 'length' :  array must be declared with a size before using this method
+ERROR: 0:101: '[' :  array index out of range '5'
+ERROR: 0:104: 'constructor' : array constructor must have at least one argument 
+ERROR: 0:104: '=' :  cannot convert from 'const float' to 'global implicitly-sized array of int'
+ERROR: 0:106: 'constructor' : array argument must be sized 
+ERROR: 26 compilation errors.  No code generated.
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:9  Function Definition: foo(f1[5]; (global 4-element array of float)
+0:9    Function Parameters: 
+0:9      'a' (in 5-element array of float)
+0:11    Sequence
+0:11      Branch: Return with expression
+0:11        Construct float (temp 4-element array of float)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              1 (const int)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              2 (const int)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              3 (const int)
+0:14  Function Definition: bar(f1[5]; (global void)
+0:14    Function Parameters: 
+0:14      '' (in 5-element array of float)
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:21        move second child to first child (temp float)
+0:21          direct index (temp float)
+0:21            'gu' (temp 2-element array of float)
+0:21            Constant:
+0:21              2 (const int)
+0:21          Constant:
+0:21            4.000000
+0:24      move second child to first child (temp float)
+0:24        direct index (temp float)
+0:24          'gu' (global implicitly-sized array of float)
+0:24          Constant:
+0:24            2 (const int)
+0:24        Constant:
+0:24          4.000000
+0:26      move second child to first child (temp float)
+0:26        direct index (temp float)
+0:26          'gu' (global implicitly-sized array of float)
+0:26          Constant:
+0:26            3 (const int)
+0:26        Constant:
+0:26          3.000000
+0:27      move second child to first child (temp float)
+0:27        indirect index (temp float)
+0:27          'gu' (global implicitly-sized array of float)
+0:27          'a' (uniform int)
+0:27        Constant:
+0:27          5.000000
+0:29      move second child to first child (temp 4-element array of float)
+0:29        'g4' (global 4-element array of float)
+0:29        Function Call: foo(f1[5]; (global 4-element array of float)
+0:29          'g5' (global 5-element array of float)
+0:30      'g5' (global 5-element array of float)
+0:31      'gu' (global implicitly-sized array of float)
+0:33      Constant:
+0:33        0.000000
+0:34      Function Call: bar(f1[5]; (global void)
+0:34        'g5' (global 5-element array of float)
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        Compare Equal (temp bool)
+0:36          Constant:
+0:36            1.000000
+0:36            2.000000
+0:36            3.000000
+0:36            4.000000
+0:36          'g4' (global 4-element array of float)
+0:36        true case
+0:37        move second child to first child (temp float)
+0:37          direct index (temp float)
+0:37            'gu' (global implicitly-sized array of float)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Constant:
+0:37            2.000000
+0:40      move second child to first child (temp float)
+0:40        direct index (temp float)
+0:40          'u' (temp 5-element array of float)
+0:40          Constant:
+0:40            2 (const int)
+0:40        Constant:
+0:40          3.000000
+0:42      move second child to first child (temp float)
+0:42        direct index (temp float)
+0:42          'u' (temp 5-element array of float)
+0:42          Constant:
+0:42            5 (const int)
+0:42        Constant:
+0:42          5.000000
+0:43      Function Call: foo(f1[5]; (global 4-element array of float)
+0:43        'u' (temp 5-element array of float)
+0:45      move second child to first child (temp 4-component vector of float)
+0:45        direct index (temp 4-component vector of float FragData)
+0:45          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:45          Constant:
+0:45            1000 (const int)
+0:45        Constant:
+0:45          1.000000
+0:45          1.000000
+0:45          1.000000
+0:45          1.000000
+0:46      move second child to first child (temp 4-component vector of float)
+0:46        direct index (temp 4-component vector of float FragData)
+0:46          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:46          Constant:
+0:46            -1 (const int)
+0:46        Constant:
+0:46          1.000000
+0:46          1.000000
+0:46          1.000000
+0:46          1.000000
+0:47      move second child to first child (temp 4-component vector of float)
+0:47        direct index (temp 4-component vector of float FragData)
+0:47          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:47          Constant:
+0:47            3 (const int)
+0:47        Constant:
+0:47          1.000000
+0:47          1.000000
+0:47          1.000000
+0:47          1.000000
+0:50      Sequence
+0:50        move second child to first child (temp int)
+0:50          'sum' (temp int)
+0:50          Constant:
+0:50            3 (const int)
+0:51      add second child into first child (temp int)
+0:51        'sum' (temp int)
+0:51        Constant:
+0:51          2 (const int)
+0:52      add second child into first child (temp int)
+0:52        'sum' (temp int)
+0:52        Constant:
+0:52          2 (const int)
+0:55      Sequence
+0:55        move second child to first child (temp 2-element array of int)
+0:55          'ica' (temp 2-element array of int)
+0:55          Constant:
+0:55            3 (const int)
+0:55            2 (const int)
+0:57      move second child to first child (temp int)
+0:57        direct index (temp int)
+0:57          'ica' (temp 2-element array of int)
+0:57          Constant:
+0:57            3.100000
+0:57        Constant:
+0:57          3 (const int)
+0:58      move second child to first child (temp int)
+0:58        indirect index (temp int)
+0:58          'ica' (temp 2-element array of int)
+0:58          direct index (temp float)
+0:58            'u' (temp 5-element array of float)
+0:58            Constant:
+0:58              1 (const int)
+0:58        Constant:
+0:58          4 (const int)
+0:68  Function Definition: foo( (global void)
+0:68    Function Parameters: 
+0:?     Sequence
+0:71      move second child to first child (temp int)
+0:71        direct index (temp int)
+0:71          'uns' (temp implicitly-sized array of int)
+0:71          Constant:
+0:71            3 (const int)
+0:71        Constant:
+0:71          40 (const int)
+0:72      move second child to first child (temp int)
+0:72        direct index (temp int)
+0:72          'uns' (temp implicitly-sized array of int)
+0:72          Constant:
+0:72            1 (const int)
+0:72        Constant:
+0:72          30 (const int)
+0:73      move second child to first child (temp 3-component vector of float)
+0:73        direct index (temp 3-component vector of float)
+0:73          'guns' (global implicitly-sized array of 3-component vector of float)
+0:73          Constant:
+0:73            2 (const int)
+0:73        Constant:
+0:73          2.400000
+0:73          2.400000
+0:73          2.400000
+0:76      Constant:
+0:76        0.000000
+0:79  Function Definition: foo2( (global implicitly-sized array of float)
+0:79    Function Parameters: 
+0:?     Sequence
+0:82      Branch: Return with expression
+0:82        'f' (temp implicitly-sized array of float)
+0:84      Branch: Return with expression
+0:84        'g' (temp 9-element array of float)
+0:89  Function Definition: foo3( (global void)
+0:89    Function Parameters: 
+0:?     Sequence
+0:92      move second child to first child (temp float)
+0:92        direct index (temp float)
+0:92          'resize1' (temp 3-element array of float)
+0:92          Constant:
+0:92            2 (const int)
+0:92        Constant:
+0:92          4.000000
+0:93      Constant:
+0:93        1 (const int)
+0:95      Constant:
+0:95        3 (const int)
+0:98      move second child to first child (temp float)
+0:98        direct index (temp float)
+0:98          'resize2' (temp 5-element array of float)
+0:98          Constant:
+0:98            5 (const int)
+0:98        Constant:
+0:98          4.000000
+0:100      Constant:
+0:100        5 (const int)
+0:101      move second child to first child (temp float)
+0:101        direct index (temp float)
+0:101          'resize2' (temp 5-element array of float)
+0:101          Constant:
+0:101            5 (const int)
+0:101        Constant:
+0:101          4.000000
+0:106  Sequence
+0:106    move second child to first child (temp float)
+0:106      'b' (global float)
+0:106      Constant:
+0:106        0.000000
+0:?   Linker Objects
+0:?     'gu' (global implicitly-sized array of float)
+0:?     'g4' (global 4-element array of float)
+0:?     'g5' (global 5-element array of float)
+0:?     'a' (uniform int)
+0:?     'guns' (global implicitly-sized array of 3-component vector of float)
+0:?     'f' (global float)
+0:?     'gUnusedUnsized' (global implicitly-sized array of float)
+0:?     'i' (global implicitly-sized array of int)
+0:?     'emptyA' (global implicitly-sized array of float)
+0:?     'b' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+ERROR: node is still EOpNull!
+0:9  Function Definition: foo(f1[5]; (global 4-element array of float)
+0:9    Function Parameters: 
+0:9      'a' (in 5-element array of float)
+0:11    Sequence
+0:11      Branch: Return with expression
+0:11        Construct float (temp 4-element array of float)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              1 (const int)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              2 (const int)
+0:11          direct index (temp float)
+0:11            'a' (in 5-element array of float)
+0:11            Constant:
+0:11              3 (const int)
+0:14  Function Definition: bar(f1[5]; (global void)
+0:14    Function Parameters: 
+0:14      '' (in 5-element array of float)
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:21        move second child to first child (temp float)
+0:21          direct index (temp float)
+0:21            'gu' (temp 2-element array of float)
+0:21            Constant:
+0:21              2 (const int)
+0:21          Constant:
+0:21            4.000000
+0:24      move second child to first child (temp float)
+0:24        direct index (temp float)
+0:24          'gu' (global 4-element array of float)
+0:24          Constant:
+0:24            2 (const int)
+0:24        Constant:
+0:24          4.000000
+0:26      move second child to first child (temp float)
+0:26        direct index (temp float)
+0:26          'gu' (global 4-element array of float)
+0:26          Constant:
+0:26            3 (const int)
+0:26        Constant:
+0:26          3.000000
+0:27      move second child to first child (temp float)
+0:27        indirect index (temp float)
+0:27          'gu' (global 4-element array of float)
+0:27          'a' (uniform int)
+0:27        Constant:
+0:27          5.000000
+0:29      move second child to first child (temp 4-element array of float)
+0:29        'g4' (global 4-element array of float)
+0:29        Function Call: foo(f1[5]; (global 4-element array of float)
+0:29          'g5' (global 5-element array of float)
+0:30      'g5' (global 5-element array of float)
+0:31      'gu' (global 4-element array of float)
+0:33      Constant:
+0:33        0.000000
+0:34      Function Call: bar(f1[5]; (global void)
+0:34        'g5' (global 5-element array of float)
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        Compare Equal (temp bool)
+0:36          Constant:
+0:36            1.000000
+0:36            2.000000
+0:36            3.000000
+0:36            4.000000
+0:36          'g4' (global 4-element array of float)
+0:36        true case
+0:37        move second child to first child (temp float)
+0:37          direct index (temp float)
+0:37            'gu' (global 4-element array of float)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Constant:
+0:37            2.000000
+0:40      move second child to first child (temp float)
+0:40        direct index (temp float)
+0:40          'u' (temp 5-element array of float)
+0:40          Constant:
+0:40            2 (const int)
+0:40        Constant:
+0:40          3.000000
+0:42      move second child to first child (temp float)
+0:42        direct index (temp float)
+0:42          'u' (temp 5-element array of float)
+0:42          Constant:
+0:42            5 (const int)
+0:42        Constant:
+0:42          5.000000
+0:43      Function Call: foo(f1[5]; (global 4-element array of float)
+0:43        'u' (temp 5-element array of float)
+0:45      move second child to first child (temp 4-component vector of float)
+0:45        direct index (temp 4-component vector of float FragData)
+0:45          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:45          Constant:
+0:45            1000 (const int)
+0:45        Constant:
+0:45          1.000000
+0:45          1.000000
+0:45          1.000000
+0:45          1.000000
+0:46      move second child to first child (temp 4-component vector of float)
+0:46        direct index (temp 4-component vector of float FragData)
+0:46          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:46          Constant:
+0:46            -1 (const int)
+0:46        Constant:
+0:46          1.000000
+0:46          1.000000
+0:46          1.000000
+0:46          1.000000
+0:47      move second child to first child (temp 4-component vector of float)
+0:47        direct index (temp 4-component vector of float FragData)
+0:47          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:47          Constant:
+0:47            3 (const int)
+0:47        Constant:
+0:47          1.000000
+0:47          1.000000
+0:47          1.000000
+0:47          1.000000
+0:50      Sequence
+0:50        move second child to first child (temp int)
+0:50          'sum' (temp int)
+0:50          Constant:
+0:50            3 (const int)
+0:51      add second child into first child (temp int)
+0:51        'sum' (temp int)
+0:51        Constant:
+0:51          2 (const int)
+0:52      add second child into first child (temp int)
+0:52        'sum' (temp int)
+0:52        Constant:
+0:52          2 (const int)
+0:55      Sequence
+0:55        move second child to first child (temp 2-element array of int)
+0:55          'ica' (temp 2-element array of int)
+0:55          Constant:
+0:55            3 (const int)
+0:55            2 (const int)
+0:57      move second child to first child (temp int)
+0:57        direct index (temp int)
+0:57          'ica' (temp 2-element array of int)
+0:57          Constant:
+0:57            3.100000
+0:57        Constant:
+0:57          3 (const int)
+0:58      move second child to first child (temp int)
+0:58        indirect index (temp int)
+0:58          'ica' (temp 2-element array of int)
+0:58          direct index (temp float)
+0:58            'u' (temp 5-element array of float)
+0:58            Constant:
+0:58              1 (const int)
+0:58        Constant:
+0:58          4 (const int)
+0:68  Function Definition: foo( (global void)
+0:68    Function Parameters: 
+0:?     Sequence
+0:71      move second child to first child (temp int)
+0:71        direct index (temp int)
+0:71          'uns' (temp 4-element array of int)
+0:71          Constant:
+0:71            3 (const int)
+0:71        Constant:
+0:71          40 (const int)
+0:72      move second child to first child (temp int)
+0:72        direct index (temp int)
+0:72          'uns' (temp 4-element array of int)
+0:72          Constant:
+0:72            1 (const int)
+0:72        Constant:
+0:72          30 (const int)
+0:73      move second child to first child (temp 3-component vector of float)
+0:73        direct index (temp 3-component vector of float)
+0:73          'guns' (global 8-element array of 3-component vector of float)
+0:73          Constant:
+0:73            2 (const int)
+0:73        Constant:
+0:73          2.400000
+0:73          2.400000
+0:73          2.400000
+0:76      Constant:
+0:76        0.000000
+0:79  Function Definition: foo2( (global implicitly-sized array of float)
+0:79    Function Parameters: 
+0:?     Sequence
+0:82      Branch: Return with expression
+0:82        'f' (temp 1-element array of float)
+0:84      Branch: Return with expression
+0:84        'g' (temp 9-element array of float)
+0:89  Function Definition: foo3( (global void)
+0:89    Function Parameters: 
+0:?     Sequence
+0:92      move second child to first child (temp float)
+0:92        direct index (temp float)
+0:92          'resize1' (temp 3-element array of float)
+0:92          Constant:
+0:92            2 (const int)
+0:92        Constant:
+0:92          4.000000
+0:93      Constant:
+0:93        1 (const int)
+0:95      Constant:
+0:95        3 (const int)
+0:98      move second child to first child (temp float)
+0:98        direct index (temp float)
+0:98          'resize2' (temp 5-element array of float)
+0:98          Constant:
+0:98            5 (const int)
+0:98        Constant:
+0:98          4.000000
+0:100      Constant:
+0:100        5 (const int)
+0:101      move second child to first child (temp float)
+0:101        direct index (temp float)
+0:101          'resize2' (temp 5-element array of float)
+0:101          Constant:
+0:101            5 (const int)
+0:101        Constant:
+0:101          4.000000
+0:106  Sequence
+0:106    move second child to first child (temp float)
+0:106      'b' (global float)
+0:106      Constant:
+0:106        0.000000
+0:?   Linker Objects
+0:?     'gu' (global 4-element array of float)
+0:?     'g4' (global 4-element array of float)
+0:?     'g5' (global 5-element array of float)
+0:?     'a' (uniform int)
+0:?     'guns' (global 8-element array of 3-component vector of float)
+0:?     'f' (global float)
+0:?     'gUnusedUnsized' (global 1-element array of float)
+0:?     'i' (global 1-element array of int)
+0:?     'emptyA' (global 1-element array of float)
+0:?     'b' (global float)
+
diff --git a/Test/baseResults/array100.frag.out b/Test/baseResults/array100.frag.out
index 8195fd3..b44f6a0 100644
--- a/Test/baseResults/array100.frag.out
+++ b/Test/baseResults/array100.frag.out
@@ -1,296 +1,296 @@
-array100.frag

-ERROR: 0:3: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:3: '' : array size required 

-ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions 

-ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions 

-ERROR: 0:9: 'array in function return type' : not supported for this version or the enabled extensions 

-ERROR: 0:11: 'arrayed constructor' : not supported for this version or the enabled extensions 

-ERROR: 0:21: '[' :  array index out of range '2'

-ERROR: 0:24: 'array assignment' : not supported for this version or the enabled extensions 

-ERROR: 0:25: 'array assignment' : not supported for this version or the enabled extensions 

-ERROR: 0:25: 'assign' :  cannot convert from 'global 4-element array of mediump float' to 'global 5-element array of mediump float'

-ERROR: 0:26: 'array assignment' : not supported for this version or the enabled extensions 

-ERROR: 0:26: 'assign' :  cannot convert from 'global 4-element array of mediump float' to 'global implicitly-sized array of mediump float'

-ERROR: 0:28: 'foo' : no matching overloaded function found 

-ERROR: 0:31: 'arrayed constructor' : not supported for this version or the enabled extensions 

-ERROR: 0:31: 'array comparison' : not supported for this version or the enabled extensions 

-ERROR: 0:35: '[' :  array index out of range '5'

-ERROR: 0:38: '[' :  array index out of range '1000'

-ERROR: 0:39: '[' :  index out of range '-1'

-ERROR: 0:53: 'array in function return type' : not supported for this version or the enabled extensions 

-ERROR: 0:66: 'array assignment' : not supported for this version or the enabled extensions 

-ERROR: 0:68: 'array assignment' : not supported for this version or the enabled extensions 

-ERROR: 0:69: 'array initializer' : not supported for this version or the enabled extensions 

-ERROR: 22 compilation errors.  No code generated.

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:9  Function Definition: foo(f1[5]; (global 4-element array of mediump float)

-0:9    Function Parameters: 

-0:9      'a' (in 5-element array of mediump float)

-0:11    Sequence

-0:11      Branch: Return with expression

-0:11        Construct float (temp 4-element array of float)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              1 (const int)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              2 (const int)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              3 (const int)

-0:14  Function Definition: bar(f1[5]; (global void)

-0:14    Function Parameters: 

-0:14      '' (in 5-element array of mediump float)

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:21        move second child to first child (temp mediump float)

-0:21          direct index (temp mediump float)

-0:21            'gu' (temp 2-element array of mediump float)

-0:21            Constant:

-0:21              2 (const int)

-0:21          Constant:

-0:21            4.000000

-0:24      move second child to first child (temp 4-element array of mediump float)

-0:24        'g4' (global 4-element array of mediump float)

-0:24        Function Call: foo(f1[5]; (global 4-element array of mediump float)

-0:24          'g5' (global 5-element array of mediump float)

-0:25      'g5' (global 5-element array of mediump float)

-0:26      'gu' (global implicitly-sized array of mediump float)

-0:28      Constant:

-0:28        0.000000

-0:29      Function Call: bar(f1[5]; (global void)

-0:29        'g5' (global 5-element array of mediump float)

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Equal (temp bool)

-0:31          Constant:

-0:31            1.000000

-0:31            2.000000

-0:31            3.000000

-0:31            4.000000

-0:31          'g4' (global 4-element array of mediump float)

-0:31        true case

-0:32        move second child to first child (temp mediump float)

-0:32          direct index (temp mediump float)

-0:32            'gu' (global implicitly-sized array of mediump float)

-0:32            Constant:

-0:32              0 (const int)

-0:32          Constant:

-0:32            2.000000

-0:35      move second child to first child (temp mediump float)

-0:35        direct index (temp mediump float)

-0:35          'u' (temp 5-element array of mediump float)

-0:35          Constant:

-0:35            5 (const int)

-0:35        Constant:

-0:35          5.000000

-0:36      Function Call: foo(f1[5]; (global 4-element array of mediump float)

-0:36        'u' (temp 5-element array of mediump float)

-0:38      move second child to first child (temp mediump 4-component vector of float)

-0:38        direct index (temp mediump 4-component vector of float FragData)

-0:38          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)

-0:38          Constant:

-0:38            1000 (const int)

-0:38        Constant:

-0:38          1.000000

-0:38          1.000000

-0:38          1.000000

-0:38          1.000000

-0:39      move second child to first child (temp mediump 4-component vector of float)

-0:39        direct index (temp mediump 4-component vector of float FragData)

-0:39          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)

-0:39          Constant:

-0:39            -1 (const int)

-0:39        Constant:

-0:39          1.000000

-0:39          1.000000

-0:39          1.000000

-0:39          1.000000

-0:40      move second child to first child (temp mediump 4-component vector of float)

-0:40        direct index (temp mediump 4-component vector of float FragData)

-0:40          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)

-0:40          Constant:

-0:40            3 (const int)

-0:40        Constant:

-0:40          1.000000

-0:40          1.000000

-0:40          1.000000

-0:40          1.000000

-0:53  Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:53    Function Parameters: 

-0:?     Sequence

-0:56      Branch: Return with expression

-0:56        's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:59  Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)

-0:59    Function Parameters: 

-0:59      's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:63  Function Definition: bar11( (global void)

-0:63    Function Parameters: 

-0:?     Sequence

-0:66      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:66        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:66        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:67      Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)

-0:67        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:68      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:68        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:68        Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:69      Sequence

-0:69        move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:69          'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:69          's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:?   Linker Objects

-0:?     'gu' (global implicitly-sized array of mediump float)

-0:?     'g4' (global 4-element array of mediump float)

-0:?     'g5' (global 5-element array of mediump float)

-0:?     'a' (uniform mediump int)

-

-

-Linked fragment stage:

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:9  Function Definition: foo(f1[5]; (global 4-element array of mediump float)

-0:9    Function Parameters: 

-0:9      'a' (in 5-element array of mediump float)

-0:11    Sequence

-0:11      Branch: Return with expression

-0:11        Construct float (temp 4-element array of float)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              1 (const int)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              2 (const int)

-0:11          direct index (temp mediump float)

-0:11            'a' (in 5-element array of mediump float)

-0:11            Constant:

-0:11              3 (const int)

-0:14  Function Definition: bar(f1[5]; (global void)

-0:14    Function Parameters: 

-0:14      '' (in 5-element array of mediump float)

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:?     Sequence

-0:?       Sequence

-0:21        move second child to first child (temp mediump float)

-0:21          direct index (temp mediump float)

-0:21            'gu' (temp 2-element array of mediump float)

-0:21            Constant:

-0:21              2 (const int)

-0:21          Constant:

-0:21            4.000000

-0:24      move second child to first child (temp 4-element array of mediump float)

-0:24        'g4' (global 4-element array of mediump float)

-0:24        Function Call: foo(f1[5]; (global 4-element array of mediump float)

-0:24          'g5' (global 5-element array of mediump float)

-0:25      'g5' (global 5-element array of mediump float)

-0:26      'gu' (global 1-element array of mediump float)

-0:28      Constant:

-0:28        0.000000

-0:29      Function Call: bar(f1[5]; (global void)

-0:29        'g5' (global 5-element array of mediump float)

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Equal (temp bool)

-0:31          Constant:

-0:31            1.000000

-0:31            2.000000

-0:31            3.000000

-0:31            4.000000

-0:31          'g4' (global 4-element array of mediump float)

-0:31        true case

-0:32        move second child to first child (temp mediump float)

-0:32          direct index (temp mediump float)

-0:32            'gu' (global 1-element array of mediump float)

-0:32            Constant:

-0:32              0 (const int)

-0:32          Constant:

-0:32            2.000000

-0:35      move second child to first child (temp mediump float)

-0:35        direct index (temp mediump float)

-0:35          'u' (temp 5-element array of mediump float)

-0:35          Constant:

-0:35            5 (const int)

-0:35        Constant:

-0:35          5.000000

-0:36      Function Call: foo(f1[5]; (global 4-element array of mediump float)

-0:36        'u' (temp 5-element array of mediump float)

-0:38      move second child to first child (temp mediump 4-component vector of float)

-0:38        direct index (temp mediump 4-component vector of float FragData)

-0:38          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)

-0:38          Constant:

-0:38            1000 (const int)

-0:38        Constant:

-0:38          1.000000

-0:38          1.000000

-0:38          1.000000

-0:38          1.000000

-0:39      move second child to first child (temp mediump 4-component vector of float)

-0:39        direct index (temp mediump 4-component vector of float FragData)

-0:39          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)

-0:39          Constant:

-0:39            -1 (const int)

-0:39        Constant:

-0:39          1.000000

-0:39          1.000000

-0:39          1.000000

-0:39          1.000000

-0:40      move second child to first child (temp mediump 4-component vector of float)

-0:40        direct index (temp mediump 4-component vector of float FragData)

-0:40          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)

-0:40          Constant:

-0:40            3 (const int)

-0:40        Constant:

-0:40          1.000000

-0:40          1.000000

-0:40          1.000000

-0:40          1.000000

-0:53  Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:53    Function Parameters: 

-0:?     Sequence

-0:56      Branch: Return with expression

-0:56        's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:59  Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)

-0:59    Function Parameters: 

-0:59      's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:63  Function Definition: bar11( (global void)

-0:63    Function Parameters: 

-0:?     Sequence

-0:66      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:66        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:66        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:67      Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)

-0:67        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:68      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:68        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:68        Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:69      Sequence

-0:69        move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:69          'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:69          's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})

-0:?   Linker Objects

-0:?     'gu' (global 1-element array of mediump float)

-0:?     'g4' (global 4-element array of mediump float)

-0:?     'g5' (global 5-element array of mediump float)

-0:?     'a' (uniform mediump int)

-

+array100.frag
+ERROR: 0:3: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:3: '' : array size required 
+ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions 
+ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions 
+ERROR: 0:9: 'array in function return type' : not supported for this version or the enabled extensions 
+ERROR: 0:11: 'arrayed constructor' : not supported for this version or the enabled extensions 
+ERROR: 0:21: '[' :  array index out of range '2'
+ERROR: 0:24: 'array assignment' : not supported for this version or the enabled extensions 
+ERROR: 0:25: 'array assignment' : not supported for this version or the enabled extensions 
+ERROR: 0:25: 'assign' :  cannot convert from 'global 4-element array of mediump float' to 'global 5-element array of mediump float'
+ERROR: 0:26: 'array assignment' : not supported for this version or the enabled extensions 
+ERROR: 0:26: 'assign' :  cannot convert from 'global 4-element array of mediump float' to 'global implicitly-sized array of mediump float'
+ERROR: 0:28: 'foo' : no matching overloaded function found 
+ERROR: 0:31: 'arrayed constructor' : not supported for this version or the enabled extensions 
+ERROR: 0:31: 'array comparison' : not supported for this version or the enabled extensions 
+ERROR: 0:35: '[' :  array index out of range '5'
+ERROR: 0:38: '[' :  array index out of range '1000'
+ERROR: 0:39: '[' :  index out of range '-1'
+ERROR: 0:53: 'array in function return type' : not supported for this version or the enabled extensions 
+ERROR: 0:66: 'array assignment' : not supported for this version or the enabled extensions 
+ERROR: 0:68: 'array assignment' : not supported for this version or the enabled extensions 
+ERROR: 0:69: 'array initializer' : not supported for this version or the enabled extensions 
+ERROR: 22 compilation errors.  No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:9  Function Definition: foo(f1[5]; (global 4-element array of mediump float)
+0:9    Function Parameters: 
+0:9      'a' (in 5-element array of mediump float)
+0:11    Sequence
+0:11      Branch: Return with expression
+0:11        Construct float (temp 4-element array of float)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              1 (const int)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              2 (const int)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              3 (const int)
+0:14  Function Definition: bar(f1[5]; (global void)
+0:14    Function Parameters: 
+0:14      '' (in 5-element array of mediump float)
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:21        move second child to first child (temp mediump float)
+0:21          direct index (temp mediump float)
+0:21            'gu' (temp 2-element array of mediump float)
+0:21            Constant:
+0:21              2 (const int)
+0:21          Constant:
+0:21            4.000000
+0:24      move second child to first child (temp 4-element array of mediump float)
+0:24        'g4' (global 4-element array of mediump float)
+0:24        Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:24          'g5' (global 5-element array of mediump float)
+0:25      'g5' (global 5-element array of mediump float)
+0:26      'gu' (global implicitly-sized array of mediump float)
+0:28      Constant:
+0:28        0.000000
+0:29      Function Call: bar(f1[5]; (global void)
+0:29        'g5' (global 5-element array of mediump float)
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Equal (temp bool)
+0:31          Constant:
+0:31            1.000000
+0:31            2.000000
+0:31            3.000000
+0:31            4.000000
+0:31          'g4' (global 4-element array of mediump float)
+0:31        true case
+0:32        move second child to first child (temp mediump float)
+0:32          direct index (temp mediump float)
+0:32            'gu' (global implicitly-sized array of mediump float)
+0:32            Constant:
+0:32              0 (const int)
+0:32          Constant:
+0:32            2.000000
+0:35      move second child to first child (temp mediump float)
+0:35        direct index (temp mediump float)
+0:35          'u' (temp 5-element array of mediump float)
+0:35          Constant:
+0:35            5 (const int)
+0:35        Constant:
+0:35          5.000000
+0:36      Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:36        'u' (temp 5-element array of mediump float)
+0:38      move second child to first child (temp mediump 4-component vector of float)
+0:38        direct index (temp mediump 4-component vector of float FragData)
+0:38          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:38          Constant:
+0:38            1000 (const int)
+0:38        Constant:
+0:38          1.000000
+0:38          1.000000
+0:38          1.000000
+0:38          1.000000
+0:39      move second child to first child (temp mediump 4-component vector of float)
+0:39        direct index (temp mediump 4-component vector of float FragData)
+0:39          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:39          Constant:
+0:39            -1 (const int)
+0:39        Constant:
+0:39          1.000000
+0:39          1.000000
+0:39          1.000000
+0:39          1.000000
+0:40      move second child to first child (temp mediump 4-component vector of float)
+0:40        direct index (temp mediump 4-component vector of float FragData)
+0:40          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:40          Constant:
+0:40            3 (const int)
+0:40        Constant:
+0:40          1.000000
+0:40          1.000000
+0:40          1.000000
+0:40          1.000000
+0:53  Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:53    Function Parameters: 
+0:?     Sequence
+0:56      Branch: Return with expression
+0:56        's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:59  Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:59    Function Parameters: 
+0:59      's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:63  Function Definition: bar11( (global void)
+0:63    Function Parameters: 
+0:?     Sequence
+0:66      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:67      Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:67        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68        Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69      Sequence
+0:69        move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69          'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69          's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:?   Linker Objects
+0:?     'gu' (global implicitly-sized array of mediump float)
+0:?     'g4' (global 4-element array of mediump float)
+0:?     'g5' (global 5-element array of mediump float)
+0:?     'a' (uniform mediump int)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:9  Function Definition: foo(f1[5]; (global 4-element array of mediump float)
+0:9    Function Parameters: 
+0:9      'a' (in 5-element array of mediump float)
+0:11    Sequence
+0:11      Branch: Return with expression
+0:11        Construct float (temp 4-element array of float)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              1 (const int)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              2 (const int)
+0:11          direct index (temp mediump float)
+0:11            'a' (in 5-element array of mediump float)
+0:11            Constant:
+0:11              3 (const int)
+0:14  Function Definition: bar(f1[5]; (global void)
+0:14    Function Parameters: 
+0:14      '' (in 5-element array of mediump float)
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:?     Sequence
+0:?       Sequence
+0:21        move second child to first child (temp mediump float)
+0:21          direct index (temp mediump float)
+0:21            'gu' (temp 2-element array of mediump float)
+0:21            Constant:
+0:21              2 (const int)
+0:21          Constant:
+0:21            4.000000
+0:24      move second child to first child (temp 4-element array of mediump float)
+0:24        'g4' (global 4-element array of mediump float)
+0:24        Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:24          'g5' (global 5-element array of mediump float)
+0:25      'g5' (global 5-element array of mediump float)
+0:26      'gu' (global 1-element array of mediump float)
+0:28      Constant:
+0:28        0.000000
+0:29      Function Call: bar(f1[5]; (global void)
+0:29        'g5' (global 5-element array of mediump float)
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Equal (temp bool)
+0:31          Constant:
+0:31            1.000000
+0:31            2.000000
+0:31            3.000000
+0:31            4.000000
+0:31          'g4' (global 4-element array of mediump float)
+0:31        true case
+0:32        move second child to first child (temp mediump float)
+0:32          direct index (temp mediump float)
+0:32            'gu' (global 1-element array of mediump float)
+0:32            Constant:
+0:32              0 (const int)
+0:32          Constant:
+0:32            2.000000
+0:35      move second child to first child (temp mediump float)
+0:35        direct index (temp mediump float)
+0:35          'u' (temp 5-element array of mediump float)
+0:35          Constant:
+0:35            5 (const int)
+0:35        Constant:
+0:35          5.000000
+0:36      Function Call: foo(f1[5]; (global 4-element array of mediump float)
+0:36        'u' (temp 5-element array of mediump float)
+0:38      move second child to first child (temp mediump 4-component vector of float)
+0:38        direct index (temp mediump 4-component vector of float FragData)
+0:38          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:38          Constant:
+0:38            1000 (const int)
+0:38        Constant:
+0:38          1.000000
+0:38          1.000000
+0:38          1.000000
+0:38          1.000000
+0:39      move second child to first child (temp mediump 4-component vector of float)
+0:39        direct index (temp mediump 4-component vector of float FragData)
+0:39          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:39          Constant:
+0:39            -1 (const int)
+0:39        Constant:
+0:39          1.000000
+0:39          1.000000
+0:39          1.000000
+0:39          1.000000
+0:40      move second child to first child (temp mediump 4-component vector of float)
+0:40        direct index (temp mediump 4-component vector of float FragData)
+0:40          'gl_FragData' (fragColor 32-element array of mediump 4-component vector of float FragData)
+0:40          Constant:
+0:40            3 (const int)
+0:40        Constant:
+0:40          1.000000
+0:40          1.000000
+0:40          1.000000
+0:40          1.000000
+0:53  Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:53    Function Parameters: 
+0:?     Sequence
+0:56      Branch: Return with expression
+0:56        's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:59  Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:59    Function Parameters: 
+0:59      's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:63  Function Definition: bar11( (global void)
+0:63    Function Parameters: 
+0:?     Sequence
+0:66      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:66        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:67      Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void)
+0:67        's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68      move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68        's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:68        Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69      Sequence
+0:69        move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69          'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:69          's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa})
+0:?   Linker Objects
+0:?     'gu' (global 1-element array of mediump float)
+0:?     'g4' (global 4-element array of mediump float)
+0:?     'g5' (global 5-element array of mediump float)
+0:?     'a' (uniform mediump int)
+
diff --git a/Test/baseResults/atomic_uint.frag.out b/Test/baseResults/atomic_uint.frag.out
index 1eef5c3..4d05756 100644
--- a/Test/baseResults/atomic_uint.frag.out
+++ b/Test/baseResults/atomic_uint.frag.out
@@ -1,145 +1,145 @@
-atomic_uint.frag

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:10: 'atomic_uint' : samplers and atomic_uints cannot be output parameters 

-ERROR: 0:12: 'return' : type does not match, or is not convertible to, the function's return type 

-ERROR: 0:18: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter

-ERROR: 0:18: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:23: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:28: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' and a right operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' (or there is no acceptable conversion)

-ERROR: 0:29: '-' :  wrong operand type no operation '-' exists that takes an operand of type layout(binding=0 offset=0 ) uniform atomic_uint (or there is no acceptable conversion)

-ERROR: 0:31: '[]' : scalar integer expression required 

-ERROR: 0:34: 'assign' :  l-value required "counter" (can't modify a uniform)

-ERROR: 0:34: 'assign' :  cannot convert from 'const int' to 'layout(binding=0 offset=0 ) uniform atomic_uint'

-ERROR: 0:37: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acin

-ERROR: 0:37: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg

-ERROR: 0:38: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:40: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:46: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:47: 'offset' : atomic counters sharing the same offset: 12

-ERROR: 0:48: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 18 compilation errors.  No code generated.

-

-

-Shader version: 420

-ERROR: node is still EOpNull!

-0:5  Function Definition: func(au1; (global uint)

-0:5    Function Parameters: 

-0:5      'c' (in atomic_uint)

-0:7    Sequence

-0:7      Branch: Return with expression

-0:7        AtomicCounterIncrement (global uint)

-0:7          'c' (in atomic_uint)

-0:10  Function Definition: func2(au1; (global uint)

-0:10    Function Parameters: 

-0:10      'c' (out atomic_uint)

-0:12    Sequence

-0:12      Branch: Return with expression

-0:12        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:13      Branch: Return with expression

-0:13        AtomicCounter (global uint)

-0:13          'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:?     Sequence

-0:19      Sequence

-0:19        move second child to first child (temp uint)

-0:19          'val' (temp uint)

-0:19          AtomicCounter (global uint)

-0:19            'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:20      AtomicCounterDecrement (global uint)

-0:20        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:26  Function Definition: opac( (global void)

-0:26    Function Parameters: 

-0:28    Sequence

-0:28      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:29      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:31      indirect index (temp int)

-0:31        'a' (temp 3-element array of int)

-0:31        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:32      direct index (layout(binding=1 offset=3 ) temp atomic_uint)

-0:32        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)

-0:32        Constant:

-0:32          2 (const int)

-0:33      indirect index (layout(binding=1 offset=3 ) temp atomic_uint)

-0:33        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)

-0:33        'i' (uniform int)

-0:34      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:?   Linker Objects

-0:?     'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:?     'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)

-0:?     'i' (uniform int)

-0:?     'acin' (smooth in atomic_uint)

-0:?     'acg' (global atomic_uint)

-0:?     'aNoBind' (uniform atomic_uint)

-0:?     'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)

-0:?     'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)

-0:?     'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)

-0:?     'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)

-0:?     'bar4' (layout(offset=8 ) uniform atomic_uint)

-0:?     'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)

-0:?     'bigBind' (layout(binding=20 ) uniform atomic_uint)

-

-

-Linked fragment stage:

-

-

-Shader version: 420

-ERROR: node is still EOpNull!

-0:5  Function Definition: func(au1; (global uint)

-0:5    Function Parameters: 

-0:5      'c' (in atomic_uint)

-0:7    Sequence

-0:7      Branch: Return with expression

-0:7        AtomicCounterIncrement (global uint)

-0:7          'c' (in atomic_uint)

-0:10  Function Definition: func2(au1; (global uint)

-0:10    Function Parameters: 

-0:10      'c' (out atomic_uint)

-0:12    Sequence

-0:12      Branch: Return with expression

-0:12        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:13      Branch: Return with expression

-0:13        AtomicCounter (global uint)

-0:13          'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:?     Sequence

-0:19      Sequence

-0:19        move second child to first child (temp uint)

-0:19          'val' (temp uint)

-0:19          AtomicCounter (global uint)

-0:19            'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:20      AtomicCounterDecrement (global uint)

-0:20        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:26  Function Definition: opac( (global void)

-0:26    Function Parameters: 

-0:28    Sequence

-0:28      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:29      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:31      indirect index (temp int)

-0:31        'a' (temp 3-element array of int)

-0:31        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:32      direct index (layout(binding=1 offset=3 ) temp atomic_uint)

-0:32        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)

-0:32        Constant:

-0:32          2 (const int)

-0:33      indirect index (layout(binding=1 offset=3 ) temp atomic_uint)

-0:33        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)

-0:33        'i' (uniform int)

-0:34      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:?   Linker Objects

-0:?     'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)

-0:?     'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)

-0:?     'i' (uniform int)

-0:?     'acin' (smooth in atomic_uint)

-0:?     'acg' (global atomic_uint)

-0:?     'aNoBind' (uniform atomic_uint)

-0:?     'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)

-0:?     'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)

-0:?     'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)

-0:?     'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)

-0:?     'bar4' (layout(offset=8 ) uniform atomic_uint)

-0:?     'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)

-0:?     'bigBind' (layout(binding=20 ) uniform atomic_uint)

-

+atomic_uint.frag
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:10: 'atomic_uint' : samplers and atomic_uints cannot be output parameters 
+ERROR: 0:12: 'return' : type does not match, or is not convertible to, the function's return type 
+ERROR: 0:18: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter
+ERROR: 0:18: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:23: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:28: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' and a right operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' (or there is no acceptable conversion)
+ERROR: 0:29: '-' :  wrong operand type no operation '-' exists that takes an operand of type layout(binding=0 offset=0 ) uniform atomic_uint (or there is no acceptable conversion)
+ERROR: 0:31: '[]' : scalar integer expression required 
+ERROR: 0:34: 'assign' :  l-value required "counter" (can't modify a uniform)
+ERROR: 0:34: 'assign' :  cannot convert from 'const int' to 'layout(binding=0 offset=0 ) uniform atomic_uint'
+ERROR: 0:37: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acin
+ERROR: 0:37: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg
+ERROR: 0:38: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:40: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:46: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:47: 'offset' : atomic counters sharing the same offset: 12
+ERROR: 0:48: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 18 compilation errors.  No code generated.
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:5  Function Definition: func(au1; (global uint)
+0:5    Function Parameters: 
+0:5      'c' (in atomic_uint)
+0:7    Sequence
+0:7      Branch: Return with expression
+0:7        AtomicCounterIncrement (global uint)
+0:7          'c' (in atomic_uint)
+0:10  Function Definition: func2(au1; (global uint)
+0:10    Function Parameters: 
+0:10      'c' (out atomic_uint)
+0:12    Sequence
+0:12      Branch: Return with expression
+0:12        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:13      Branch: Return with expression
+0:13        AtomicCounter (global uint)
+0:13          'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:?     Sequence
+0:19      Sequence
+0:19        move second child to first child (temp uint)
+0:19          'val' (temp uint)
+0:19          AtomicCounter (global uint)
+0:19            'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:20      AtomicCounterDecrement (global uint)
+0:20        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:26  Function Definition: opac( (global void)
+0:26    Function Parameters: 
+0:28    Sequence
+0:28      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:29      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:31      indirect index (temp int)
+0:31        'a' (temp 3-element array of int)
+0:31        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:32      direct index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:32        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:32        Constant:
+0:32          2 (const int)
+0:33      indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:33        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:33        'i' (uniform int)
+0:34      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:?   Linker Objects
+0:?     'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:?     'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:?     'i' (uniform int)
+0:?     'acin' (smooth in atomic_uint)
+0:?     'acg' (global atomic_uint)
+0:?     'aNoBind' (uniform atomic_uint)
+0:?     'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)
+0:?     'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)
+0:?     'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)
+0:?     'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)
+0:?     'bar4' (layout(offset=8 ) uniform atomic_uint)
+0:?     'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)
+0:?     'bigBind' (layout(binding=20 ) uniform atomic_uint)
+
+
+Linked fragment stage:
+
+
+Shader version: 420
+ERROR: node is still EOpNull!
+0:5  Function Definition: func(au1; (global uint)
+0:5    Function Parameters: 
+0:5      'c' (in atomic_uint)
+0:7    Sequence
+0:7      Branch: Return with expression
+0:7        AtomicCounterIncrement (global uint)
+0:7          'c' (in atomic_uint)
+0:10  Function Definition: func2(au1; (global uint)
+0:10    Function Parameters: 
+0:10      'c' (out atomic_uint)
+0:12    Sequence
+0:12      Branch: Return with expression
+0:12        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:13      Branch: Return with expression
+0:13        AtomicCounter (global uint)
+0:13          'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:?     Sequence
+0:19      Sequence
+0:19        move second child to first child (temp uint)
+0:19          'val' (temp uint)
+0:19          AtomicCounter (global uint)
+0:19            'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:20      AtomicCounterDecrement (global uint)
+0:20        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:26  Function Definition: opac( (global void)
+0:26    Function Parameters: 
+0:28    Sequence
+0:28      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:29      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:31      indirect index (temp int)
+0:31        'a' (temp 3-element array of int)
+0:31        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:32      direct index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:32        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:32        Constant:
+0:32          2 (const int)
+0:33      indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
+0:33        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:33        'i' (uniform int)
+0:34      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:?   Linker Objects
+0:?     'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
+0:?     'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
+0:?     'i' (uniform int)
+0:?     'acin' (smooth in atomic_uint)
+0:?     'acg' (global atomic_uint)
+0:?     'aNoBind' (uniform atomic_uint)
+0:?     'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)
+0:?     'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)
+0:?     'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)
+0:?     'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)
+0:?     'bar4' (layout(offset=8 ) uniform atomic_uint)
+0:?     'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)
+0:?     'bigBind' (layout(binding=20 ) uniform atomic_uint)
+
diff --git a/Test/baseResults/badChars.frag.out b/Test/baseResults/badChars.frag.out
index e3ab945..37af287 100644
--- a/Test/baseResults/badChars.frag.out
+++ b/Test/baseResults/badChars.frag.out
@@ -1,26 +1,26 @@
-badChars.frag

-ERROR: 0:1: 'preprocessor evaluation' : bad expression 

-ERROR: 0:1: '#if' : unexpected tokens following directive 

-ERROR: 0:3: '#error' : A <bad token> B  

-ERROR: 0:4: 'preprocessor evaluation' : bad expression 

-ERROR: 0:4: '#if' : unexpected tokens following directive 

-ERROR: 0:6: 'ÿ' : unexpected token 

-ERROR: 0:7: '' :  syntax error

-ERROR: 7 compilation errors.  No code generated.

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:?   Linker Objects

-0:?     'a' (global mediump int)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:?   Linker Objects

-0:?     'a' (global mediump int)

-

+badChars.frag
+ERROR: 0:1: 'preprocessor evaluation' : bad expression 
+ERROR: 0:1: '#if' : unexpected tokens following directive 
+ERROR: 0:3: '#error' : A <bad token> B  
+ERROR: 0:4: 'preprocessor evaluation' : bad expression 
+ERROR: 0:4: '#if' : unexpected tokens following directive 
+ERROR: 0:6: 'ÿ' : unexpected token 
+ERROR: 0:7: '' :  syntax error
+ERROR: 7 compilation errors.  No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:?   Linker Objects
+0:?     'a' (global mediump int)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:?   Linker Objects
+0:?     'a' (global mediump int)
+
diff --git a/Test/baseResults/comment.frag.out b/Test/baseResults/comment.frag.out
index cf008a6..1c876bb 100644
--- a/Test/baseResults/comment.frag.out
+++ b/Test/baseResults/comment.frag.out
@@ -1,23 +1,23 @@
-comment.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-WARNING: 0:10: 'line continuation' : used at end of comment; the following line is still part of the comment 

-WARNING: 0:12: 'line continuation' : used at end of comment; the following line is still part of the comment 

-

-Shader version: 430

-0:? Sequence

-0:17  Function Definition: main( (global void)

-0:17    Function Parameters: 

-0:?   Linker Objects

-0:?     'v' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 430

-0:? Sequence

-0:17  Function Definition: main( (global void)

-0:17    Function Parameters: 

-0:?   Linker Objects

-0:?     'v' (smooth in 4-component vector of float)

-

+comment.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:10: 'line continuation' : used at end of comment; the following line is still part of the comment 
+WARNING: 0:12: 'line continuation' : used at end of comment; the following line is still part of the comment 
+
+Shader version: 430
+0:? Sequence
+0:17  Function Definition: main( (global void)
+0:17    Function Parameters: 
+0:?   Linker Objects
+0:?     'v' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+0:? Sequence
+0:17  Function Definition: main( (global void)
+0:17    Function Parameters: 
+0:?   Linker Objects
+0:?     'v' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/conditionalDiscard.frag.out b/Test/baseResults/conditionalDiscard.frag.out
index 13b385f..169787f 100644
--- a/Test/baseResults/conditionalDiscard.frag.out
+++ b/Test/baseResults/conditionalDiscard.frag.out
@@ -1,63 +1,63 @@
-conditionalDiscard.frag

-Shader version: 110

-0:? Sequence

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:8    Sequence

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'v' (temp 4-component vector of float)

-0:8          texture (global 4-component vector of float)

-0:8            'tex' (uniform sampler2D)

-0:8            'coord' (smooth in 2-component vector of float)

-0:10      Test condition and select (temp void)

-0:10        Condition

-0:10        Compare Equal (temp bool)

-0:10          'v' (temp 4-component vector of float)

-0:10          Constant:

-0:10            0.100000

-0:10            0.200000

-0:10            0.300000

-0:10            0.400000

-0:10        true case

-0:11        Branch: Kill

-0:13      move second child to first child (temp 4-component vector of float)

-0:13        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:13        'v' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:8    Sequence

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'v' (temp 4-component vector of float)

-0:8          texture (global 4-component vector of float)

-0:8            'tex' (uniform sampler2D)

-0:8            'coord' (smooth in 2-component vector of float)

-0:10      Test condition and select (temp void)

-0:10        Condition

-0:10        Compare Equal (temp bool)

-0:10          'v' (temp 4-component vector of float)

-0:10          Constant:

-0:10            0.100000

-0:10            0.200000

-0:10            0.300000

-0:10            0.400000

-0:10        true case

-0:11        Branch: Kill

-0:13      move second child to first child (temp 4-component vector of float)

-0:13        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:13        'v' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-

+conditionalDiscard.frag
+Shader version: 110
+0:? Sequence
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:8    Sequence
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'v' (temp 4-component vector of float)
+0:8          texture (global 4-component vector of float)
+0:8            'tex' (uniform sampler2D)
+0:8            'coord' (smooth in 2-component vector of float)
+0:10      Test condition and select (temp void)
+0:10        Condition
+0:10        Compare Equal (temp bool)
+0:10          'v' (temp 4-component vector of float)
+0:10          Constant:
+0:10            0.100000
+0:10            0.200000
+0:10            0.300000
+0:10            0.400000
+0:10        true case
+0:11        Branch: Kill
+0:13      move second child to first child (temp 4-component vector of float)
+0:13        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:13        'v' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:8    Sequence
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'v' (temp 4-component vector of float)
+0:8          texture (global 4-component vector of float)
+0:8            'tex' (uniform sampler2D)
+0:8            'coord' (smooth in 2-component vector of float)
+0:10      Test condition and select (temp void)
+0:10        Condition
+0:10        Compare Equal (temp bool)
+0:10          'v' (temp 4-component vector of float)
+0:10          Constant:
+0:10            0.100000
+0:10            0.200000
+0:10            0.300000
+0:10            0.400000
+0:10        true case
+0:11        Branch: Kill
+0:13      move second child to first child (temp 4-component vector of float)
+0:13        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:13        'v' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+
diff --git a/Test/baseResults/constErrors.frag.out b/Test/baseResults/constErrors.frag.out
index 9ecf330..6f12aec 100644
--- a/Test/baseResults/constErrors.frag.out
+++ b/Test/baseResults/constErrors.frag.out
@@ -1,57 +1,57 @@
-constErrors.frag

-ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions 

-ERROR: 0:17: '' : constant expression required 

-ERROR: 0:17: '' : array size must be a constant integer expression 

-ERROR: 0:18: '' : constant expression required 

-ERROR: 0:18: '' : array size must be a constant integer expression 

-ERROR: 0:19: '' : constant expression required 

-ERROR: 0:19: '' : array size must be a constant integer expression 

-ERROR: 0:27: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2}'

-ERROR: 0:33: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}'

-ERROR: 9 compilation errors.  No code generated.

-

-

-Shader version: 330

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:?     Sequence

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'a3' (const (read only) int)

-0:14          'uniformInt' (uniform int)

-0:?   Linker Objects

-0:?     'inVar' (smooth in 4-component vector of float)

-0:?     'outVar' (out 4-component vector of float)

-0:?     'constInt' (const int)

-0:?       3 (const int)

-0:?     'uniformInt' (uniform int)

-0:?     's' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2})

-0:?     's2' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})

-0:?     'f' (const float)

-0:?       3.000000

-

-

-Linked fragment stage:

-

-

-Shader version: 330

-ERROR: node is still EOpNull!

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:?     Sequence

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'a3' (const (read only) int)

-0:14          'uniformInt' (uniform int)

-0:?   Linker Objects

-0:?     'inVar' (smooth in 4-component vector of float)

-0:?     'outVar' (out 4-component vector of float)

-0:?     'constInt' (const int)

-0:?       3 (const int)

-0:?     'uniformInt' (uniform int)

-0:?     's' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2})

-0:?     's2' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})

-0:?     'f' (const float)

-0:?       3.000000

-

+constErrors.frag
+ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions 
+ERROR: 0:17: '' : constant expression required 
+ERROR: 0:17: '' : array size must be a constant integer expression 
+ERROR: 0:18: '' : constant expression required 
+ERROR: 0:18: '' : array size must be a constant integer expression 
+ERROR: 0:19: '' : constant expression required 
+ERROR: 0:19: '' : array size must be a constant integer expression 
+ERROR: 0:27: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2}'
+ERROR: 0:33: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}'
+ERROR: 9 compilation errors.  No code generated.
+
+
+Shader version: 330
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:?     Sequence
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'a3' (const (read only) int)
+0:14          'uniformInt' (uniform int)
+0:?   Linker Objects
+0:?     'inVar' (smooth in 4-component vector of float)
+0:?     'outVar' (out 4-component vector of float)
+0:?     'constInt' (const int)
+0:?       3 (const int)
+0:?     'uniformInt' (uniform int)
+0:?     's' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2})
+0:?     's2' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:?     'f' (const float)
+0:?       3.000000
+
+
+Linked fragment stage:
+
+
+Shader version: 330
+ERROR: node is still EOpNull!
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:?     Sequence
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'a3' (const (read only) int)
+0:14          'uniformInt' (uniform int)
+0:?   Linker Objects
+0:?     'inVar' (smooth in 4-component vector of float)
+0:?     'outVar' (out 4-component vector of float)
+0:?     'constInt' (const int)
+0:?       3 (const int)
+0:?     'uniformInt' (uniform int)
+0:?     's' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2})
+0:?     's2' (temp structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:?     'f' (const float)
+0:?       3.000000
+
diff --git a/Test/baseResults/constFold.frag.out b/Test/baseResults/constFold.frag.out
index 7d6d6b5..bd6e040 100644
--- a/Test/baseResults/constFold.frag.out
+++ b/Test/baseResults/constFold.frag.out
@@ -1,661 +1,661 @@
-constFold.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:109: '[' :  index out of range '-1'

-ERROR: 0:110: '[' :  vector index out of range '4'

-ERROR: 0:111: '[' :  index out of range '-2'

-ERROR: 0:112: '[' :  index out of range '-1'

-ERROR: 0:113: '[' :  vector index out of range '3'

-ERROR: 0:114: '[' :  matrix index out of range '3'

-ERROR: 6 compilation errors.  No code generated.

-

-

-Shader version: 430

-ERROR: node is still EOpNull!

-0:28  Function Definition: main( (global void)

-0:28    Function Parameters: 

-0:30    Sequence

-0:30      Sequence

-0:30        move second child to first child (temp 4-component vector of float)

-0:30          'dx' (temp 4-component vector of float)

-0:30          dPdx (global 4-component vector of float)

-0:30            'inv' (smooth in 4-component vector of float)

-0:37      move second child to first child (temp 4-component vector of float)

-0:37        'FragColor' (out 4-component vector of float)

-0:37        Constant:

-0:37          2.000000

-0:37          6.000000

-0:37          3.000000

-0:37          171.887339

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        'FragColor' (out 4-component vector of float)

-0:42        Constant:

-0:42          3.000000

-0:42          2.000000

-0:42          0.001593

-0:42          -0.999999

-0:43      move second child to first child (temp 2-component vector of float)

-0:43        'out2' (out 2-component vector of float)

-0:43        Constant:

-0:43          5.600000

-0:43          5.800000

-0:44      move second child to first child (temp 4-component vector of float)

-0:44        'out3' (out 4-component vector of float)

-0:44        Constant:

-0:44          20.085537

-0:44          2.302585

-0:44          16.000000

-0:44          8.000000

-0:45      move second child to first child (temp 4-component vector of float)

-0:45        'out4' (out 4-component vector of float)

-0:45        Constant:

-0:45          10.000000

-0:45          0.100000

-0:45          4.700000

-0:45          10.900000

-0:46      move second child to first child (temp 4-component vector of int)

-0:46        'out5' (out 4-component vector of int)

-0:46        Constant:

-0:46          8 (const int)

-0:46          17 (const int)

-0:46          -1 (const int)

-0:46          1 (const int)

-0:47      move second child to first child (temp 3-component vector of float)

-0:47        'out6' (out 3-component vector of float)

-0:47        Constant:

-0:47          -1.000000

-0:47          1.000000

-0:47          0.000000

-0:48      move second child to first child (temp 4-component vector of float)

-0:48        'out7' (out 4-component vector of float)

-0:48        Constant:

-0:48          4.000000

-0:48          -4.000000

-0:48          5.000000

-0:48          -5.000000

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        'out8' (out 4-component vector of float)

-0:49        Constant:

-0:49          4.000000

-0:49          5.000000

-0:49          4.000000

-0:49          -6.000000

-0:50      move second child to first child (temp 4-component vector of float)

-0:50        'out9' (out 4-component vector of float)

-0:50        Constant:

-0:50          8.000000

-0:50          -4.000000

-0:50          0.345000

-0:50          0.400000

-0:51      move second child to first child (temp 4-component vector of float)

-0:51        'out10' (out 4-component vector of float)

-0:51        Constant:

-0:51          1.000000

-0:51          1.000000

-0:51          0.000000

-0:51          0.000000

-0:52      move second child to first child (temp 4-component vector of float)

-0:52        'out11' (out 4-component vector of float)

-0:52        Constant:

-0:52          0.000000

-0:52          0.000000

-0:52          1.000000

-0:52          0.000000

-0:53      move second child to first child (temp 4-component vector of float)

-0:53        'out11' (out 4-component vector of float)

-0:53        Constant:

-0:53          1.029639

-0:53          0.799690

-0:53          0.674741

-0:53          1.570696

-0:54      move second child to first child (temp 4-component vector of float)

-0:54        'out11' (out 4-component vector of float)

-0:54        Constant:

-0:54          0.000000

-0:54          0.523599

-0:54          1.570796

-0:54          1.047198

-0:58      move second child to first child (temp 4-component vector of float)

-0:58        'out11' (out 4-component vector of float)

-0:58        Constant:

-0:58          1.373401

-0:58          0.000000

-0:58          0.896055

-0:58          -0.380506

-0:62      move second child to first child (temp 2-component vector of int)

-0:62        'out12' (out 2-component vector of int)

-0:62        Constant:

-0:62          15 (const int)

-0:62          16 (const int)

-0:63      move second child to first child (temp 2-component vector of int)

-0:63        'out12' (out 2-component vector of int)

-0:63        Constant:

-0:63          17 (const int)

-0:63          17 (const int)

-0:64      move second child to first child (temp 2-component vector of float)

-0:64        'out2' (out 2-component vector of float)

-0:64        Constant:

-0:64          871.421253

-0:64          4913.000000

-0:65      move second child to first child (temp 3-component vector of uint)

-0:65        'out13' (out 3-component vector of uint)

-0:65        Constant:

-0:65          10 (const uint)

-0:65          20 (const uint)

-0:65          30 (const uint)

-0:66      move second child to first child (temp 2-component vector of float)

-0:66        'out2' (out 2-component vector of float)

-0:66        Constant:

-0:66          3.000000

-0:66          6.000000

-0:67      move second child to first child (temp 2-component vector of float)

-0:67        'out2' (out 2-component vector of float)

-0:67        Constant:

-0:67          3.500000

-0:67          4.500000

-0:68      move second child to first child (temp 2-component vector of float)

-0:68        'out2' (out 2-component vector of float)

-0:68        Constant:

-0:68          0.000000

-0:68          1.000000

-0:69      move second child to first child (temp 4-component vector of float)

-0:69        'out11' (out 4-component vector of float)

-0:69        Constant:

-0:69          0.000000

-0:69          0.028000

-0:69          0.500000

-0:69          1.000000

-0:78  Function Definition: foo( (global void)

-0:78    Function Parameters: 

-0:?     Sequence

-0:81      move second child to first child (temp float)

-0:81        direct index (temp float)

-0:81          'a' (temp 3-element array of float)

-0:81          Constant:

-0:81            0 (const int)

-0:81        Constant:

-0:81          7.000000

-0:82      Constant:

-0:82        2 (const int)

-0:83      Constant:

-0:83        2147483647 (const int)

-0:84      Constant:

-0:84        inf

-0:88      Constant:

-0:88        2 (const uint)

-0:88        3 (const uint)

-0:89      Constant:

-0:89        0 (const uint)

-0:90      Constant:

-0:90        6 (const uint)

-0:90        7 (const uint)

-0:103  Function Definition: foo2( (global void)

-0:103    Function Parameters: 

-0:105    Sequence

-0:105      direct index (temp float)

-0:105        'a1' (global 1-element array of float)

-0:105        Constant:

-0:105          0 (const int)

-0:106      direct index (temp float)

-0:106        'a2' (global 2-element array of float)

-0:106        Constant:

-0:106          0 (const int)

-0:107      direct index (temp float)

-0:107        'a3' (global 4-element array of float)

-0:107        Constant:

-0:107          0 (const int)

-0:108      direct index (temp float)

-0:108        'a4' (global 2-element array of float)

-0:108        Constant:

-0:108          0 (const int)

-0:109      Constant:

-0:109        1.000000

-0:110      Constant:

-0:110        5.000000

-0:111      Constant:

-0:111        2.000000

-0:112      Constant:

-0:112        3.000000

-0:113      Constant:

-0:113        0.000000

-0:114      Constant:

-0:114        0.000000

-0:116      move second child to first child (temp int)

-0:116        'p' (temp int)

-0:116        Constant:

-0:116          2147483647 (const int)

-0:117      move second child to first child (temp int)

-0:117        'p' (temp int)

-0:117        Constant:

-0:117          -2147483648 (const int)

-0:118      move second child to first child (temp int)

-0:118        'p' (temp int)

-0:118        Constant:

-0:118          -2147483647 (const int)

-0:119      Sequence

-0:119        move second child to first child (temp float)

-0:119          'f' (temp float)

-0:119          Constant:

-0:119            1.444000

-0:120      move second child to first child (temp float)

-0:120        'f' (temp float)

-0:120        direct index (temp float)

-0:120          Construct vec4 (temp 4-component vector of float)

-0:120            Test condition and select (temp float)

-0:120              Condition

-0:120              Compare Less Than (temp bool)

-0:120                direct index (temp float)

-0:120                  'inv' (smooth in 4-component vector of float)

-0:120                  Constant:

-0:120                    0 (const int)

-0:120                Constant:

-0:120                  2.400000

-0:120              true case

-0:120              Constant:

-0:120                -1.000000

-0:120              false case

-0:120              Constant:

-0:120                1.000000

-0:120          Constant:

-0:120            3 (const int)

-0:?   Linker Objects

-0:?     'a' (const int)

-0:?       1 (const int)

-0:?     'b' (const int)

-0:?       2 (const int)

-0:?     'c' (const int)

-0:?       3 (const int)

-0:?     'd' (const int)

-0:?       2 (const int)

-0:?     'e' (const float)

-0:?       2.000000

-0:?     'f' (const float)

-0:?       6.000000

-0:?     'g' (const float)

-0:?       3.000000

-0:?     'pytho' (const 2-component vector of float)

-0:?       3.000000

-0:?       4.000000

-0:?     'inv' (smooth in 4-component vector of float)

-0:?     'FragColor' (out 4-component vector of float)

-0:?     'out2' (out 2-component vector of float)

-0:?     'out3' (out 4-component vector of float)

-0:?     'out4' (out 4-component vector of float)

-0:?     'out5' (out 4-component vector of int)

-0:?     'out6' (out 3-component vector of float)

-0:?     'out7' (out 4-component vector of float)

-0:?     'out8' (out 4-component vector of float)

-0:?     'out9' (out 4-component vector of float)

-0:?     'out10' (out 4-component vector of float)

-0:?     'out11' (out 4-component vector of float)

-0:?     'out12' (out 2-component vector of int)

-0:?     'out13' (out 3-component vector of uint)

-0:?     's' (const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})

-0:?       3.000000

-0:?       3.000000

-0:?       3.000000

-0:?       3 (const int)

-0:?       3 (const int)

-0:?       1.000000

-0:?       2.000000

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?       6.000000

-0:?       7.000000

-0:?       8.000000

-0:?     'm2' (const 2X2 matrix of float)

-0:?       2.000000

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?     'm3' (const 3X3 matrix of float)

-0:?       2.000000

-0:?       3.000000

-0:?       0.000000

-0:?       4.000000

-0:?       5.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'mc' (const int)

-0:?       1 (const int)

-0:?     'a1' (global 1-element array of float)

-0:?     'a2' (global 2-element array of float)

-0:?     'a3' (global 4-element array of float)

-0:?     'v2' (const 2-component vector of float)

-0:?       1.000000

-0:?       2.000000

-0:?     'v3' (const 3-component vector of float)

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?     'a4' (global 2-element array of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 430

-ERROR: node is still EOpNull!

-0:28  Function Definition: main( (global void)

-0:28    Function Parameters: 

-0:30    Sequence

-0:30      Sequence

-0:30        move second child to first child (temp 4-component vector of float)

-0:30          'dx' (temp 4-component vector of float)

-0:30          dPdx (global 4-component vector of float)

-0:30            'inv' (smooth in 4-component vector of float)

-0:37      move second child to first child (temp 4-component vector of float)

-0:37        'FragColor' (out 4-component vector of float)

-0:37        Constant:

-0:37          2.000000

-0:37          6.000000

-0:37          3.000000

-0:37          171.887339

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        'FragColor' (out 4-component vector of float)

-0:42        Constant:

-0:42          3.000000

-0:42          2.000000

-0:42          0.001593

-0:42          -0.999999

-0:43      move second child to first child (temp 2-component vector of float)

-0:43        'out2' (out 2-component vector of float)

-0:43        Constant:

-0:43          5.600000

-0:43          5.800000

-0:44      move second child to first child (temp 4-component vector of float)

-0:44        'out3' (out 4-component vector of float)

-0:44        Constant:

-0:44          20.085537

-0:44          2.302585

-0:44          16.000000

-0:44          8.000000

-0:45      move second child to first child (temp 4-component vector of float)

-0:45        'out4' (out 4-component vector of float)

-0:45        Constant:

-0:45          10.000000

-0:45          0.100000

-0:45          4.700000

-0:45          10.900000

-0:46      move second child to first child (temp 4-component vector of int)

-0:46        'out5' (out 4-component vector of int)

-0:46        Constant:

-0:46          8 (const int)

-0:46          17 (const int)

-0:46          -1 (const int)

-0:46          1 (const int)

-0:47      move second child to first child (temp 3-component vector of float)

-0:47        'out6' (out 3-component vector of float)

-0:47        Constant:

-0:47          -1.000000

-0:47          1.000000

-0:47          0.000000

-0:48      move second child to first child (temp 4-component vector of float)

-0:48        'out7' (out 4-component vector of float)

-0:48        Constant:

-0:48          4.000000

-0:48          -4.000000

-0:48          5.000000

-0:48          -5.000000

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        'out8' (out 4-component vector of float)

-0:49        Constant:

-0:49          4.000000

-0:49          5.000000

-0:49          4.000000

-0:49          -6.000000

-0:50      move second child to first child (temp 4-component vector of float)

-0:50        'out9' (out 4-component vector of float)

-0:50        Constant:

-0:50          8.000000

-0:50          -4.000000

-0:50          0.345000

-0:50          0.400000

-0:51      move second child to first child (temp 4-component vector of float)

-0:51        'out10' (out 4-component vector of float)

-0:51        Constant:

-0:51          1.000000

-0:51          1.000000

-0:51          0.000000

-0:51          0.000000

-0:52      move second child to first child (temp 4-component vector of float)

-0:52        'out11' (out 4-component vector of float)

-0:52        Constant:

-0:52          0.000000

-0:52          0.000000

-0:52          1.000000

-0:52          0.000000

-0:53      move second child to first child (temp 4-component vector of float)

-0:53        'out11' (out 4-component vector of float)

-0:53        Constant:

-0:53          1.029639

-0:53          0.799690

-0:53          0.674741

-0:53          1.570696

-0:54      move second child to first child (temp 4-component vector of float)

-0:54        'out11' (out 4-component vector of float)

-0:54        Constant:

-0:54          0.000000

-0:54          0.523599

-0:54          1.570796

-0:54          1.047198

-0:58      move second child to first child (temp 4-component vector of float)

-0:58        'out11' (out 4-component vector of float)

-0:58        Constant:

-0:58          1.373401

-0:58          0.000000

-0:58          0.896055

-0:58          -0.380506

-0:62      move second child to first child (temp 2-component vector of int)

-0:62        'out12' (out 2-component vector of int)

-0:62        Constant:

-0:62          15 (const int)

-0:62          16 (const int)

-0:63      move second child to first child (temp 2-component vector of int)

-0:63        'out12' (out 2-component vector of int)

-0:63        Constant:

-0:63          17 (const int)

-0:63          17 (const int)

-0:64      move second child to first child (temp 2-component vector of float)

-0:64        'out2' (out 2-component vector of float)

-0:64        Constant:

-0:64          871.421253

-0:64          4913.000000

-0:65      move second child to first child (temp 3-component vector of uint)

-0:65        'out13' (out 3-component vector of uint)

-0:65        Constant:

-0:65          10 (const uint)

-0:65          20 (const uint)

-0:65          30 (const uint)

-0:66      move second child to first child (temp 2-component vector of float)

-0:66        'out2' (out 2-component vector of float)

-0:66        Constant:

-0:66          3.000000

-0:66          6.000000

-0:67      move second child to first child (temp 2-component vector of float)

-0:67        'out2' (out 2-component vector of float)

-0:67        Constant:

-0:67          3.500000

-0:67          4.500000

-0:68      move second child to first child (temp 2-component vector of float)

-0:68        'out2' (out 2-component vector of float)

-0:68        Constant:

-0:68          0.000000

-0:68          1.000000

-0:69      move second child to first child (temp 4-component vector of float)

-0:69        'out11' (out 4-component vector of float)

-0:69        Constant:

-0:69          0.000000

-0:69          0.028000

-0:69          0.500000

-0:69          1.000000

-0:78  Function Definition: foo( (global void)

-0:78    Function Parameters: 

-0:?     Sequence

-0:81      move second child to first child (temp float)

-0:81        direct index (temp float)

-0:81          'a' (temp 3-element array of float)

-0:81          Constant:

-0:81            0 (const int)

-0:81        Constant:

-0:81          7.000000

-0:82      Constant:

-0:82        2 (const int)

-0:83      Constant:

-0:83        2147483647 (const int)

-0:84      Constant:

-0:84        inf

-0:88      Constant:

-0:88        2 (const uint)

-0:88        3 (const uint)

-0:89      Constant:

-0:89        0 (const uint)

-0:90      Constant:

-0:90        6 (const uint)

-0:90        7 (const uint)

-0:103  Function Definition: foo2( (global void)

-0:103    Function Parameters: 

-0:105    Sequence

-0:105      direct index (temp float)

-0:105        'a1' (global 1-element array of float)

-0:105        Constant:

-0:105          0 (const int)

-0:106      direct index (temp float)

-0:106        'a2' (global 2-element array of float)

-0:106        Constant:

-0:106          0 (const int)

-0:107      direct index (temp float)

-0:107        'a3' (global 4-element array of float)

-0:107        Constant:

-0:107          0 (const int)

-0:108      direct index (temp float)

-0:108        'a4' (global 2-element array of float)

-0:108        Constant:

-0:108          0 (const int)

-0:109      Constant:

-0:109        1.000000

-0:110      Constant:

-0:110        5.000000

-0:111      Constant:

-0:111        2.000000

-0:112      Constant:

-0:112        3.000000

-0:113      Constant:

-0:113        0.000000

-0:114      Constant:

-0:114        0.000000

-0:116      move second child to first child (temp int)

-0:116        'p' (temp int)

-0:116        Constant:

-0:116          2147483647 (const int)

-0:117      move second child to first child (temp int)

-0:117        'p' (temp int)

-0:117        Constant:

-0:117          -2147483648 (const int)

-0:118      move second child to first child (temp int)

-0:118        'p' (temp int)

-0:118        Constant:

-0:118          -2147483647 (const int)

-0:119      Sequence

-0:119        move second child to first child (temp float)

-0:119          'f' (temp float)

-0:119          Constant:

-0:119            1.444000

-0:120      move second child to first child (temp float)

-0:120        'f' (temp float)

-0:120        direct index (temp float)

-0:120          Construct vec4 (temp 4-component vector of float)

-0:120            Test condition and select (temp float)

-0:120              Condition

-0:120              Compare Less Than (temp bool)

-0:120                direct index (temp float)

-0:120                  'inv' (smooth in 4-component vector of float)

-0:120                  Constant:

-0:120                    0 (const int)

-0:120                Constant:

-0:120                  2.400000

-0:120              true case

-0:120              Constant:

-0:120                -1.000000

-0:120              false case

-0:120              Constant:

-0:120                1.000000

-0:120          Constant:

-0:120            3 (const int)

-0:?   Linker Objects

-0:?     'a' (const int)

-0:?       1 (const int)

-0:?     'b' (const int)

-0:?       2 (const int)

-0:?     'c' (const int)

-0:?       3 (const int)

-0:?     'd' (const int)

-0:?       2 (const int)

-0:?     'e' (const float)

-0:?       2.000000

-0:?     'f' (const float)

-0:?       6.000000

-0:?     'g' (const float)

-0:?       3.000000

-0:?     'pytho' (const 2-component vector of float)

-0:?       3.000000

-0:?       4.000000

-0:?     'inv' (smooth in 4-component vector of float)

-0:?     'FragColor' (out 4-component vector of float)

-0:?     'out2' (out 2-component vector of float)

-0:?     'out3' (out 4-component vector of float)

-0:?     'out4' (out 4-component vector of float)

-0:?     'out5' (out 4-component vector of int)

-0:?     'out6' (out 3-component vector of float)

-0:?     'out7' (out 4-component vector of float)

-0:?     'out8' (out 4-component vector of float)

-0:?     'out9' (out 4-component vector of float)

-0:?     'out10' (out 4-component vector of float)

-0:?     'out11' (out 4-component vector of float)

-0:?     'out12' (out 2-component vector of int)

-0:?     'out13' (out 3-component vector of uint)

-0:?     's' (const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})

-0:?       3.000000

-0:?       3.000000

-0:?       3.000000

-0:?       3 (const int)

-0:?       3 (const int)

-0:?       1.000000

-0:?       2.000000

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?       6.000000

-0:?       7.000000

-0:?       8.000000

-0:?     'm2' (const 2X2 matrix of float)

-0:?       2.000000

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?     'm3' (const 3X3 matrix of float)

-0:?       2.000000

-0:?       3.000000

-0:?       0.000000

-0:?       4.000000

-0:?       5.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       1.000000

-0:?     'mc' (const int)

-0:?       1 (const int)

-0:?     'a1' (global 1-element array of float)

-0:?     'a2' (global 2-element array of float)

-0:?     'a3' (global 4-element array of float)

-0:?     'v2' (const 2-component vector of float)

-0:?       1.000000

-0:?       2.000000

-0:?     'v3' (const 3-component vector of float)

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?     'a4' (global 2-element array of float)

-

+constFold.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:109: '[' :  index out of range '-1'
+ERROR: 0:110: '[' :  vector index out of range '4'
+ERROR: 0:111: '[' :  index out of range '-2'
+ERROR: 0:112: '[' :  index out of range '-1'
+ERROR: 0:113: '[' :  vector index out of range '3'
+ERROR: 0:114: '[' :  matrix index out of range '3'
+ERROR: 6 compilation errors.  No code generated.
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:28  Function Definition: main( (global void)
+0:28    Function Parameters: 
+0:30    Sequence
+0:30      Sequence
+0:30        move second child to first child (temp 4-component vector of float)
+0:30          'dx' (temp 4-component vector of float)
+0:30          dPdx (global 4-component vector of float)
+0:30            'inv' (smooth in 4-component vector of float)
+0:37      move second child to first child (temp 4-component vector of float)
+0:37        'FragColor' (out 4-component vector of float)
+0:37        Constant:
+0:37          2.000000
+0:37          6.000000
+0:37          3.000000
+0:37          171.887339
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        'FragColor' (out 4-component vector of float)
+0:42        Constant:
+0:42          3.000000
+0:42          2.000000
+0:42          0.001593
+0:42          -0.999999
+0:43      move second child to first child (temp 2-component vector of float)
+0:43        'out2' (out 2-component vector of float)
+0:43        Constant:
+0:43          5.600000
+0:43          5.800000
+0:44      move second child to first child (temp 4-component vector of float)
+0:44        'out3' (out 4-component vector of float)
+0:44        Constant:
+0:44          20.085537
+0:44          2.302585
+0:44          16.000000
+0:44          8.000000
+0:45      move second child to first child (temp 4-component vector of float)
+0:45        'out4' (out 4-component vector of float)
+0:45        Constant:
+0:45          10.000000
+0:45          0.100000
+0:45          4.700000
+0:45          10.900000
+0:46      move second child to first child (temp 4-component vector of int)
+0:46        'out5' (out 4-component vector of int)
+0:46        Constant:
+0:46          8 (const int)
+0:46          17 (const int)
+0:46          -1 (const int)
+0:46          1 (const int)
+0:47      move second child to first child (temp 3-component vector of float)
+0:47        'out6' (out 3-component vector of float)
+0:47        Constant:
+0:47          -1.000000
+0:47          1.000000
+0:47          0.000000
+0:48      move second child to first child (temp 4-component vector of float)
+0:48        'out7' (out 4-component vector of float)
+0:48        Constant:
+0:48          4.000000
+0:48          -4.000000
+0:48          5.000000
+0:48          -5.000000
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        'out8' (out 4-component vector of float)
+0:49        Constant:
+0:49          4.000000
+0:49          5.000000
+0:49          4.000000
+0:49          -6.000000
+0:50      move second child to first child (temp 4-component vector of float)
+0:50        'out9' (out 4-component vector of float)
+0:50        Constant:
+0:50          8.000000
+0:50          -4.000000
+0:50          0.345000
+0:50          0.400000
+0:51      move second child to first child (temp 4-component vector of float)
+0:51        'out10' (out 4-component vector of float)
+0:51        Constant:
+0:51          1.000000
+0:51          1.000000
+0:51          0.000000
+0:51          0.000000
+0:52      move second child to first child (temp 4-component vector of float)
+0:52        'out11' (out 4-component vector of float)
+0:52        Constant:
+0:52          0.000000
+0:52          0.000000
+0:52          1.000000
+0:52          0.000000
+0:53      move second child to first child (temp 4-component vector of float)
+0:53        'out11' (out 4-component vector of float)
+0:53        Constant:
+0:53          1.029639
+0:53          0.799690
+0:53          0.674741
+0:53          1.570696
+0:54      move second child to first child (temp 4-component vector of float)
+0:54        'out11' (out 4-component vector of float)
+0:54        Constant:
+0:54          0.000000
+0:54          0.523599
+0:54          1.570796
+0:54          1.047198
+0:58      move second child to first child (temp 4-component vector of float)
+0:58        'out11' (out 4-component vector of float)
+0:58        Constant:
+0:58          1.373401
+0:58          0.000000
+0:58          0.896055
+0:58          -0.380506
+0:62      move second child to first child (temp 2-component vector of int)
+0:62        'out12' (out 2-component vector of int)
+0:62        Constant:
+0:62          15 (const int)
+0:62          16 (const int)
+0:63      move second child to first child (temp 2-component vector of int)
+0:63        'out12' (out 2-component vector of int)
+0:63        Constant:
+0:63          17 (const int)
+0:63          17 (const int)
+0:64      move second child to first child (temp 2-component vector of float)
+0:64        'out2' (out 2-component vector of float)
+0:64        Constant:
+0:64          871.421253
+0:64          4913.000000
+0:65      move second child to first child (temp 3-component vector of uint)
+0:65        'out13' (out 3-component vector of uint)
+0:65        Constant:
+0:65          10 (const uint)
+0:65          20 (const uint)
+0:65          30 (const uint)
+0:66      move second child to first child (temp 2-component vector of float)
+0:66        'out2' (out 2-component vector of float)
+0:66        Constant:
+0:66          3.000000
+0:66          6.000000
+0:67      move second child to first child (temp 2-component vector of float)
+0:67        'out2' (out 2-component vector of float)
+0:67        Constant:
+0:67          3.500000
+0:67          4.500000
+0:68      move second child to first child (temp 2-component vector of float)
+0:68        'out2' (out 2-component vector of float)
+0:68        Constant:
+0:68          0.000000
+0:68          1.000000
+0:69      move second child to first child (temp 4-component vector of float)
+0:69        'out11' (out 4-component vector of float)
+0:69        Constant:
+0:69          0.000000
+0:69          0.028000
+0:69          0.500000
+0:69          1.000000
+0:78  Function Definition: foo( (global void)
+0:78    Function Parameters: 
+0:?     Sequence
+0:81      move second child to first child (temp float)
+0:81        direct index (temp float)
+0:81          'a' (temp 3-element array of float)
+0:81          Constant:
+0:81            0 (const int)
+0:81        Constant:
+0:81          7.000000
+0:82      Constant:
+0:82        2 (const int)
+0:83      Constant:
+0:83        2147483647 (const int)
+0:84      Constant:
+0:84        inf
+0:88      Constant:
+0:88        2 (const uint)
+0:88        3 (const uint)
+0:89      Constant:
+0:89        0 (const uint)
+0:90      Constant:
+0:90        6 (const uint)
+0:90        7 (const uint)
+0:103  Function Definition: foo2( (global void)
+0:103    Function Parameters: 
+0:105    Sequence
+0:105      direct index (temp float)
+0:105        'a1' (global 1-element array of float)
+0:105        Constant:
+0:105          0 (const int)
+0:106      direct index (temp float)
+0:106        'a2' (global 2-element array of float)
+0:106        Constant:
+0:106          0 (const int)
+0:107      direct index (temp float)
+0:107        'a3' (global 4-element array of float)
+0:107        Constant:
+0:107          0 (const int)
+0:108      direct index (temp float)
+0:108        'a4' (global 2-element array of float)
+0:108        Constant:
+0:108          0 (const int)
+0:109      Constant:
+0:109        1.000000
+0:110      Constant:
+0:110        5.000000
+0:111      Constant:
+0:111        2.000000
+0:112      Constant:
+0:112        3.000000
+0:113      Constant:
+0:113        0.000000
+0:114      Constant:
+0:114        0.000000
+0:116      move second child to first child (temp int)
+0:116        'p' (temp int)
+0:116        Constant:
+0:116          2147483647 (const int)
+0:117      move second child to first child (temp int)
+0:117        'p' (temp int)
+0:117        Constant:
+0:117          -2147483648 (const int)
+0:118      move second child to first child (temp int)
+0:118        'p' (temp int)
+0:118        Constant:
+0:118          -2147483647 (const int)
+0:119      Sequence
+0:119        move second child to first child (temp float)
+0:119          'f' (temp float)
+0:119          Constant:
+0:119            1.444000
+0:120      move second child to first child (temp float)
+0:120        'f' (temp float)
+0:120        direct index (temp float)
+0:120          Construct vec4 (temp 4-component vector of float)
+0:120            Test condition and select (temp float)
+0:120              Condition
+0:120              Compare Less Than (temp bool)
+0:120                direct index (temp float)
+0:120                  'inv' (smooth in 4-component vector of float)
+0:120                  Constant:
+0:120                    0 (const int)
+0:120                Constant:
+0:120                  2.400000
+0:120              true case
+0:120              Constant:
+0:120                -1.000000
+0:120              false case
+0:120              Constant:
+0:120                1.000000
+0:120          Constant:
+0:120            3 (const int)
+0:?   Linker Objects
+0:?     'a' (const int)
+0:?       1 (const int)
+0:?     'b' (const int)
+0:?       2 (const int)
+0:?     'c' (const int)
+0:?       3 (const int)
+0:?     'd' (const int)
+0:?       2 (const int)
+0:?     'e' (const float)
+0:?       2.000000
+0:?     'f' (const float)
+0:?       6.000000
+0:?     'g' (const float)
+0:?       3.000000
+0:?     'pytho' (const 2-component vector of float)
+0:?       3.000000
+0:?       4.000000
+0:?     'inv' (smooth in 4-component vector of float)
+0:?     'FragColor' (out 4-component vector of float)
+0:?     'out2' (out 2-component vector of float)
+0:?     'out3' (out 4-component vector of float)
+0:?     'out4' (out 4-component vector of float)
+0:?     'out5' (out 4-component vector of int)
+0:?     'out6' (out 3-component vector of float)
+0:?     'out7' (out 4-component vector of float)
+0:?     'out8' (out 4-component vector of float)
+0:?     'out9' (out 4-component vector of float)
+0:?     'out10' (out 4-component vector of float)
+0:?     'out11' (out 4-component vector of float)
+0:?     'out12' (out 2-component vector of int)
+0:?     'out13' (out 3-component vector of uint)
+0:?     's' (const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:?       3.000000
+0:?       3.000000
+0:?       3.000000
+0:?       3 (const int)
+0:?       3 (const int)
+0:?       1.000000
+0:?       2.000000
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?       6.000000
+0:?       7.000000
+0:?       8.000000
+0:?     'm2' (const 2X2 matrix of float)
+0:?       2.000000
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?     'm3' (const 3X3 matrix of float)
+0:?       2.000000
+0:?       3.000000
+0:?       0.000000
+0:?       4.000000
+0:?       5.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'mc' (const int)
+0:?       1 (const int)
+0:?     'a1' (global 1-element array of float)
+0:?     'a2' (global 2-element array of float)
+0:?     'a3' (global 4-element array of float)
+0:?     'v2' (const 2-component vector of float)
+0:?       1.000000
+0:?       2.000000
+0:?     'v3' (const 3-component vector of float)
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?     'a4' (global 2-element array of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+ERROR: node is still EOpNull!
+0:28  Function Definition: main( (global void)
+0:28    Function Parameters: 
+0:30    Sequence
+0:30      Sequence
+0:30        move second child to first child (temp 4-component vector of float)
+0:30          'dx' (temp 4-component vector of float)
+0:30          dPdx (global 4-component vector of float)
+0:30            'inv' (smooth in 4-component vector of float)
+0:37      move second child to first child (temp 4-component vector of float)
+0:37        'FragColor' (out 4-component vector of float)
+0:37        Constant:
+0:37          2.000000
+0:37          6.000000
+0:37          3.000000
+0:37          171.887339
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        'FragColor' (out 4-component vector of float)
+0:42        Constant:
+0:42          3.000000
+0:42          2.000000
+0:42          0.001593
+0:42          -0.999999
+0:43      move second child to first child (temp 2-component vector of float)
+0:43        'out2' (out 2-component vector of float)
+0:43        Constant:
+0:43          5.600000
+0:43          5.800000
+0:44      move second child to first child (temp 4-component vector of float)
+0:44        'out3' (out 4-component vector of float)
+0:44        Constant:
+0:44          20.085537
+0:44          2.302585
+0:44          16.000000
+0:44          8.000000
+0:45      move second child to first child (temp 4-component vector of float)
+0:45        'out4' (out 4-component vector of float)
+0:45        Constant:
+0:45          10.000000
+0:45          0.100000
+0:45          4.700000
+0:45          10.900000
+0:46      move second child to first child (temp 4-component vector of int)
+0:46        'out5' (out 4-component vector of int)
+0:46        Constant:
+0:46          8 (const int)
+0:46          17 (const int)
+0:46          -1 (const int)
+0:46          1 (const int)
+0:47      move second child to first child (temp 3-component vector of float)
+0:47        'out6' (out 3-component vector of float)
+0:47        Constant:
+0:47          -1.000000
+0:47          1.000000
+0:47          0.000000
+0:48      move second child to first child (temp 4-component vector of float)
+0:48        'out7' (out 4-component vector of float)
+0:48        Constant:
+0:48          4.000000
+0:48          -4.000000
+0:48          5.000000
+0:48          -5.000000
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        'out8' (out 4-component vector of float)
+0:49        Constant:
+0:49          4.000000
+0:49          5.000000
+0:49          4.000000
+0:49          -6.000000
+0:50      move second child to first child (temp 4-component vector of float)
+0:50        'out9' (out 4-component vector of float)
+0:50        Constant:
+0:50          8.000000
+0:50          -4.000000
+0:50          0.345000
+0:50          0.400000
+0:51      move second child to first child (temp 4-component vector of float)
+0:51        'out10' (out 4-component vector of float)
+0:51        Constant:
+0:51          1.000000
+0:51          1.000000
+0:51          0.000000
+0:51          0.000000
+0:52      move second child to first child (temp 4-component vector of float)
+0:52        'out11' (out 4-component vector of float)
+0:52        Constant:
+0:52          0.000000
+0:52          0.000000
+0:52          1.000000
+0:52          0.000000
+0:53      move second child to first child (temp 4-component vector of float)
+0:53        'out11' (out 4-component vector of float)
+0:53        Constant:
+0:53          1.029639
+0:53          0.799690
+0:53          0.674741
+0:53          1.570696
+0:54      move second child to first child (temp 4-component vector of float)
+0:54        'out11' (out 4-component vector of float)
+0:54        Constant:
+0:54          0.000000
+0:54          0.523599
+0:54          1.570796
+0:54          1.047198
+0:58      move second child to first child (temp 4-component vector of float)
+0:58        'out11' (out 4-component vector of float)
+0:58        Constant:
+0:58          1.373401
+0:58          0.000000
+0:58          0.896055
+0:58          -0.380506
+0:62      move second child to first child (temp 2-component vector of int)
+0:62        'out12' (out 2-component vector of int)
+0:62        Constant:
+0:62          15 (const int)
+0:62          16 (const int)
+0:63      move second child to first child (temp 2-component vector of int)
+0:63        'out12' (out 2-component vector of int)
+0:63        Constant:
+0:63          17 (const int)
+0:63          17 (const int)
+0:64      move second child to first child (temp 2-component vector of float)
+0:64        'out2' (out 2-component vector of float)
+0:64        Constant:
+0:64          871.421253
+0:64          4913.000000
+0:65      move second child to first child (temp 3-component vector of uint)
+0:65        'out13' (out 3-component vector of uint)
+0:65        Constant:
+0:65          10 (const uint)
+0:65          20 (const uint)
+0:65          30 (const uint)
+0:66      move second child to first child (temp 2-component vector of float)
+0:66        'out2' (out 2-component vector of float)
+0:66        Constant:
+0:66          3.000000
+0:66          6.000000
+0:67      move second child to first child (temp 2-component vector of float)
+0:67        'out2' (out 2-component vector of float)
+0:67        Constant:
+0:67          3.500000
+0:67          4.500000
+0:68      move second child to first child (temp 2-component vector of float)
+0:68        'out2' (out 2-component vector of float)
+0:68        Constant:
+0:68          0.000000
+0:68          1.000000
+0:69      move second child to first child (temp 4-component vector of float)
+0:69        'out11' (out 4-component vector of float)
+0:69        Constant:
+0:69          0.000000
+0:69          0.028000
+0:69          0.500000
+0:69          1.000000
+0:78  Function Definition: foo( (global void)
+0:78    Function Parameters: 
+0:?     Sequence
+0:81      move second child to first child (temp float)
+0:81        direct index (temp float)
+0:81          'a' (temp 3-element array of float)
+0:81          Constant:
+0:81            0 (const int)
+0:81        Constant:
+0:81          7.000000
+0:82      Constant:
+0:82        2 (const int)
+0:83      Constant:
+0:83        2147483647 (const int)
+0:84      Constant:
+0:84        inf
+0:88      Constant:
+0:88        2 (const uint)
+0:88        3 (const uint)
+0:89      Constant:
+0:89        0 (const uint)
+0:90      Constant:
+0:90        6 (const uint)
+0:90        7 (const uint)
+0:103  Function Definition: foo2( (global void)
+0:103    Function Parameters: 
+0:105    Sequence
+0:105      direct index (temp float)
+0:105        'a1' (global 1-element array of float)
+0:105        Constant:
+0:105          0 (const int)
+0:106      direct index (temp float)
+0:106        'a2' (global 2-element array of float)
+0:106        Constant:
+0:106          0 (const int)
+0:107      direct index (temp float)
+0:107        'a3' (global 4-element array of float)
+0:107        Constant:
+0:107          0 (const int)
+0:108      direct index (temp float)
+0:108        'a4' (global 2-element array of float)
+0:108        Constant:
+0:108          0 (const int)
+0:109      Constant:
+0:109        1.000000
+0:110      Constant:
+0:110        5.000000
+0:111      Constant:
+0:111        2.000000
+0:112      Constant:
+0:112        3.000000
+0:113      Constant:
+0:113        0.000000
+0:114      Constant:
+0:114        0.000000
+0:116      move second child to first child (temp int)
+0:116        'p' (temp int)
+0:116        Constant:
+0:116          2147483647 (const int)
+0:117      move second child to first child (temp int)
+0:117        'p' (temp int)
+0:117        Constant:
+0:117          -2147483648 (const int)
+0:118      move second child to first child (temp int)
+0:118        'p' (temp int)
+0:118        Constant:
+0:118          -2147483647 (const int)
+0:119      Sequence
+0:119        move second child to first child (temp float)
+0:119          'f' (temp float)
+0:119          Constant:
+0:119            1.444000
+0:120      move second child to first child (temp float)
+0:120        'f' (temp float)
+0:120        direct index (temp float)
+0:120          Construct vec4 (temp 4-component vector of float)
+0:120            Test condition and select (temp float)
+0:120              Condition
+0:120              Compare Less Than (temp bool)
+0:120                direct index (temp float)
+0:120                  'inv' (smooth in 4-component vector of float)
+0:120                  Constant:
+0:120                    0 (const int)
+0:120                Constant:
+0:120                  2.400000
+0:120              true case
+0:120              Constant:
+0:120                -1.000000
+0:120              false case
+0:120              Constant:
+0:120                1.000000
+0:120          Constant:
+0:120            3 (const int)
+0:?   Linker Objects
+0:?     'a' (const int)
+0:?       1 (const int)
+0:?     'b' (const int)
+0:?       2 (const int)
+0:?     'c' (const int)
+0:?       3 (const int)
+0:?     'd' (const int)
+0:?       2 (const int)
+0:?     'e' (const float)
+0:?       2.000000
+0:?     'f' (const float)
+0:?       6.000000
+0:?     'g' (const float)
+0:?       3.000000
+0:?     'pytho' (const 2-component vector of float)
+0:?       3.000000
+0:?       4.000000
+0:?     'inv' (smooth in 4-component vector of float)
+0:?     'FragColor' (out 4-component vector of float)
+0:?     'out2' (out 2-component vector of float)
+0:?     'out3' (out 4-component vector of float)
+0:?     'out4' (out 4-component vector of float)
+0:?     'out5' (out 4-component vector of int)
+0:?     'out6' (out 3-component vector of float)
+0:?     'out7' (out 4-component vector of float)
+0:?     'out8' (out 4-component vector of float)
+0:?     'out9' (out 4-component vector of float)
+0:?     'out10' (out 4-component vector of float)
+0:?     'out11' (out 4-component vector of float)
+0:?     'out12' (out 2-component vector of int)
+0:?     'out13' (out 3-component vector of uint)
+0:?     's' (const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m})
+0:?       3.000000
+0:?       3.000000
+0:?       3.000000
+0:?       3 (const int)
+0:?       3 (const int)
+0:?       1.000000
+0:?       2.000000
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?       6.000000
+0:?       7.000000
+0:?       8.000000
+0:?     'm2' (const 2X2 matrix of float)
+0:?       2.000000
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?     'm3' (const 3X3 matrix of float)
+0:?       2.000000
+0:?       3.000000
+0:?       0.000000
+0:?       4.000000
+0:?       5.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       1.000000
+0:?     'mc' (const int)
+0:?       1 (const int)
+0:?     'a1' (global 1-element array of float)
+0:?     'a2' (global 2-element array of float)
+0:?     'a3' (global 4-element array of float)
+0:?     'v2' (const 2-component vector of float)
+0:?       1.000000
+0:?       2.000000
+0:?     'v3' (const 3-component vector of float)
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?     'a4' (global 2-element array of float)
+
diff --git a/Test/baseResults/conversion.frag.out b/Test/baseResults/conversion.frag.out
index c17195b..3abf82c 100644
--- a/Test/baseResults/conversion.frag.out
+++ b/Test/baseResults/conversion.frag.out
@@ -1,955 +1,955 @@
-conversion.frag

-Shader version: 130

-0:? Sequence

-0:33  Function Definition: main( (global void)

-0:33    Function Parameters: 

-0:35    Sequence

-0:35      Sequence

-0:35        move second child to first child (temp bool)

-0:35          'b' (temp bool)

-0:35          logical-xor (temp bool)

-0:35            Convert int to bool (temp bool)

-0:35              'u_i' (uniform int)

-0:35            Convert float to bool (temp bool)

-0:35              'u_f' (uniform float)

-0:36      Sequence

-0:36        move second child to first child (temp 2-component vector of bool)

-0:36          'b2' (temp 2-component vector of bool)

-0:36          Construct bvec2 (temp 2-component vector of bool)

-0:36            Convert int to bool (temp bool)

-0:36              'u_i' (uniform int)

-0:36            Convert float to bool (temp bool)

-0:36              'u_f' (uniform float)

-0:37      Sequence

-0:37        move second child to first child (temp 3-component vector of bool)

-0:37          'b3' (temp 3-component vector of bool)

-0:37          Construct bvec3 (temp 3-component vector of bool)

-0:37            Convert int to bool (temp bool)

-0:37              'u_i' (uniform int)

-0:37            Convert float to bool (temp bool)

-0:37              'u_f' (uniform float)

-0:37            Convert int to bool (temp bool)

-0:37              'i_i' (flat in int)

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of bool)

-0:38          'b4' (temp 4-component vector of bool)

-0:38          Construct bvec4 (temp 4-component vector of bool)

-0:38            Convert int to bool (temp bool)

-0:38              'u_i' (uniform int)

-0:38            Convert float to bool (temp bool)

-0:38              'u_f' (uniform float)

-0:38            Convert int to bool (temp bool)

-0:38              'i_i' (flat in int)

-0:38            Convert float to bool (temp bool)

-0:38              'i_f' (smooth in float)

-0:40      Sequence

-0:40        move second child to first child (temp int)

-0:40          'i' (temp int)

-0:40          add (temp int)

-0:40            Convert float to int (temp int)

-0:40              'u_f' (uniform float)

-0:40            Convert bool to int (temp int)

-0:40              'b' (temp bool)

-0:41      Sequence

-0:41        move second child to first child (temp 2-component vector of int)

-0:41          'i2' (temp 2-component vector of int)

-0:41          add (temp 2-component vector of int)

-0:41            Convert float to int (temp 2-component vector of int)

-0:41              'u_f2' (uniform 2-component vector of float)

-0:41            Convert bool to int (temp 2-component vector of int)

-0:41              'b2' (temp 2-component vector of bool)

-0:42      Sequence

-0:42        move second child to first child (temp 3-component vector of int)

-0:42          'i3' (temp 3-component vector of int)

-0:42          add (temp 3-component vector of int)

-0:42            Convert float to int (temp 3-component vector of int)

-0:42              'u_f3' (uniform 3-component vector of float)

-0:42            Convert bool to int (temp 3-component vector of int)

-0:42              'b3' (temp 3-component vector of bool)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of int)

-0:43          'i4' (temp 4-component vector of int)

-0:43          add (temp 4-component vector of int)

-0:43            Convert float to int (temp 4-component vector of int)

-0:43              'u_f4' (uniform 4-component vector of float)

-0:43            Convert bool to int (temp 4-component vector of int)

-0:43              'b4' (temp 4-component vector of bool)

-0:45      Sequence

-0:45        move second child to first child (temp float)

-0:45          'f' (temp float)

-0:45          Convert int to float (temp float)

-0:45            'i' (temp int)

-0:46      Sequence

-0:46        move second child to first child (temp 2-component vector of float)

-0:46          'f2' (temp 2-component vector of float)

-0:46          Convert int to float (temp 2-component vector of float)

-0:46            'i2' (temp 2-component vector of int)

-0:47      Sequence

-0:47        move second child to first child (temp 3-component vector of float)

-0:47          'f3' (temp 3-component vector of float)

-0:47          Convert int to float (temp 3-component vector of float)

-0:47            'i3' (temp 3-component vector of int)

-0:48      Sequence

-0:48        move second child to first child (temp 4-component vector of float)

-0:48          'f4' (temp 4-component vector of float)

-0:48          Convert int to float (temp 4-component vector of float)

-0:48            'i4' (temp 4-component vector of int)

-0:50      add second child into first child (temp float)

-0:50        'f' (temp float)

-0:50        add (temp float)

-0:50          Convert int to float (temp float)

-0:50            'i' (temp int)

-0:50          Convert bool to float (temp float)

-0:50            'b' (temp bool)

-0:51      subtract second child into first child (temp 2-component vector of float)

-0:51        'f2' (temp 2-component vector of float)

-0:51        add (temp 2-component vector of float)

-0:51          Convert int to float (temp 2-component vector of float)

-0:51            'i2' (temp 2-component vector of int)

-0:51          Convert bool to float (temp 2-component vector of float)

-0:51            'b2' (temp 2-component vector of bool)

-0:52      divide second child into first child (temp 3-component vector of float)

-0:52        'f3' (temp 3-component vector of float)

-0:52        add (temp 3-component vector of float)

-0:52          Convert int to float (temp 3-component vector of float)

-0:52            'i3' (temp 3-component vector of int)

-0:52          Convert bool to float (temp 3-component vector of float)

-0:52            'b3' (temp 3-component vector of bool)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'f4' (temp 4-component vector of float)

-0:53        add (temp 4-component vector of float)

-0:53          Convert int to float (temp 4-component vector of float)

-0:53            'i4' (temp 4-component vector of int)

-0:53          Convert bool to float (temp 4-component vector of float)

-0:53            'b4' (temp 4-component vector of bool)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'f4' (temp 4-component vector of float)

-0:55        Convert bool to float (temp 4-component vector of float)

-0:55          Convert int to bool (temp 4-component vector of bool)

-0:55            'i_i4' (flat in 4-component vector of int)

-0:56      add second child into first child (temp 4-component vector of float)

-0:56        'f4' (temp 4-component vector of float)

-0:56        Convert bool to float (temp 4-component vector of float)

-0:56          Convert float to bool (temp 4-component vector of bool)

-0:56            'u_f4' (uniform 4-component vector of float)

-0:58      add second child into first child (temp float)

-0:58        'f' (temp float)

-0:58        subtract (temp float)

-0:58          'f' (temp float)

-0:58          Convert int to float (temp float)

-0:58            'i' (temp int)

-0:59      add second child into first child (temp 2-component vector of float)

-0:59        'f2' (temp 2-component vector of float)

-0:59        add (temp 2-component vector of float)

-0:59          Construct vec2 (temp 2-component vector of float)

-0:59            'f' (temp float)

-0:59            Convert int to float (temp float)

-0:59              'i' (temp int)

-0:59          Convert int to float (temp 2-component vector of float)

-0:59            'i2' (temp 2-component vector of int)

-0:60      add second child into first child (temp 3-component vector of float)

-0:60        'f3' (temp 3-component vector of float)

-0:60        add (temp 3-component vector of float)

-0:60          Convert int to float (temp 3-component vector of float)

-0:60            'i3' (temp 3-component vector of int)

-0:60          Construct vec3 (temp 3-component vector of float)

-0:60            'f' (temp float)

-0:60            Convert int to float (temp float)

-0:60              'i' (temp int)

-0:60            'f' (temp float)

-0:61      add second child into first child (temp 4-component vector of float)

-0:61        'f4' (temp 4-component vector of float)

-0:61        add (temp 4-component vector of float)

-0:61          Construct vec4 (temp 4-component vector of float)

-0:61            Convert bool to float (temp float)

-0:61              'b' (temp bool)

-0:61            Convert int to float (temp float)

-0:61              'i' (temp int)

-0:61            'f' (temp float)

-0:61            Convert int to float (temp float)

-0:61              'i' (temp int)

-0:61          Convert int to float (temp 4-component vector of float)

-0:61            'i4' (temp 4-component vector of int)

-0:63      add second child into first child (temp 2-component vector of float)

-0:63        'f2' (temp 2-component vector of float)

-0:63        vector-scale (temp 2-component vector of float)

-0:63          Construct vec2 (temp 2-component vector of float)

-0:63            'f' (temp float)

-0:63            Convert int to float (temp float)

-0:63              'i' (temp int)

-0:63          Convert int to float (temp float)

-0:63            'i' (temp int)

-0:64      add second child into first child (temp 3-component vector of float)

-0:64        'f3' (temp 3-component vector of float)

-0:64        add (temp 3-component vector of float)

-0:64          Construct vec3 (temp 3-component vector of float)

-0:64            'f' (temp float)

-0:64            Convert int to float (temp float)

-0:64              'i' (temp int)

-0:64            'f' (temp float)

-0:64          Convert int to float (temp float)

-0:64            'i' (temp int)

-0:65      add second child into first child (temp 4-component vector of float)

-0:65        'f4' (temp 4-component vector of float)

-0:65        subtract (temp 4-component vector of float)

-0:65          Convert int to float (temp float)

-0:65            'i' (temp int)

-0:65          Construct vec4 (temp 4-component vector of float)

-0:65            Convert bool to float (temp float)

-0:65              'b' (temp bool)

-0:65            Convert int to float (temp float)

-0:65              'i' (temp int)

-0:65            'f' (temp float)

-0:65            Convert int to float (temp float)

-0:65              'i' (temp int)

-0:67      add second child into first child (temp 2-component vector of int)

-0:67        'i2' (temp 2-component vector of int)

-0:67        Construct ivec2 (temp 2-component vector of int)

-0:67          Convert float to int (temp int)

-0:67            'f' (temp float)

-0:67          'i' (temp int)

-0:68      add second child into first child (temp 3-component vector of int)

-0:68        'i3' (temp 3-component vector of int)

-0:68        Construct ivec3 (temp 3-component vector of int)

-0:68          Convert float to int (temp int)

-0:68            'f' (temp float)

-0:68          'i' (temp int)

-0:68          Convert float to int (temp int)

-0:68            'f' (temp float)

-0:69      add second child into first child (temp 4-component vector of int)

-0:69        'i4' (temp 4-component vector of int)

-0:69        Construct ivec4 (temp 4-component vector of int)

-0:69          Convert bool to int (temp int)

-0:69            'b' (temp bool)

-0:69          'i' (temp int)

-0:69          Convert float to int (temp int)

-0:69            'f' (temp float)

-0:69          'i' (temp int)

-0:71      Test condition and select (temp void)

-0:71        Condition

-0:72        logical-or (temp bool)

-0:71          logical-or (temp bool)

-0:71            logical-or (temp bool)

-0:71              Compare Less Than (temp bool)

-0:71                'f' (temp float)

-0:71                Convert int to float (temp float)

-0:71                  'i' (temp int)

-0:71              Compare Less Than (temp bool)

-0:71                Convert int to float (temp float)

-0:71                  'i' (temp int)

-0:71                'f' (temp float)

-0:72            Compare Equal (temp bool)

-0:72              'f2' (temp 2-component vector of float)

-0:72              Convert int to float (temp 2-component vector of float)

-0:72                'i2' (temp 2-component vector of int)

-0:73          Compare Not Equal (temp bool)

-0:73            Convert int to float (temp 3-component vector of float)

-0:73              'i3' (temp 3-component vector of int)

-0:73            'f3' (temp 3-component vector of float)

-0:71        true case

-0:74        move second child to first child (temp float)

-0:74          'f' (temp float)

-0:74          add (temp float)

-0:74            Test condition and select (temp float)

-0:74              Condition

-0:74              'b' (temp bool)

-0:74              true case

-0:74              Convert int to float (temp float)

-0:74                'i' (temp int)

-0:74              false case

-0:74              direct index (temp float)

-0:74                'f2' (temp 2-component vector of float)

-0:74                Constant:

-0:74                  0 (const int)

-0:74            Test condition and select (temp float)

-0:74              Condition

-0:74              direct index (temp bool)

-0:74                'b2' (temp 2-component vector of bool)

-0:74                Constant:

-0:74                  0 (const int)

-0:74              true case

-0:74              direct index (temp float)

-0:74                'f3' (temp 3-component vector of float)

-0:74                Constant:

-0:74                  0 (const int)

-0:74              false case

-0:74              Convert int to float (temp float)

-0:74                direct index (temp int)

-0:74                  'i2' (temp 2-component vector of int)

-0:74                  Constant:

-0:74                    1 (const int)

-0:76      move second child to first child (temp 4-component vector of float)

-0:76        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:86        Test condition and select (temp 4-component vector of float)

-0:86          Condition

-0:85          logical-or (temp bool)

-0:84            logical-or (temp bool)

-0:83              logical-or (temp bool)

-0:82                logical-or (temp bool)

-0:81                  logical-or (temp bool)

-0:80                    logical-or (temp bool)

-0:79                      logical-or (temp bool)

-0:78                        logical-or (temp bool)

-0:77                          logical-or (temp bool)

-0:77                            'b' (temp bool)

-0:78                            direct index (temp bool)

-0:78                              'b2' (temp 2-component vector of bool)

-0:78                              Constant:

-0:78                                0 (const int)

-0:79                          direct index (temp bool)

-0:79                            'b2' (temp 2-component vector of bool)

-0:79                            Constant:

-0:79                              1 (const int)

-0:80                        direct index (temp bool)

-0:80                          'b3' (temp 3-component vector of bool)

-0:80                          Constant:

-0:80                            0 (const int)

-0:81                      direct index (temp bool)

-0:81                        'b3' (temp 3-component vector of bool)

-0:81                        Constant:

-0:81                          1 (const int)

-0:82                    direct index (temp bool)

-0:82                      'b3' (temp 3-component vector of bool)

-0:82                      Constant:

-0:82                        2 (const int)

-0:83                  direct index (temp bool)

-0:83                    'b4' (temp 4-component vector of bool)

-0:83                    Constant:

-0:83                      0 (const int)

-0:84                direct index (temp bool)

-0:84                  'b4' (temp 4-component vector of bool)

-0:84                  Constant:

-0:84                    1 (const int)

-0:85              direct index (temp bool)

-0:85                'b4' (temp 4-component vector of bool)

-0:85                Constant:

-0:85                  2 (const int)

-0:86            direct index (temp bool)

-0:86              'b4' (temp 4-component vector of bool)

-0:86              Constant:

-0:86                3 (const int)

-0:86          true case

-0:105          Construct vec4 (temp 4-component vector of float)

-0:105            add (temp float)

-0:104              add (temp float)

-0:103                add (temp float)

-0:102                  add (temp float)

-0:101                    add (temp float)

-0:100                      add (temp float)

-0:99                        add (temp float)

-0:98                          add (temp float)

-0:97                            add (temp float)

-0:96                              add (temp float)

-0:95                                Convert int to float (temp float)

-0:95                                  add (temp int)

-0:94                                    add (temp int)

-0:93                                      add (temp int)

-0:92                                        add (temp int)

-0:91                                          add (temp int)

-0:90                                            add (temp int)

-0:89                                              add (temp int)

-0:88                                                add (temp int)

-0:87                                                  add (temp int)

-0:87                                                    'i' (temp int)

-0:88                                                    direct index (temp int)

-0:88                                                      'i2' (temp 2-component vector of int)

-0:88                                                      Constant:

-0:88                                                        0 (const int)

-0:89                                                  direct index (temp int)

-0:89                                                    'i2' (temp 2-component vector of int)

-0:89                                                    Constant:

-0:89                                                      1 (const int)

-0:90                                                direct index (temp int)

-0:90                                                  'i3' (temp 3-component vector of int)

-0:90                                                  Constant:

-0:90                                                    0 (const int)

-0:91                                              direct index (temp int)

-0:91                                                'i3' (temp 3-component vector of int)

-0:91                                                Constant:

-0:91                                                  1 (const int)

-0:92                                            direct index (temp int)

-0:92                                              'i3' (temp 3-component vector of int)

-0:92                                              Constant:

-0:92                                                2 (const int)

-0:93                                          direct index (temp int)

-0:93                                            'i4' (temp 4-component vector of int)

-0:93                                            Constant:

-0:93                                              0 (const int)

-0:94                                        direct index (temp int)

-0:94                                          'i4' (temp 4-component vector of int)

-0:94                                          Constant:

-0:94                                            1 (const int)

-0:95                                      direct index (temp int)

-0:95                                        'i4' (temp 4-component vector of int)

-0:95                                        Constant:

-0:95                                          2 (const int)

-0:96                                    direct index (temp int)

-0:96                                      'i4' (temp 4-component vector of int)

-0:96                                      Constant:

-0:96                                        3 (const int)

-0:97                                'f' (temp float)

-0:98                              direct index (temp float)

-0:98                                'f2' (temp 2-component vector of float)

-0:98                                Constant:

-0:98                                  0 (const int)

-0:99                            direct index (temp float)

-0:99                              'f2' (temp 2-component vector of float)

-0:99                              Constant:

-0:99                                1 (const int)

-0:100                          direct index (temp float)

-0:100                            'f3' (temp 3-component vector of float)

-0:100                            Constant:

-0:100                              0 (const int)

-0:101                        direct index (temp float)

-0:101                          'f3' (temp 3-component vector of float)

-0:101                          Constant:

-0:101                            1 (const int)

-0:102                      direct index (temp float)

-0:102                        'f3' (temp 3-component vector of float)

-0:102                        Constant:

-0:102                          2 (const int)

-0:103                    direct index (temp float)

-0:103                      'f4' (temp 4-component vector of float)

-0:103                      Constant:

-0:103                        0 (const int)

-0:104                  direct index (temp float)

-0:104                    'f4' (temp 4-component vector of float)

-0:104                    Constant:

-0:104                      1 (const int)

-0:105                direct index (temp float)

-0:105                  'f4' (temp 4-component vector of float)

-0:105                  Constant:

-0:105                    2 (const int)

-0:106              direct index (temp float)

-0:106                'f4' (temp 4-component vector of float)

-0:106                Constant:

-0:106                  3 (const int)

-0:86          false case

-0:106          Constant:

-0:106            1.000000

-0:106            1.000000

-0:106            1.000000

-0:106            1.000000

-0:109      Sequence

-0:109        move second child to first child (temp 4-component vector of int)

-0:109          'cv2' (temp 4-component vector of int)

-0:109          Constant:

-0:109            1 (const int)

-0:109            1 (const int)

-0:109            1 (const int)

-0:109            1 (const int)

-0:110      Sequence

-0:110        move second child to first child (temp 4-component vector of bool)

-0:110          'cv5' (temp 4-component vector of bool)

-0:110          Convert int to bool (temp 4-component vector of bool)

-0:110            'cv2' (temp 4-component vector of int)

-0:111      add second child into first child (temp 4-component vector of float)

-0:111        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:111        Construct float (temp float)

-0:111          Convert bool to float (temp 4-component vector of float)

-0:111            'cv5' (temp 4-component vector of bool)

-0:?   Linker Objects

-0:?     'u_b' (uniform bool)

-0:?     'u_b2' (uniform 2-component vector of bool)

-0:?     'u_b3' (uniform 3-component vector of bool)

-0:?     'u_b4' (uniform 4-component vector of bool)

-0:?     'u_i' (uniform int)

-0:?     'u_i2' (uniform 2-component vector of int)

-0:?     'u_i3' (uniform 3-component vector of int)

-0:?     'u_i4' (uniform 4-component vector of int)

-0:?     'u_f' (uniform float)

-0:?     'u_f2' (uniform 2-component vector of float)

-0:?     'u_f3' (uniform 3-component vector of float)

-0:?     'u_f4' (uniform 4-component vector of float)

-0:?     'i_b' (uniform bool)

-0:?     'i_b2' (uniform 2-component vector of bool)

-0:?     'i_b3' (uniform 3-component vector of bool)

-0:?     'i_b4' (uniform 4-component vector of bool)

-0:?     'i_i' (flat in int)

-0:?     'i_i2' (flat in 2-component vector of int)

-0:?     'i_i3' (flat in 3-component vector of int)

-0:?     'i_i4' (flat in 4-component vector of int)

-0:?     'i_f' (smooth in float)

-0:?     'i_f2' (smooth in 2-component vector of float)

-0:?     'i_f3' (smooth in 3-component vector of float)

-0:?     'i_f4' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:33  Function Definition: main( (global void)

-0:33    Function Parameters: 

-0:35    Sequence

-0:35      Sequence

-0:35        move second child to first child (temp bool)

-0:35          'b' (temp bool)

-0:35          logical-xor (temp bool)

-0:35            Convert int to bool (temp bool)

-0:35              'u_i' (uniform int)

-0:35            Convert float to bool (temp bool)

-0:35              'u_f' (uniform float)

-0:36      Sequence

-0:36        move second child to first child (temp 2-component vector of bool)

-0:36          'b2' (temp 2-component vector of bool)

-0:36          Construct bvec2 (temp 2-component vector of bool)

-0:36            Convert int to bool (temp bool)

-0:36              'u_i' (uniform int)

-0:36            Convert float to bool (temp bool)

-0:36              'u_f' (uniform float)

-0:37      Sequence

-0:37        move second child to first child (temp 3-component vector of bool)

-0:37          'b3' (temp 3-component vector of bool)

-0:37          Construct bvec3 (temp 3-component vector of bool)

-0:37            Convert int to bool (temp bool)

-0:37              'u_i' (uniform int)

-0:37            Convert float to bool (temp bool)

-0:37              'u_f' (uniform float)

-0:37            Convert int to bool (temp bool)

-0:37              'i_i' (flat in int)

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of bool)

-0:38          'b4' (temp 4-component vector of bool)

-0:38          Construct bvec4 (temp 4-component vector of bool)

-0:38            Convert int to bool (temp bool)

-0:38              'u_i' (uniform int)

-0:38            Convert float to bool (temp bool)

-0:38              'u_f' (uniform float)

-0:38            Convert int to bool (temp bool)

-0:38              'i_i' (flat in int)

-0:38            Convert float to bool (temp bool)

-0:38              'i_f' (smooth in float)

-0:40      Sequence

-0:40        move second child to first child (temp int)

-0:40          'i' (temp int)

-0:40          add (temp int)

-0:40            Convert float to int (temp int)

-0:40              'u_f' (uniform float)

-0:40            Convert bool to int (temp int)

-0:40              'b' (temp bool)

-0:41      Sequence

-0:41        move second child to first child (temp 2-component vector of int)

-0:41          'i2' (temp 2-component vector of int)

-0:41          add (temp 2-component vector of int)

-0:41            Convert float to int (temp 2-component vector of int)

-0:41              'u_f2' (uniform 2-component vector of float)

-0:41            Convert bool to int (temp 2-component vector of int)

-0:41              'b2' (temp 2-component vector of bool)

-0:42      Sequence

-0:42        move second child to first child (temp 3-component vector of int)

-0:42          'i3' (temp 3-component vector of int)

-0:42          add (temp 3-component vector of int)

-0:42            Convert float to int (temp 3-component vector of int)

-0:42              'u_f3' (uniform 3-component vector of float)

-0:42            Convert bool to int (temp 3-component vector of int)

-0:42              'b3' (temp 3-component vector of bool)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of int)

-0:43          'i4' (temp 4-component vector of int)

-0:43          add (temp 4-component vector of int)

-0:43            Convert float to int (temp 4-component vector of int)

-0:43              'u_f4' (uniform 4-component vector of float)

-0:43            Convert bool to int (temp 4-component vector of int)

-0:43              'b4' (temp 4-component vector of bool)

-0:45      Sequence

-0:45        move second child to first child (temp float)

-0:45          'f' (temp float)

-0:45          Convert int to float (temp float)

-0:45            'i' (temp int)

-0:46      Sequence

-0:46        move second child to first child (temp 2-component vector of float)

-0:46          'f2' (temp 2-component vector of float)

-0:46          Convert int to float (temp 2-component vector of float)

-0:46            'i2' (temp 2-component vector of int)

-0:47      Sequence

-0:47        move second child to first child (temp 3-component vector of float)

-0:47          'f3' (temp 3-component vector of float)

-0:47          Convert int to float (temp 3-component vector of float)

-0:47            'i3' (temp 3-component vector of int)

-0:48      Sequence

-0:48        move second child to first child (temp 4-component vector of float)

-0:48          'f4' (temp 4-component vector of float)

-0:48          Convert int to float (temp 4-component vector of float)

-0:48            'i4' (temp 4-component vector of int)

-0:50      add second child into first child (temp float)

-0:50        'f' (temp float)

-0:50        add (temp float)

-0:50          Convert int to float (temp float)

-0:50            'i' (temp int)

-0:50          Convert bool to float (temp float)

-0:50            'b' (temp bool)

-0:51      subtract second child into first child (temp 2-component vector of float)

-0:51        'f2' (temp 2-component vector of float)

-0:51        add (temp 2-component vector of float)

-0:51          Convert int to float (temp 2-component vector of float)

-0:51            'i2' (temp 2-component vector of int)

-0:51          Convert bool to float (temp 2-component vector of float)

-0:51            'b2' (temp 2-component vector of bool)

-0:52      divide second child into first child (temp 3-component vector of float)

-0:52        'f3' (temp 3-component vector of float)

-0:52        add (temp 3-component vector of float)

-0:52          Convert int to float (temp 3-component vector of float)

-0:52            'i3' (temp 3-component vector of int)

-0:52          Convert bool to float (temp 3-component vector of float)

-0:52            'b3' (temp 3-component vector of bool)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'f4' (temp 4-component vector of float)

-0:53        add (temp 4-component vector of float)

-0:53          Convert int to float (temp 4-component vector of float)

-0:53            'i4' (temp 4-component vector of int)

-0:53          Convert bool to float (temp 4-component vector of float)

-0:53            'b4' (temp 4-component vector of bool)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'f4' (temp 4-component vector of float)

-0:55        Convert bool to float (temp 4-component vector of float)

-0:55          Convert int to bool (temp 4-component vector of bool)

-0:55            'i_i4' (flat in 4-component vector of int)

-0:56      add second child into first child (temp 4-component vector of float)

-0:56        'f4' (temp 4-component vector of float)

-0:56        Convert bool to float (temp 4-component vector of float)

-0:56          Convert float to bool (temp 4-component vector of bool)

-0:56            'u_f4' (uniform 4-component vector of float)

-0:58      add second child into first child (temp float)

-0:58        'f' (temp float)

-0:58        subtract (temp float)

-0:58          'f' (temp float)

-0:58          Convert int to float (temp float)

-0:58            'i' (temp int)

-0:59      add second child into first child (temp 2-component vector of float)

-0:59        'f2' (temp 2-component vector of float)

-0:59        add (temp 2-component vector of float)

-0:59          Construct vec2 (temp 2-component vector of float)

-0:59            'f' (temp float)

-0:59            Convert int to float (temp float)

-0:59              'i' (temp int)

-0:59          Convert int to float (temp 2-component vector of float)

-0:59            'i2' (temp 2-component vector of int)

-0:60      add second child into first child (temp 3-component vector of float)

-0:60        'f3' (temp 3-component vector of float)

-0:60        add (temp 3-component vector of float)

-0:60          Convert int to float (temp 3-component vector of float)

-0:60            'i3' (temp 3-component vector of int)

-0:60          Construct vec3 (temp 3-component vector of float)

-0:60            'f' (temp float)

-0:60            Convert int to float (temp float)

-0:60              'i' (temp int)

-0:60            'f' (temp float)

-0:61      add second child into first child (temp 4-component vector of float)

-0:61        'f4' (temp 4-component vector of float)

-0:61        add (temp 4-component vector of float)

-0:61          Construct vec4 (temp 4-component vector of float)

-0:61            Convert bool to float (temp float)

-0:61              'b' (temp bool)

-0:61            Convert int to float (temp float)

-0:61              'i' (temp int)

-0:61            'f' (temp float)

-0:61            Convert int to float (temp float)

-0:61              'i' (temp int)

-0:61          Convert int to float (temp 4-component vector of float)

-0:61            'i4' (temp 4-component vector of int)

-0:63      add second child into first child (temp 2-component vector of float)

-0:63        'f2' (temp 2-component vector of float)

-0:63        vector-scale (temp 2-component vector of float)

-0:63          Construct vec2 (temp 2-component vector of float)

-0:63            'f' (temp float)

-0:63            Convert int to float (temp float)

-0:63              'i' (temp int)

-0:63          Convert int to float (temp float)

-0:63            'i' (temp int)

-0:64      add second child into first child (temp 3-component vector of float)

-0:64        'f3' (temp 3-component vector of float)

-0:64        add (temp 3-component vector of float)

-0:64          Construct vec3 (temp 3-component vector of float)

-0:64            'f' (temp float)

-0:64            Convert int to float (temp float)

-0:64              'i' (temp int)

-0:64            'f' (temp float)

-0:64          Convert int to float (temp float)

-0:64            'i' (temp int)

-0:65      add second child into first child (temp 4-component vector of float)

-0:65        'f4' (temp 4-component vector of float)

-0:65        subtract (temp 4-component vector of float)

-0:65          Convert int to float (temp float)

-0:65            'i' (temp int)

-0:65          Construct vec4 (temp 4-component vector of float)

-0:65            Convert bool to float (temp float)

-0:65              'b' (temp bool)

-0:65            Convert int to float (temp float)

-0:65              'i' (temp int)

-0:65            'f' (temp float)

-0:65            Convert int to float (temp float)

-0:65              'i' (temp int)

-0:67      add second child into first child (temp 2-component vector of int)

-0:67        'i2' (temp 2-component vector of int)

-0:67        Construct ivec2 (temp 2-component vector of int)

-0:67          Convert float to int (temp int)

-0:67            'f' (temp float)

-0:67          'i' (temp int)

-0:68      add second child into first child (temp 3-component vector of int)

-0:68        'i3' (temp 3-component vector of int)

-0:68        Construct ivec3 (temp 3-component vector of int)

-0:68          Convert float to int (temp int)

-0:68            'f' (temp float)

-0:68          'i' (temp int)

-0:68          Convert float to int (temp int)

-0:68            'f' (temp float)

-0:69      add second child into first child (temp 4-component vector of int)

-0:69        'i4' (temp 4-component vector of int)

-0:69        Construct ivec4 (temp 4-component vector of int)

-0:69          Convert bool to int (temp int)

-0:69            'b' (temp bool)

-0:69          'i' (temp int)

-0:69          Convert float to int (temp int)

-0:69            'f' (temp float)

-0:69          'i' (temp int)

-0:71      Test condition and select (temp void)

-0:71        Condition

-0:72        logical-or (temp bool)

-0:71          logical-or (temp bool)

-0:71            logical-or (temp bool)

-0:71              Compare Less Than (temp bool)

-0:71                'f' (temp float)

-0:71                Convert int to float (temp float)

-0:71                  'i' (temp int)

-0:71              Compare Less Than (temp bool)

-0:71                Convert int to float (temp float)

-0:71                  'i' (temp int)

-0:71                'f' (temp float)

-0:72            Compare Equal (temp bool)

-0:72              'f2' (temp 2-component vector of float)

-0:72              Convert int to float (temp 2-component vector of float)

-0:72                'i2' (temp 2-component vector of int)

-0:73          Compare Not Equal (temp bool)

-0:73            Convert int to float (temp 3-component vector of float)

-0:73              'i3' (temp 3-component vector of int)

-0:73            'f3' (temp 3-component vector of float)

-0:71        true case

-0:74        move second child to first child (temp float)

-0:74          'f' (temp float)

-0:74          add (temp float)

-0:74            Test condition and select (temp float)

-0:74              Condition

-0:74              'b' (temp bool)

-0:74              true case

-0:74              Convert int to float (temp float)

-0:74                'i' (temp int)

-0:74              false case

-0:74              direct index (temp float)

-0:74                'f2' (temp 2-component vector of float)

-0:74                Constant:

-0:74                  0 (const int)

-0:74            Test condition and select (temp float)

-0:74              Condition

-0:74              direct index (temp bool)

-0:74                'b2' (temp 2-component vector of bool)

-0:74                Constant:

-0:74                  0 (const int)

-0:74              true case

-0:74              direct index (temp float)

-0:74                'f3' (temp 3-component vector of float)

-0:74                Constant:

-0:74                  0 (const int)

-0:74              false case

-0:74              Convert int to float (temp float)

-0:74                direct index (temp int)

-0:74                  'i2' (temp 2-component vector of int)

-0:74                  Constant:

-0:74                    1 (const int)

-0:76      move second child to first child (temp 4-component vector of float)

-0:76        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:86        Test condition and select (temp 4-component vector of float)

-0:86          Condition

-0:85          logical-or (temp bool)

-0:84            logical-or (temp bool)

-0:83              logical-or (temp bool)

-0:82                logical-or (temp bool)

-0:81                  logical-or (temp bool)

-0:80                    logical-or (temp bool)

-0:79                      logical-or (temp bool)

-0:78                        logical-or (temp bool)

-0:77                          logical-or (temp bool)

-0:77                            'b' (temp bool)

-0:78                            direct index (temp bool)

-0:78                              'b2' (temp 2-component vector of bool)

-0:78                              Constant:

-0:78                                0 (const int)

-0:79                          direct index (temp bool)

-0:79                            'b2' (temp 2-component vector of bool)

-0:79                            Constant:

-0:79                              1 (const int)

-0:80                        direct index (temp bool)

-0:80                          'b3' (temp 3-component vector of bool)

-0:80                          Constant:

-0:80                            0 (const int)

-0:81                      direct index (temp bool)

-0:81                        'b3' (temp 3-component vector of bool)

-0:81                        Constant:

-0:81                          1 (const int)

-0:82                    direct index (temp bool)

-0:82                      'b3' (temp 3-component vector of bool)

-0:82                      Constant:

-0:82                        2 (const int)

-0:83                  direct index (temp bool)

-0:83                    'b4' (temp 4-component vector of bool)

-0:83                    Constant:

-0:83                      0 (const int)

-0:84                direct index (temp bool)

-0:84                  'b4' (temp 4-component vector of bool)

-0:84                  Constant:

-0:84                    1 (const int)

-0:85              direct index (temp bool)

-0:85                'b4' (temp 4-component vector of bool)

-0:85                Constant:

-0:85                  2 (const int)

-0:86            direct index (temp bool)

-0:86              'b4' (temp 4-component vector of bool)

-0:86              Constant:

-0:86                3 (const int)

-0:86          true case

-0:105          Construct vec4 (temp 4-component vector of float)

-0:105            add (temp float)

-0:104              add (temp float)

-0:103                add (temp float)

-0:102                  add (temp float)

-0:101                    add (temp float)

-0:100                      add (temp float)

-0:99                        add (temp float)

-0:98                          add (temp float)

-0:97                            add (temp float)

-0:96                              add (temp float)

-0:95                                Convert int to float (temp float)

-0:95                                  add (temp int)

-0:94                                    add (temp int)

-0:93                                      add (temp int)

-0:92                                        add (temp int)

-0:91                                          add (temp int)

-0:90                                            add (temp int)

-0:89                                              add (temp int)

-0:88                                                add (temp int)

-0:87                                                  add (temp int)

-0:87                                                    'i' (temp int)

-0:88                                                    direct index (temp int)

-0:88                                                      'i2' (temp 2-component vector of int)

-0:88                                                      Constant:

-0:88                                                        0 (const int)

-0:89                                                  direct index (temp int)

-0:89                                                    'i2' (temp 2-component vector of int)

-0:89                                                    Constant:

-0:89                                                      1 (const int)

-0:90                                                direct index (temp int)

-0:90                                                  'i3' (temp 3-component vector of int)

-0:90                                                  Constant:

-0:90                                                    0 (const int)

-0:91                                              direct index (temp int)

-0:91                                                'i3' (temp 3-component vector of int)

-0:91                                                Constant:

-0:91                                                  1 (const int)

-0:92                                            direct index (temp int)

-0:92                                              'i3' (temp 3-component vector of int)

-0:92                                              Constant:

-0:92                                                2 (const int)

-0:93                                          direct index (temp int)

-0:93                                            'i4' (temp 4-component vector of int)

-0:93                                            Constant:

-0:93                                              0 (const int)

-0:94                                        direct index (temp int)

-0:94                                          'i4' (temp 4-component vector of int)

-0:94                                          Constant:

-0:94                                            1 (const int)

-0:95                                      direct index (temp int)

-0:95                                        'i4' (temp 4-component vector of int)

-0:95                                        Constant:

-0:95                                          2 (const int)

-0:96                                    direct index (temp int)

-0:96                                      'i4' (temp 4-component vector of int)

-0:96                                      Constant:

-0:96                                        3 (const int)

-0:97                                'f' (temp float)

-0:98                              direct index (temp float)

-0:98                                'f2' (temp 2-component vector of float)

-0:98                                Constant:

-0:98                                  0 (const int)

-0:99                            direct index (temp float)

-0:99                              'f2' (temp 2-component vector of float)

-0:99                              Constant:

-0:99                                1 (const int)

-0:100                          direct index (temp float)

-0:100                            'f3' (temp 3-component vector of float)

-0:100                            Constant:

-0:100                              0 (const int)

-0:101                        direct index (temp float)

-0:101                          'f3' (temp 3-component vector of float)

-0:101                          Constant:

-0:101                            1 (const int)

-0:102                      direct index (temp float)

-0:102                        'f3' (temp 3-component vector of float)

-0:102                        Constant:

-0:102                          2 (const int)

-0:103                    direct index (temp float)

-0:103                      'f4' (temp 4-component vector of float)

-0:103                      Constant:

-0:103                        0 (const int)

-0:104                  direct index (temp float)

-0:104                    'f4' (temp 4-component vector of float)

-0:104                    Constant:

-0:104                      1 (const int)

-0:105                direct index (temp float)

-0:105                  'f4' (temp 4-component vector of float)

-0:105                  Constant:

-0:105                    2 (const int)

-0:106              direct index (temp float)

-0:106                'f4' (temp 4-component vector of float)

-0:106                Constant:

-0:106                  3 (const int)

-0:86          false case

-0:106          Constant:

-0:106            1.000000

-0:106            1.000000

-0:106            1.000000

-0:106            1.000000

-0:109      Sequence

-0:109        move second child to first child (temp 4-component vector of int)

-0:109          'cv2' (temp 4-component vector of int)

-0:109          Constant:

-0:109            1 (const int)

-0:109            1 (const int)

-0:109            1 (const int)

-0:109            1 (const int)

-0:110      Sequence

-0:110        move second child to first child (temp 4-component vector of bool)

-0:110          'cv5' (temp 4-component vector of bool)

-0:110          Convert int to bool (temp 4-component vector of bool)

-0:110            'cv2' (temp 4-component vector of int)

-0:111      add second child into first child (temp 4-component vector of float)

-0:111        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:111        Construct float (temp float)

-0:111          Convert bool to float (temp 4-component vector of float)

-0:111            'cv5' (temp 4-component vector of bool)

-0:?   Linker Objects

-0:?     'u_b' (uniform bool)

-0:?     'u_b2' (uniform 2-component vector of bool)

-0:?     'u_b3' (uniform 3-component vector of bool)

-0:?     'u_b4' (uniform 4-component vector of bool)

-0:?     'u_i' (uniform int)

-0:?     'u_i2' (uniform 2-component vector of int)

-0:?     'u_i3' (uniform 3-component vector of int)

-0:?     'u_i4' (uniform 4-component vector of int)

-0:?     'u_f' (uniform float)

-0:?     'u_f2' (uniform 2-component vector of float)

-0:?     'u_f3' (uniform 3-component vector of float)

-0:?     'u_f4' (uniform 4-component vector of float)

-0:?     'i_b' (uniform bool)

-0:?     'i_b2' (uniform 2-component vector of bool)

-0:?     'i_b3' (uniform 3-component vector of bool)

-0:?     'i_b4' (uniform 4-component vector of bool)

-0:?     'i_i' (flat in int)

-0:?     'i_i2' (flat in 2-component vector of int)

-0:?     'i_i3' (flat in 3-component vector of int)

-0:?     'i_i4' (flat in 4-component vector of int)

-0:?     'i_f' (smooth in float)

-0:?     'i_f2' (smooth in 2-component vector of float)

-0:?     'i_f3' (smooth in 3-component vector of float)

-0:?     'i_f4' (smooth in 4-component vector of float)

-

+conversion.frag
+Shader version: 130
+0:? Sequence
+0:33  Function Definition: main( (global void)
+0:33    Function Parameters: 
+0:35    Sequence
+0:35      Sequence
+0:35        move second child to first child (temp bool)
+0:35          'b' (temp bool)
+0:35          logical-xor (temp bool)
+0:35            Convert int to bool (temp bool)
+0:35              'u_i' (uniform int)
+0:35            Convert float to bool (temp bool)
+0:35              'u_f' (uniform float)
+0:36      Sequence
+0:36        move second child to first child (temp 2-component vector of bool)
+0:36          'b2' (temp 2-component vector of bool)
+0:36          Construct bvec2 (temp 2-component vector of bool)
+0:36            Convert int to bool (temp bool)
+0:36              'u_i' (uniform int)
+0:36            Convert float to bool (temp bool)
+0:36              'u_f' (uniform float)
+0:37      Sequence
+0:37        move second child to first child (temp 3-component vector of bool)
+0:37          'b3' (temp 3-component vector of bool)
+0:37          Construct bvec3 (temp 3-component vector of bool)
+0:37            Convert int to bool (temp bool)
+0:37              'u_i' (uniform int)
+0:37            Convert float to bool (temp bool)
+0:37              'u_f' (uniform float)
+0:37            Convert int to bool (temp bool)
+0:37              'i_i' (flat in int)
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of bool)
+0:38          'b4' (temp 4-component vector of bool)
+0:38          Construct bvec4 (temp 4-component vector of bool)
+0:38            Convert int to bool (temp bool)
+0:38              'u_i' (uniform int)
+0:38            Convert float to bool (temp bool)
+0:38              'u_f' (uniform float)
+0:38            Convert int to bool (temp bool)
+0:38              'i_i' (flat in int)
+0:38            Convert float to bool (temp bool)
+0:38              'i_f' (smooth in float)
+0:40      Sequence
+0:40        move second child to first child (temp int)
+0:40          'i' (temp int)
+0:40          add (temp int)
+0:40            Convert float to int (temp int)
+0:40              'u_f' (uniform float)
+0:40            Convert bool to int (temp int)
+0:40              'b' (temp bool)
+0:41      Sequence
+0:41        move second child to first child (temp 2-component vector of int)
+0:41          'i2' (temp 2-component vector of int)
+0:41          add (temp 2-component vector of int)
+0:41            Convert float to int (temp 2-component vector of int)
+0:41              'u_f2' (uniform 2-component vector of float)
+0:41            Convert bool to int (temp 2-component vector of int)
+0:41              'b2' (temp 2-component vector of bool)
+0:42      Sequence
+0:42        move second child to first child (temp 3-component vector of int)
+0:42          'i3' (temp 3-component vector of int)
+0:42          add (temp 3-component vector of int)
+0:42            Convert float to int (temp 3-component vector of int)
+0:42              'u_f3' (uniform 3-component vector of float)
+0:42            Convert bool to int (temp 3-component vector of int)
+0:42              'b3' (temp 3-component vector of bool)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of int)
+0:43          'i4' (temp 4-component vector of int)
+0:43          add (temp 4-component vector of int)
+0:43            Convert float to int (temp 4-component vector of int)
+0:43              'u_f4' (uniform 4-component vector of float)
+0:43            Convert bool to int (temp 4-component vector of int)
+0:43              'b4' (temp 4-component vector of bool)
+0:45      Sequence
+0:45        move second child to first child (temp float)
+0:45          'f' (temp float)
+0:45          Convert int to float (temp float)
+0:45            'i' (temp int)
+0:46      Sequence
+0:46        move second child to first child (temp 2-component vector of float)
+0:46          'f2' (temp 2-component vector of float)
+0:46          Convert int to float (temp 2-component vector of float)
+0:46            'i2' (temp 2-component vector of int)
+0:47      Sequence
+0:47        move second child to first child (temp 3-component vector of float)
+0:47          'f3' (temp 3-component vector of float)
+0:47          Convert int to float (temp 3-component vector of float)
+0:47            'i3' (temp 3-component vector of int)
+0:48      Sequence
+0:48        move second child to first child (temp 4-component vector of float)
+0:48          'f4' (temp 4-component vector of float)
+0:48          Convert int to float (temp 4-component vector of float)
+0:48            'i4' (temp 4-component vector of int)
+0:50      add second child into first child (temp float)
+0:50        'f' (temp float)
+0:50        add (temp float)
+0:50          Convert int to float (temp float)
+0:50            'i' (temp int)
+0:50          Convert bool to float (temp float)
+0:50            'b' (temp bool)
+0:51      subtract second child into first child (temp 2-component vector of float)
+0:51        'f2' (temp 2-component vector of float)
+0:51        add (temp 2-component vector of float)
+0:51          Convert int to float (temp 2-component vector of float)
+0:51            'i2' (temp 2-component vector of int)
+0:51          Convert bool to float (temp 2-component vector of float)
+0:51            'b2' (temp 2-component vector of bool)
+0:52      divide second child into first child (temp 3-component vector of float)
+0:52        'f3' (temp 3-component vector of float)
+0:52        add (temp 3-component vector of float)
+0:52          Convert int to float (temp 3-component vector of float)
+0:52            'i3' (temp 3-component vector of int)
+0:52          Convert bool to float (temp 3-component vector of float)
+0:52            'b3' (temp 3-component vector of bool)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'f4' (temp 4-component vector of float)
+0:53        add (temp 4-component vector of float)
+0:53          Convert int to float (temp 4-component vector of float)
+0:53            'i4' (temp 4-component vector of int)
+0:53          Convert bool to float (temp 4-component vector of float)
+0:53            'b4' (temp 4-component vector of bool)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'f4' (temp 4-component vector of float)
+0:55        Convert bool to float (temp 4-component vector of float)
+0:55          Convert int to bool (temp 4-component vector of bool)
+0:55            'i_i4' (flat in 4-component vector of int)
+0:56      add second child into first child (temp 4-component vector of float)
+0:56        'f4' (temp 4-component vector of float)
+0:56        Convert bool to float (temp 4-component vector of float)
+0:56          Convert float to bool (temp 4-component vector of bool)
+0:56            'u_f4' (uniform 4-component vector of float)
+0:58      add second child into first child (temp float)
+0:58        'f' (temp float)
+0:58        subtract (temp float)
+0:58          'f' (temp float)
+0:58          Convert int to float (temp float)
+0:58            'i' (temp int)
+0:59      add second child into first child (temp 2-component vector of float)
+0:59        'f2' (temp 2-component vector of float)
+0:59        add (temp 2-component vector of float)
+0:59          Construct vec2 (temp 2-component vector of float)
+0:59            'f' (temp float)
+0:59            Convert int to float (temp float)
+0:59              'i' (temp int)
+0:59          Convert int to float (temp 2-component vector of float)
+0:59            'i2' (temp 2-component vector of int)
+0:60      add second child into first child (temp 3-component vector of float)
+0:60        'f3' (temp 3-component vector of float)
+0:60        add (temp 3-component vector of float)
+0:60          Convert int to float (temp 3-component vector of float)
+0:60            'i3' (temp 3-component vector of int)
+0:60          Construct vec3 (temp 3-component vector of float)
+0:60            'f' (temp float)
+0:60            Convert int to float (temp float)
+0:60              'i' (temp int)
+0:60            'f' (temp float)
+0:61      add second child into first child (temp 4-component vector of float)
+0:61        'f4' (temp 4-component vector of float)
+0:61        add (temp 4-component vector of float)
+0:61          Construct vec4 (temp 4-component vector of float)
+0:61            Convert bool to float (temp float)
+0:61              'b' (temp bool)
+0:61            Convert int to float (temp float)
+0:61              'i' (temp int)
+0:61            'f' (temp float)
+0:61            Convert int to float (temp float)
+0:61              'i' (temp int)
+0:61          Convert int to float (temp 4-component vector of float)
+0:61            'i4' (temp 4-component vector of int)
+0:63      add second child into first child (temp 2-component vector of float)
+0:63        'f2' (temp 2-component vector of float)
+0:63        vector-scale (temp 2-component vector of float)
+0:63          Construct vec2 (temp 2-component vector of float)
+0:63            'f' (temp float)
+0:63            Convert int to float (temp float)
+0:63              'i' (temp int)
+0:63          Convert int to float (temp float)
+0:63            'i' (temp int)
+0:64      add second child into first child (temp 3-component vector of float)
+0:64        'f3' (temp 3-component vector of float)
+0:64        add (temp 3-component vector of float)
+0:64          Construct vec3 (temp 3-component vector of float)
+0:64            'f' (temp float)
+0:64            Convert int to float (temp float)
+0:64              'i' (temp int)
+0:64            'f' (temp float)
+0:64          Convert int to float (temp float)
+0:64            'i' (temp int)
+0:65      add second child into first child (temp 4-component vector of float)
+0:65        'f4' (temp 4-component vector of float)
+0:65        subtract (temp 4-component vector of float)
+0:65          Convert int to float (temp float)
+0:65            'i' (temp int)
+0:65          Construct vec4 (temp 4-component vector of float)
+0:65            Convert bool to float (temp float)
+0:65              'b' (temp bool)
+0:65            Convert int to float (temp float)
+0:65              'i' (temp int)
+0:65            'f' (temp float)
+0:65            Convert int to float (temp float)
+0:65              'i' (temp int)
+0:67      add second child into first child (temp 2-component vector of int)
+0:67        'i2' (temp 2-component vector of int)
+0:67        Construct ivec2 (temp 2-component vector of int)
+0:67          Convert float to int (temp int)
+0:67            'f' (temp float)
+0:67          'i' (temp int)
+0:68      add second child into first child (temp 3-component vector of int)
+0:68        'i3' (temp 3-component vector of int)
+0:68        Construct ivec3 (temp 3-component vector of int)
+0:68          Convert float to int (temp int)
+0:68            'f' (temp float)
+0:68          'i' (temp int)
+0:68          Convert float to int (temp int)
+0:68            'f' (temp float)
+0:69      add second child into first child (temp 4-component vector of int)
+0:69        'i4' (temp 4-component vector of int)
+0:69        Construct ivec4 (temp 4-component vector of int)
+0:69          Convert bool to int (temp int)
+0:69            'b' (temp bool)
+0:69          'i' (temp int)
+0:69          Convert float to int (temp int)
+0:69            'f' (temp float)
+0:69          'i' (temp int)
+0:71      Test condition and select (temp void)
+0:71        Condition
+0:72        logical-or (temp bool)
+0:71          logical-or (temp bool)
+0:71            logical-or (temp bool)
+0:71              Compare Less Than (temp bool)
+0:71                'f' (temp float)
+0:71                Convert int to float (temp float)
+0:71                  'i' (temp int)
+0:71              Compare Less Than (temp bool)
+0:71                Convert int to float (temp float)
+0:71                  'i' (temp int)
+0:71                'f' (temp float)
+0:72            Compare Equal (temp bool)
+0:72              'f2' (temp 2-component vector of float)
+0:72              Convert int to float (temp 2-component vector of float)
+0:72                'i2' (temp 2-component vector of int)
+0:73          Compare Not Equal (temp bool)
+0:73            Convert int to float (temp 3-component vector of float)
+0:73              'i3' (temp 3-component vector of int)
+0:73            'f3' (temp 3-component vector of float)
+0:71        true case
+0:74        move second child to first child (temp float)
+0:74          'f' (temp float)
+0:74          add (temp float)
+0:74            Test condition and select (temp float)
+0:74              Condition
+0:74              'b' (temp bool)
+0:74              true case
+0:74              Convert int to float (temp float)
+0:74                'i' (temp int)
+0:74              false case
+0:74              direct index (temp float)
+0:74                'f2' (temp 2-component vector of float)
+0:74                Constant:
+0:74                  0 (const int)
+0:74            Test condition and select (temp float)
+0:74              Condition
+0:74              direct index (temp bool)
+0:74                'b2' (temp 2-component vector of bool)
+0:74                Constant:
+0:74                  0 (const int)
+0:74              true case
+0:74              direct index (temp float)
+0:74                'f3' (temp 3-component vector of float)
+0:74                Constant:
+0:74                  0 (const int)
+0:74              false case
+0:74              Convert int to float (temp float)
+0:74                direct index (temp int)
+0:74                  'i2' (temp 2-component vector of int)
+0:74                  Constant:
+0:74                    1 (const int)
+0:76      move second child to first child (temp 4-component vector of float)
+0:76        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:86        Test condition and select (temp 4-component vector of float)
+0:86          Condition
+0:85          logical-or (temp bool)
+0:84            logical-or (temp bool)
+0:83              logical-or (temp bool)
+0:82                logical-or (temp bool)
+0:81                  logical-or (temp bool)
+0:80                    logical-or (temp bool)
+0:79                      logical-or (temp bool)
+0:78                        logical-or (temp bool)
+0:77                          logical-or (temp bool)
+0:77                            'b' (temp bool)
+0:78                            direct index (temp bool)
+0:78                              'b2' (temp 2-component vector of bool)
+0:78                              Constant:
+0:78                                0 (const int)
+0:79                          direct index (temp bool)
+0:79                            'b2' (temp 2-component vector of bool)
+0:79                            Constant:
+0:79                              1 (const int)
+0:80                        direct index (temp bool)
+0:80                          'b3' (temp 3-component vector of bool)
+0:80                          Constant:
+0:80                            0 (const int)
+0:81                      direct index (temp bool)
+0:81                        'b3' (temp 3-component vector of bool)
+0:81                        Constant:
+0:81                          1 (const int)
+0:82                    direct index (temp bool)
+0:82                      'b3' (temp 3-component vector of bool)
+0:82                      Constant:
+0:82                        2 (const int)
+0:83                  direct index (temp bool)
+0:83                    'b4' (temp 4-component vector of bool)
+0:83                    Constant:
+0:83                      0 (const int)
+0:84                direct index (temp bool)
+0:84                  'b4' (temp 4-component vector of bool)
+0:84                  Constant:
+0:84                    1 (const int)
+0:85              direct index (temp bool)
+0:85                'b4' (temp 4-component vector of bool)
+0:85                Constant:
+0:85                  2 (const int)
+0:86            direct index (temp bool)
+0:86              'b4' (temp 4-component vector of bool)
+0:86              Constant:
+0:86                3 (const int)
+0:86          true case
+0:105          Construct vec4 (temp 4-component vector of float)
+0:105            add (temp float)
+0:104              add (temp float)
+0:103                add (temp float)
+0:102                  add (temp float)
+0:101                    add (temp float)
+0:100                      add (temp float)
+0:99                        add (temp float)
+0:98                          add (temp float)
+0:97                            add (temp float)
+0:96                              add (temp float)
+0:95                                Convert int to float (temp float)
+0:95                                  add (temp int)
+0:94                                    add (temp int)
+0:93                                      add (temp int)
+0:92                                        add (temp int)
+0:91                                          add (temp int)
+0:90                                            add (temp int)
+0:89                                              add (temp int)
+0:88                                                add (temp int)
+0:87                                                  add (temp int)
+0:87                                                    'i' (temp int)
+0:88                                                    direct index (temp int)
+0:88                                                      'i2' (temp 2-component vector of int)
+0:88                                                      Constant:
+0:88                                                        0 (const int)
+0:89                                                  direct index (temp int)
+0:89                                                    'i2' (temp 2-component vector of int)
+0:89                                                    Constant:
+0:89                                                      1 (const int)
+0:90                                                direct index (temp int)
+0:90                                                  'i3' (temp 3-component vector of int)
+0:90                                                  Constant:
+0:90                                                    0 (const int)
+0:91                                              direct index (temp int)
+0:91                                                'i3' (temp 3-component vector of int)
+0:91                                                Constant:
+0:91                                                  1 (const int)
+0:92                                            direct index (temp int)
+0:92                                              'i3' (temp 3-component vector of int)
+0:92                                              Constant:
+0:92                                                2 (const int)
+0:93                                          direct index (temp int)
+0:93                                            'i4' (temp 4-component vector of int)
+0:93                                            Constant:
+0:93                                              0 (const int)
+0:94                                        direct index (temp int)
+0:94                                          'i4' (temp 4-component vector of int)
+0:94                                          Constant:
+0:94                                            1 (const int)
+0:95                                      direct index (temp int)
+0:95                                        'i4' (temp 4-component vector of int)
+0:95                                        Constant:
+0:95                                          2 (const int)
+0:96                                    direct index (temp int)
+0:96                                      'i4' (temp 4-component vector of int)
+0:96                                      Constant:
+0:96                                        3 (const int)
+0:97                                'f' (temp float)
+0:98                              direct index (temp float)
+0:98                                'f2' (temp 2-component vector of float)
+0:98                                Constant:
+0:98                                  0 (const int)
+0:99                            direct index (temp float)
+0:99                              'f2' (temp 2-component vector of float)
+0:99                              Constant:
+0:99                                1 (const int)
+0:100                          direct index (temp float)
+0:100                            'f3' (temp 3-component vector of float)
+0:100                            Constant:
+0:100                              0 (const int)
+0:101                        direct index (temp float)
+0:101                          'f3' (temp 3-component vector of float)
+0:101                          Constant:
+0:101                            1 (const int)
+0:102                      direct index (temp float)
+0:102                        'f3' (temp 3-component vector of float)
+0:102                        Constant:
+0:102                          2 (const int)
+0:103                    direct index (temp float)
+0:103                      'f4' (temp 4-component vector of float)
+0:103                      Constant:
+0:103                        0 (const int)
+0:104                  direct index (temp float)
+0:104                    'f4' (temp 4-component vector of float)
+0:104                    Constant:
+0:104                      1 (const int)
+0:105                direct index (temp float)
+0:105                  'f4' (temp 4-component vector of float)
+0:105                  Constant:
+0:105                    2 (const int)
+0:106              direct index (temp float)
+0:106                'f4' (temp 4-component vector of float)
+0:106                Constant:
+0:106                  3 (const int)
+0:86          false case
+0:106          Constant:
+0:106            1.000000
+0:106            1.000000
+0:106            1.000000
+0:106            1.000000
+0:109      Sequence
+0:109        move second child to first child (temp 4-component vector of int)
+0:109          'cv2' (temp 4-component vector of int)
+0:109          Constant:
+0:109            1 (const int)
+0:109            1 (const int)
+0:109            1 (const int)
+0:109            1 (const int)
+0:110      Sequence
+0:110        move second child to first child (temp 4-component vector of bool)
+0:110          'cv5' (temp 4-component vector of bool)
+0:110          Convert int to bool (temp 4-component vector of bool)
+0:110            'cv2' (temp 4-component vector of int)
+0:111      add second child into first child (temp 4-component vector of float)
+0:111        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:111        Construct float (temp float)
+0:111          Convert bool to float (temp 4-component vector of float)
+0:111            'cv5' (temp 4-component vector of bool)
+0:?   Linker Objects
+0:?     'u_b' (uniform bool)
+0:?     'u_b2' (uniform 2-component vector of bool)
+0:?     'u_b3' (uniform 3-component vector of bool)
+0:?     'u_b4' (uniform 4-component vector of bool)
+0:?     'u_i' (uniform int)
+0:?     'u_i2' (uniform 2-component vector of int)
+0:?     'u_i3' (uniform 3-component vector of int)
+0:?     'u_i4' (uniform 4-component vector of int)
+0:?     'u_f' (uniform float)
+0:?     'u_f2' (uniform 2-component vector of float)
+0:?     'u_f3' (uniform 3-component vector of float)
+0:?     'u_f4' (uniform 4-component vector of float)
+0:?     'i_b' (uniform bool)
+0:?     'i_b2' (uniform 2-component vector of bool)
+0:?     'i_b3' (uniform 3-component vector of bool)
+0:?     'i_b4' (uniform 4-component vector of bool)
+0:?     'i_i' (flat in int)
+0:?     'i_i2' (flat in 2-component vector of int)
+0:?     'i_i3' (flat in 3-component vector of int)
+0:?     'i_i4' (flat in 4-component vector of int)
+0:?     'i_f' (smooth in float)
+0:?     'i_f2' (smooth in 2-component vector of float)
+0:?     'i_f3' (smooth in 3-component vector of float)
+0:?     'i_f4' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:33  Function Definition: main( (global void)
+0:33    Function Parameters: 
+0:35    Sequence
+0:35      Sequence
+0:35        move second child to first child (temp bool)
+0:35          'b' (temp bool)
+0:35          logical-xor (temp bool)
+0:35            Convert int to bool (temp bool)
+0:35              'u_i' (uniform int)
+0:35            Convert float to bool (temp bool)
+0:35              'u_f' (uniform float)
+0:36      Sequence
+0:36        move second child to first child (temp 2-component vector of bool)
+0:36          'b2' (temp 2-component vector of bool)
+0:36          Construct bvec2 (temp 2-component vector of bool)
+0:36            Convert int to bool (temp bool)
+0:36              'u_i' (uniform int)
+0:36            Convert float to bool (temp bool)
+0:36              'u_f' (uniform float)
+0:37      Sequence
+0:37        move second child to first child (temp 3-component vector of bool)
+0:37          'b3' (temp 3-component vector of bool)
+0:37          Construct bvec3 (temp 3-component vector of bool)
+0:37            Convert int to bool (temp bool)
+0:37              'u_i' (uniform int)
+0:37            Convert float to bool (temp bool)
+0:37              'u_f' (uniform float)
+0:37            Convert int to bool (temp bool)
+0:37              'i_i' (flat in int)
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of bool)
+0:38          'b4' (temp 4-component vector of bool)
+0:38          Construct bvec4 (temp 4-component vector of bool)
+0:38            Convert int to bool (temp bool)
+0:38              'u_i' (uniform int)
+0:38            Convert float to bool (temp bool)
+0:38              'u_f' (uniform float)
+0:38            Convert int to bool (temp bool)
+0:38              'i_i' (flat in int)
+0:38            Convert float to bool (temp bool)
+0:38              'i_f' (smooth in float)
+0:40      Sequence
+0:40        move second child to first child (temp int)
+0:40          'i' (temp int)
+0:40          add (temp int)
+0:40            Convert float to int (temp int)
+0:40              'u_f' (uniform float)
+0:40            Convert bool to int (temp int)
+0:40              'b' (temp bool)
+0:41      Sequence
+0:41        move second child to first child (temp 2-component vector of int)
+0:41          'i2' (temp 2-component vector of int)
+0:41          add (temp 2-component vector of int)
+0:41            Convert float to int (temp 2-component vector of int)
+0:41              'u_f2' (uniform 2-component vector of float)
+0:41            Convert bool to int (temp 2-component vector of int)
+0:41              'b2' (temp 2-component vector of bool)
+0:42      Sequence
+0:42        move second child to first child (temp 3-component vector of int)
+0:42          'i3' (temp 3-component vector of int)
+0:42          add (temp 3-component vector of int)
+0:42            Convert float to int (temp 3-component vector of int)
+0:42              'u_f3' (uniform 3-component vector of float)
+0:42            Convert bool to int (temp 3-component vector of int)
+0:42              'b3' (temp 3-component vector of bool)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of int)
+0:43          'i4' (temp 4-component vector of int)
+0:43          add (temp 4-component vector of int)
+0:43            Convert float to int (temp 4-component vector of int)
+0:43              'u_f4' (uniform 4-component vector of float)
+0:43            Convert bool to int (temp 4-component vector of int)
+0:43              'b4' (temp 4-component vector of bool)
+0:45      Sequence
+0:45        move second child to first child (temp float)
+0:45          'f' (temp float)
+0:45          Convert int to float (temp float)
+0:45            'i' (temp int)
+0:46      Sequence
+0:46        move second child to first child (temp 2-component vector of float)
+0:46          'f2' (temp 2-component vector of float)
+0:46          Convert int to float (temp 2-component vector of float)
+0:46            'i2' (temp 2-component vector of int)
+0:47      Sequence
+0:47        move second child to first child (temp 3-component vector of float)
+0:47          'f3' (temp 3-component vector of float)
+0:47          Convert int to float (temp 3-component vector of float)
+0:47            'i3' (temp 3-component vector of int)
+0:48      Sequence
+0:48        move second child to first child (temp 4-component vector of float)
+0:48          'f4' (temp 4-component vector of float)
+0:48          Convert int to float (temp 4-component vector of float)
+0:48            'i4' (temp 4-component vector of int)
+0:50      add second child into first child (temp float)
+0:50        'f' (temp float)
+0:50        add (temp float)
+0:50          Convert int to float (temp float)
+0:50            'i' (temp int)
+0:50          Convert bool to float (temp float)
+0:50            'b' (temp bool)
+0:51      subtract second child into first child (temp 2-component vector of float)
+0:51        'f2' (temp 2-component vector of float)
+0:51        add (temp 2-component vector of float)
+0:51          Convert int to float (temp 2-component vector of float)
+0:51            'i2' (temp 2-component vector of int)
+0:51          Convert bool to float (temp 2-component vector of float)
+0:51            'b2' (temp 2-component vector of bool)
+0:52      divide second child into first child (temp 3-component vector of float)
+0:52        'f3' (temp 3-component vector of float)
+0:52        add (temp 3-component vector of float)
+0:52          Convert int to float (temp 3-component vector of float)
+0:52            'i3' (temp 3-component vector of int)
+0:52          Convert bool to float (temp 3-component vector of float)
+0:52            'b3' (temp 3-component vector of bool)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'f4' (temp 4-component vector of float)
+0:53        add (temp 4-component vector of float)
+0:53          Convert int to float (temp 4-component vector of float)
+0:53            'i4' (temp 4-component vector of int)
+0:53          Convert bool to float (temp 4-component vector of float)
+0:53            'b4' (temp 4-component vector of bool)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'f4' (temp 4-component vector of float)
+0:55        Convert bool to float (temp 4-component vector of float)
+0:55          Convert int to bool (temp 4-component vector of bool)
+0:55            'i_i4' (flat in 4-component vector of int)
+0:56      add second child into first child (temp 4-component vector of float)
+0:56        'f4' (temp 4-component vector of float)
+0:56        Convert bool to float (temp 4-component vector of float)
+0:56          Convert float to bool (temp 4-component vector of bool)
+0:56            'u_f4' (uniform 4-component vector of float)
+0:58      add second child into first child (temp float)
+0:58        'f' (temp float)
+0:58        subtract (temp float)
+0:58          'f' (temp float)
+0:58          Convert int to float (temp float)
+0:58            'i' (temp int)
+0:59      add second child into first child (temp 2-component vector of float)
+0:59        'f2' (temp 2-component vector of float)
+0:59        add (temp 2-component vector of float)
+0:59          Construct vec2 (temp 2-component vector of float)
+0:59            'f' (temp float)
+0:59            Convert int to float (temp float)
+0:59              'i' (temp int)
+0:59          Convert int to float (temp 2-component vector of float)
+0:59            'i2' (temp 2-component vector of int)
+0:60      add second child into first child (temp 3-component vector of float)
+0:60        'f3' (temp 3-component vector of float)
+0:60        add (temp 3-component vector of float)
+0:60          Convert int to float (temp 3-component vector of float)
+0:60            'i3' (temp 3-component vector of int)
+0:60          Construct vec3 (temp 3-component vector of float)
+0:60            'f' (temp float)
+0:60            Convert int to float (temp float)
+0:60              'i' (temp int)
+0:60            'f' (temp float)
+0:61      add second child into first child (temp 4-component vector of float)
+0:61        'f4' (temp 4-component vector of float)
+0:61        add (temp 4-component vector of float)
+0:61          Construct vec4 (temp 4-component vector of float)
+0:61            Convert bool to float (temp float)
+0:61              'b' (temp bool)
+0:61            Convert int to float (temp float)
+0:61              'i' (temp int)
+0:61            'f' (temp float)
+0:61            Convert int to float (temp float)
+0:61              'i' (temp int)
+0:61          Convert int to float (temp 4-component vector of float)
+0:61            'i4' (temp 4-component vector of int)
+0:63      add second child into first child (temp 2-component vector of float)
+0:63        'f2' (temp 2-component vector of float)
+0:63        vector-scale (temp 2-component vector of float)
+0:63          Construct vec2 (temp 2-component vector of float)
+0:63            'f' (temp float)
+0:63            Convert int to float (temp float)
+0:63              'i' (temp int)
+0:63          Convert int to float (temp float)
+0:63            'i' (temp int)
+0:64      add second child into first child (temp 3-component vector of float)
+0:64        'f3' (temp 3-component vector of float)
+0:64        add (temp 3-component vector of float)
+0:64          Construct vec3 (temp 3-component vector of float)
+0:64            'f' (temp float)
+0:64            Convert int to float (temp float)
+0:64              'i' (temp int)
+0:64            'f' (temp float)
+0:64          Convert int to float (temp float)
+0:64            'i' (temp int)
+0:65      add second child into first child (temp 4-component vector of float)
+0:65        'f4' (temp 4-component vector of float)
+0:65        subtract (temp 4-component vector of float)
+0:65          Convert int to float (temp float)
+0:65            'i' (temp int)
+0:65          Construct vec4 (temp 4-component vector of float)
+0:65            Convert bool to float (temp float)
+0:65              'b' (temp bool)
+0:65            Convert int to float (temp float)
+0:65              'i' (temp int)
+0:65            'f' (temp float)
+0:65            Convert int to float (temp float)
+0:65              'i' (temp int)
+0:67      add second child into first child (temp 2-component vector of int)
+0:67        'i2' (temp 2-component vector of int)
+0:67        Construct ivec2 (temp 2-component vector of int)
+0:67          Convert float to int (temp int)
+0:67            'f' (temp float)
+0:67          'i' (temp int)
+0:68      add second child into first child (temp 3-component vector of int)
+0:68        'i3' (temp 3-component vector of int)
+0:68        Construct ivec3 (temp 3-component vector of int)
+0:68          Convert float to int (temp int)
+0:68            'f' (temp float)
+0:68          'i' (temp int)
+0:68          Convert float to int (temp int)
+0:68            'f' (temp float)
+0:69      add second child into first child (temp 4-component vector of int)
+0:69        'i4' (temp 4-component vector of int)
+0:69        Construct ivec4 (temp 4-component vector of int)
+0:69          Convert bool to int (temp int)
+0:69            'b' (temp bool)
+0:69          'i' (temp int)
+0:69          Convert float to int (temp int)
+0:69            'f' (temp float)
+0:69          'i' (temp int)
+0:71      Test condition and select (temp void)
+0:71        Condition
+0:72        logical-or (temp bool)
+0:71          logical-or (temp bool)
+0:71            logical-or (temp bool)
+0:71              Compare Less Than (temp bool)
+0:71                'f' (temp float)
+0:71                Convert int to float (temp float)
+0:71                  'i' (temp int)
+0:71              Compare Less Than (temp bool)
+0:71                Convert int to float (temp float)
+0:71                  'i' (temp int)
+0:71                'f' (temp float)
+0:72            Compare Equal (temp bool)
+0:72              'f2' (temp 2-component vector of float)
+0:72              Convert int to float (temp 2-component vector of float)
+0:72                'i2' (temp 2-component vector of int)
+0:73          Compare Not Equal (temp bool)
+0:73            Convert int to float (temp 3-component vector of float)
+0:73              'i3' (temp 3-component vector of int)
+0:73            'f3' (temp 3-component vector of float)
+0:71        true case
+0:74        move second child to first child (temp float)
+0:74          'f' (temp float)
+0:74          add (temp float)
+0:74            Test condition and select (temp float)
+0:74              Condition
+0:74              'b' (temp bool)
+0:74              true case
+0:74              Convert int to float (temp float)
+0:74                'i' (temp int)
+0:74              false case
+0:74              direct index (temp float)
+0:74                'f2' (temp 2-component vector of float)
+0:74                Constant:
+0:74                  0 (const int)
+0:74            Test condition and select (temp float)
+0:74              Condition
+0:74              direct index (temp bool)
+0:74                'b2' (temp 2-component vector of bool)
+0:74                Constant:
+0:74                  0 (const int)
+0:74              true case
+0:74              direct index (temp float)
+0:74                'f3' (temp 3-component vector of float)
+0:74                Constant:
+0:74                  0 (const int)
+0:74              false case
+0:74              Convert int to float (temp float)
+0:74                direct index (temp int)
+0:74                  'i2' (temp 2-component vector of int)
+0:74                  Constant:
+0:74                    1 (const int)
+0:76      move second child to first child (temp 4-component vector of float)
+0:76        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:86        Test condition and select (temp 4-component vector of float)
+0:86          Condition
+0:85          logical-or (temp bool)
+0:84            logical-or (temp bool)
+0:83              logical-or (temp bool)
+0:82                logical-or (temp bool)
+0:81                  logical-or (temp bool)
+0:80                    logical-or (temp bool)
+0:79                      logical-or (temp bool)
+0:78                        logical-or (temp bool)
+0:77                          logical-or (temp bool)
+0:77                            'b' (temp bool)
+0:78                            direct index (temp bool)
+0:78                              'b2' (temp 2-component vector of bool)
+0:78                              Constant:
+0:78                                0 (const int)
+0:79                          direct index (temp bool)
+0:79                            'b2' (temp 2-component vector of bool)
+0:79                            Constant:
+0:79                              1 (const int)
+0:80                        direct index (temp bool)
+0:80                          'b3' (temp 3-component vector of bool)
+0:80                          Constant:
+0:80                            0 (const int)
+0:81                      direct index (temp bool)
+0:81                        'b3' (temp 3-component vector of bool)
+0:81                        Constant:
+0:81                          1 (const int)
+0:82                    direct index (temp bool)
+0:82                      'b3' (temp 3-component vector of bool)
+0:82                      Constant:
+0:82                        2 (const int)
+0:83                  direct index (temp bool)
+0:83                    'b4' (temp 4-component vector of bool)
+0:83                    Constant:
+0:83                      0 (const int)
+0:84                direct index (temp bool)
+0:84                  'b4' (temp 4-component vector of bool)
+0:84                  Constant:
+0:84                    1 (const int)
+0:85              direct index (temp bool)
+0:85                'b4' (temp 4-component vector of bool)
+0:85                Constant:
+0:85                  2 (const int)
+0:86            direct index (temp bool)
+0:86              'b4' (temp 4-component vector of bool)
+0:86              Constant:
+0:86                3 (const int)
+0:86          true case
+0:105          Construct vec4 (temp 4-component vector of float)
+0:105            add (temp float)
+0:104              add (temp float)
+0:103                add (temp float)
+0:102                  add (temp float)
+0:101                    add (temp float)
+0:100                      add (temp float)
+0:99                        add (temp float)
+0:98                          add (temp float)
+0:97                            add (temp float)
+0:96                              add (temp float)
+0:95                                Convert int to float (temp float)
+0:95                                  add (temp int)
+0:94                                    add (temp int)
+0:93                                      add (temp int)
+0:92                                        add (temp int)
+0:91                                          add (temp int)
+0:90                                            add (temp int)
+0:89                                              add (temp int)
+0:88                                                add (temp int)
+0:87                                                  add (temp int)
+0:87                                                    'i' (temp int)
+0:88                                                    direct index (temp int)
+0:88                                                      'i2' (temp 2-component vector of int)
+0:88                                                      Constant:
+0:88                                                        0 (const int)
+0:89                                                  direct index (temp int)
+0:89                                                    'i2' (temp 2-component vector of int)
+0:89                                                    Constant:
+0:89                                                      1 (const int)
+0:90                                                direct index (temp int)
+0:90                                                  'i3' (temp 3-component vector of int)
+0:90                                                  Constant:
+0:90                                                    0 (const int)
+0:91                                              direct index (temp int)
+0:91                                                'i3' (temp 3-component vector of int)
+0:91                                                Constant:
+0:91                                                  1 (const int)
+0:92                                            direct index (temp int)
+0:92                                              'i3' (temp 3-component vector of int)
+0:92                                              Constant:
+0:92                                                2 (const int)
+0:93                                          direct index (temp int)
+0:93                                            'i4' (temp 4-component vector of int)
+0:93                                            Constant:
+0:93                                              0 (const int)
+0:94                                        direct index (temp int)
+0:94                                          'i4' (temp 4-component vector of int)
+0:94                                          Constant:
+0:94                                            1 (const int)
+0:95                                      direct index (temp int)
+0:95                                        'i4' (temp 4-component vector of int)
+0:95                                        Constant:
+0:95                                          2 (const int)
+0:96                                    direct index (temp int)
+0:96                                      'i4' (temp 4-component vector of int)
+0:96                                      Constant:
+0:96                                        3 (const int)
+0:97                                'f' (temp float)
+0:98                              direct index (temp float)
+0:98                                'f2' (temp 2-component vector of float)
+0:98                                Constant:
+0:98                                  0 (const int)
+0:99                            direct index (temp float)
+0:99                              'f2' (temp 2-component vector of float)
+0:99                              Constant:
+0:99                                1 (const int)
+0:100                          direct index (temp float)
+0:100                            'f3' (temp 3-component vector of float)
+0:100                            Constant:
+0:100                              0 (const int)
+0:101                        direct index (temp float)
+0:101                          'f3' (temp 3-component vector of float)
+0:101                          Constant:
+0:101                            1 (const int)
+0:102                      direct index (temp float)
+0:102                        'f3' (temp 3-component vector of float)
+0:102                        Constant:
+0:102                          2 (const int)
+0:103                    direct index (temp float)
+0:103                      'f4' (temp 4-component vector of float)
+0:103                      Constant:
+0:103                        0 (const int)
+0:104                  direct index (temp float)
+0:104                    'f4' (temp 4-component vector of float)
+0:104                    Constant:
+0:104                      1 (const int)
+0:105                direct index (temp float)
+0:105                  'f4' (temp 4-component vector of float)
+0:105                  Constant:
+0:105                    2 (const int)
+0:106              direct index (temp float)
+0:106                'f4' (temp 4-component vector of float)
+0:106                Constant:
+0:106                  3 (const int)
+0:86          false case
+0:106          Constant:
+0:106            1.000000
+0:106            1.000000
+0:106            1.000000
+0:106            1.000000
+0:109      Sequence
+0:109        move second child to first child (temp 4-component vector of int)
+0:109          'cv2' (temp 4-component vector of int)
+0:109          Constant:
+0:109            1 (const int)
+0:109            1 (const int)
+0:109            1 (const int)
+0:109            1 (const int)
+0:110      Sequence
+0:110        move second child to first child (temp 4-component vector of bool)
+0:110          'cv5' (temp 4-component vector of bool)
+0:110          Convert int to bool (temp 4-component vector of bool)
+0:110            'cv2' (temp 4-component vector of int)
+0:111      add second child into first child (temp 4-component vector of float)
+0:111        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:111        Construct float (temp float)
+0:111          Convert bool to float (temp 4-component vector of float)
+0:111            'cv5' (temp 4-component vector of bool)
+0:?   Linker Objects
+0:?     'u_b' (uniform bool)
+0:?     'u_b2' (uniform 2-component vector of bool)
+0:?     'u_b3' (uniform 3-component vector of bool)
+0:?     'u_b4' (uniform 4-component vector of bool)
+0:?     'u_i' (uniform int)
+0:?     'u_i2' (uniform 2-component vector of int)
+0:?     'u_i3' (uniform 3-component vector of int)
+0:?     'u_i4' (uniform 4-component vector of int)
+0:?     'u_f' (uniform float)
+0:?     'u_f2' (uniform 2-component vector of float)
+0:?     'u_f3' (uniform 3-component vector of float)
+0:?     'u_f4' (uniform 4-component vector of float)
+0:?     'i_b' (uniform bool)
+0:?     'i_b2' (uniform 2-component vector of bool)
+0:?     'i_b3' (uniform 3-component vector of bool)
+0:?     'i_b4' (uniform 4-component vector of bool)
+0:?     'i_i' (flat in int)
+0:?     'i_i2' (flat in 2-component vector of int)
+0:?     'i_i3' (flat in 3-component vector of int)
+0:?     'i_i4' (flat in 4-component vector of int)
+0:?     'i_f' (smooth in float)
+0:?     'i_f2' (smooth in 2-component vector of float)
+0:?     'i_f3' (smooth in 3-component vector of float)
+0:?     'i_f4' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/cppComplexExpr.vert.out b/Test/baseResults/cppComplexExpr.vert.out
index 08dd936..aa73a06 100644
--- a/Test/baseResults/cppComplexExpr.vert.out
+++ b/Test/baseResults/cppComplexExpr.vert.out
@@ -1,200 +1,200 @@
-cppComplexExpr.vert

-ERROR: 0:46: 'xyxwx' : illegal vector field selection 

-ERROR: 0:46: 'xyxwx' : illegal vector field selection 

-ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG

-ERROR: 0:81: 'preprocessor evaluation' : bad expression 

-ERROR: 0:81: '#if' : unexpected tokens following directive 

-ERROR: 0:82: '#error' : good macro  

-ERROR: 0:87: 'macro expansion' : End of line in macro substitution: foobar

-ERROR: 0:88: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 0:88: 'preprocessor evaluation' : bad expression 

-ERROR: 0:88: '#if' : unexpected tokens following directive 

-ERROR: 0:92: 'macro expansion' : End of line in macro substitution: foobar

-ERROR: 0:93: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 0:93: 'preprocessor evaluation' : bad expression 

-ERROR: 0:93: '#if' : unexpected tokens following directive 

-ERROR: 0:99: 'macro expansion' : End of line in macro substitution: foobar

-ERROR: 0:100: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 0:100: 'preprocessor evaluation' : bad expression 

-ERROR: 0:100: '#if' : unexpected tokens following directive 

-ERROR: 0:101: 'macro expansion' : End of line in macro substitution: foobar

-ERROR: 0:102: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 0:102: 'preprocessor evaluation' : bad expression 

-ERROR: 0:102: '#if' : unexpected tokens following directive 

-ERROR: 0:108: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF

-ERROR: 0:111: '#error' : good 0  

-ERROR: 0:115: '#error' : good 1  

-ERROR: 0:120: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF

-ERROR: 0:123: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF

-ERROR: 0:129: '#error' : good 1  

-ERROR: 0:133: '#error' : good 3  

-ERROR: 0:139: '#error' : good 4  

-ERROR: 0:144: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF

-ERROR: 0:153: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF

-ERROR: 0:156: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2

-ERROR: 0:159: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2

-ERROR: 0:3000: '#error' : line of this error should be 3000  

-ERROR: 0:3002: '#define' : predefined names can't be (un)defined: __LINE__

-ERROR: 0:3003: '#define' : predefined names can't be (un)defined: __FILE__

-ERROR: 0:3004: '#define' : predefined names can't be (un)defined: __VERSION__

-ERROR: 0:3005: '#define' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION

-ERROR: 0:3006: '#undef' : predefined names can't be (un)defined: __LINE__

-ERROR: 0:3007: '#undef' : predefined names can't be (un)defined: __FILE__

-ERROR: 0:3008: '#undef' : predefined names can't be (un)defined: __VERSION__

-ERROR: 0:3009: '#undef' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION

-ERROR: 0:4000: 'preprocessor evaluation' : division by 0 

-ERROR: 0:0: 'preprocessor evaluation' : division by 0 

-ERROR: 0:3: 'preprocessor evaluation' : bad expression 

-ERROR: 0:3: 'preprocessor evaluation' : division by 0 

-ERROR: 0:10001: '' : missing #endif 

-ERROR: 48 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:4  Sequence

-0:4    move second child to first child (temp highp float)

-0:4      'sum' (global highp float)

-0:4      Constant:

-0:4        0.000000

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:10    Sequence

-0:10      add second child into first child (temp highp float)

-0:10        'sum' (global highp float)

-0:10        Constant:

-0:10          1.000000

-0:15      add second child into first child (temp highp float)

-0:15        'sum' (global highp float)

-0:15        Constant:

-0:15          20.000000

-0:30      add second child into first child (temp highp float)

-0:30        'sum' (global highp float)

-0:30        Constant:

-0:30          300.000000

-0:39      move second child to first child (temp highp 4-component vector of float)

-0:39        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:39        Construct vec4 (temp highp 4-component vector of float)

-0:39          'sum' (global highp float)

-0:44  Function Definition: foo( (global highp float)

-0:44    Function Parameters: 

-0:46    Sequence

-0:46      Branch: Return with expression

-0:46        add (temp highp float)

-0:46          add (temp highp float)

-0:46            direct index (temp highp float)

-0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:46              Constant:

-0:46                0 (const int)

-0:46            Constant:

-0:46              3.000000

-0:46          add (temp highp float)

-0:46            direct index (temp highp float)

-0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:46              Constant:

-0:46                0 (const int)

-0:46            Constant:

-0:46              3.000000

-0:47      Branch: Return with expression

-0:47        add (temp highp float)

-0:47          add (temp highp float)

-0:47            direct index (temp highp float)

-0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:47              Constant:

-0:47                1 (const int)

-0:47            Constant:

-0:47              3.000000

-0:47          add (temp highp float)

-0:47            direct index (temp highp float)

-0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:47              Constant:

-0:47                1 (const int)

-0:47            Constant:

-0:47              3.000000

-0:97  Sequence

-0:97    move second child to first child (temp highp float)

-0:97      'c' (global highp float)

-0:98      Constant:

-0:98        3.300000

-0:?   Linker Objects

-0:?     'sum' (global highp float)

-0:?     'c' (global highp float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:4  Sequence

-0:4    move second child to first child (temp highp float)

-0:4      'sum' (global highp float)

-0:4      Constant:

-0:4        0.000000

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:10    Sequence

-0:10      add second child into first child (temp highp float)

-0:10        'sum' (global highp float)

-0:10        Constant:

-0:10          1.000000

-0:15      add second child into first child (temp highp float)

-0:15        'sum' (global highp float)

-0:15        Constant:

-0:15          20.000000

-0:30      add second child into first child (temp highp float)

-0:30        'sum' (global highp float)

-0:30        Constant:

-0:30          300.000000

-0:39      move second child to first child (temp highp 4-component vector of float)

-0:39        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:39        Construct vec4 (temp highp 4-component vector of float)

-0:39          'sum' (global highp float)

-0:44  Function Definition: foo( (global highp float)

-0:44    Function Parameters: 

-0:46    Sequence

-0:46      Branch: Return with expression

-0:46        add (temp highp float)

-0:46          add (temp highp float)

-0:46            direct index (temp highp float)

-0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:46              Constant:

-0:46                0 (const int)

-0:46            Constant:

-0:46              3.000000

-0:46          add (temp highp float)

-0:46            direct index (temp highp float)

-0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:46              Constant:

-0:46                0 (const int)

-0:46            Constant:

-0:46              3.000000

-0:47      Branch: Return with expression

-0:47        add (temp highp float)

-0:47          add (temp highp float)

-0:47            direct index (temp highp float)

-0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:47              Constant:

-0:47                1 (const int)

-0:47            Constant:

-0:47              3.000000

-0:47          add (temp highp float)

-0:47            direct index (temp highp float)

-0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:47              Constant:

-0:47                1 (const int)

-0:47            Constant:

-0:47              3.000000

-0:97  Sequence

-0:97    move second child to first child (temp highp float)

-0:97      'c' (global highp float)

-0:98      Constant:

-0:98        3.300000

-0:?   Linker Objects

-0:?     'sum' (global highp float)

-0:?     'c' (global highp float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+cppComplexExpr.vert
+ERROR: 0:46: 'xyxwx' : illegal vector field selection 
+ERROR: 0:46: 'xyxwx' : illegal vector field selection 
+ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG
+ERROR: 0:81: 'preprocessor evaluation' : bad expression 
+ERROR: 0:81: '#if' : unexpected tokens following directive 
+ERROR: 0:82: '#error' : good macro  
+ERROR: 0:87: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:88: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 0:88: 'preprocessor evaluation' : bad expression 
+ERROR: 0:88: '#if' : unexpected tokens following directive 
+ERROR: 0:92: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:93: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 0:93: 'preprocessor evaluation' : bad expression 
+ERROR: 0:93: '#if' : unexpected tokens following directive 
+ERROR: 0:99: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:100: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 0:100: 'preprocessor evaluation' : bad expression 
+ERROR: 0:100: '#if' : unexpected tokens following directive 
+ERROR: 0:101: 'macro expansion' : End of line in macro substitution: foobar
+ERROR: 0:102: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 0:102: 'preprocessor evaluation' : bad expression 
+ERROR: 0:102: '#if' : unexpected tokens following directive 
+ERROR: 0:108: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:111: '#error' : good 0  
+ERROR: 0:115: '#error' : good 1  
+ERROR: 0:120: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:123: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:129: '#error' : good 1  
+ERROR: 0:133: '#error' : good 3  
+ERROR: 0:139: '#error' : good 4  
+ERROR: 0:144: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:153: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF
+ERROR: 0:156: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2
+ERROR: 0:159: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2
+ERROR: 0:3000: '#error' : line of this error should be 3000  
+ERROR: 0:3002: '#define' : predefined names can't be (un)defined: __LINE__
+ERROR: 0:3003: '#define' : predefined names can't be (un)defined: __FILE__
+ERROR: 0:3004: '#define' : predefined names can't be (un)defined: __VERSION__
+ERROR: 0:3005: '#define' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION
+ERROR: 0:3006: '#undef' : predefined names can't be (un)defined: __LINE__
+ERROR: 0:3007: '#undef' : predefined names can't be (un)defined: __FILE__
+ERROR: 0:3008: '#undef' : predefined names can't be (un)defined: __VERSION__
+ERROR: 0:3009: '#undef' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION
+ERROR: 0:4000: 'preprocessor evaluation' : division by 0 
+ERROR: 0:0: 'preprocessor evaluation' : division by 0 
+ERROR: 0:3: 'preprocessor evaluation' : bad expression 
+ERROR: 0:3: 'preprocessor evaluation' : division by 0 
+ERROR: 0:10001: '' : missing #endif 
+ERROR: 48 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:4  Sequence
+0:4    move second child to first child (temp highp float)
+0:4      'sum' (global highp float)
+0:4      Constant:
+0:4        0.000000
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:10    Sequence
+0:10      add second child into first child (temp highp float)
+0:10        'sum' (global highp float)
+0:10        Constant:
+0:10          1.000000
+0:15      add second child into first child (temp highp float)
+0:15        'sum' (global highp float)
+0:15        Constant:
+0:15          20.000000
+0:30      add second child into first child (temp highp float)
+0:30        'sum' (global highp float)
+0:30        Constant:
+0:30          300.000000
+0:39      move second child to first child (temp highp 4-component vector of float)
+0:39        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:39        Construct vec4 (temp highp 4-component vector of float)
+0:39          'sum' (global highp float)
+0:44  Function Definition: foo( (global highp float)
+0:44    Function Parameters: 
+0:46    Sequence
+0:46      Branch: Return with expression
+0:46        add (temp highp float)
+0:46          add (temp highp float)
+0:46            direct index (temp highp float)
+0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46              Constant:
+0:46                0 (const int)
+0:46            Constant:
+0:46              3.000000
+0:46          add (temp highp float)
+0:46            direct index (temp highp float)
+0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46              Constant:
+0:46                0 (const int)
+0:46            Constant:
+0:46              3.000000
+0:47      Branch: Return with expression
+0:47        add (temp highp float)
+0:47          add (temp highp float)
+0:47            direct index (temp highp float)
+0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47              Constant:
+0:47                1 (const int)
+0:47            Constant:
+0:47              3.000000
+0:47          add (temp highp float)
+0:47            direct index (temp highp float)
+0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47              Constant:
+0:47                1 (const int)
+0:47            Constant:
+0:47              3.000000
+0:97  Sequence
+0:97    move second child to first child (temp highp float)
+0:97      'c' (global highp float)
+0:98      Constant:
+0:98        3.300000
+0:?   Linker Objects
+0:?     'sum' (global highp float)
+0:?     'c' (global highp float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:4  Sequence
+0:4    move second child to first child (temp highp float)
+0:4      'sum' (global highp float)
+0:4      Constant:
+0:4        0.000000
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:10    Sequence
+0:10      add second child into first child (temp highp float)
+0:10        'sum' (global highp float)
+0:10        Constant:
+0:10          1.000000
+0:15      add second child into first child (temp highp float)
+0:15        'sum' (global highp float)
+0:15        Constant:
+0:15          20.000000
+0:30      add second child into first child (temp highp float)
+0:30        'sum' (global highp float)
+0:30        Constant:
+0:30          300.000000
+0:39      move second child to first child (temp highp 4-component vector of float)
+0:39        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:39        Construct vec4 (temp highp 4-component vector of float)
+0:39          'sum' (global highp float)
+0:44  Function Definition: foo( (global highp float)
+0:44    Function Parameters: 
+0:46    Sequence
+0:46      Branch: Return with expression
+0:46        add (temp highp float)
+0:46          add (temp highp float)
+0:46            direct index (temp highp float)
+0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46              Constant:
+0:46                0 (const int)
+0:46            Constant:
+0:46              3.000000
+0:46          add (temp highp float)
+0:46            direct index (temp highp float)
+0:46              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:46              Constant:
+0:46                0 (const int)
+0:46            Constant:
+0:46              3.000000
+0:47      Branch: Return with expression
+0:47        add (temp highp float)
+0:47          add (temp highp float)
+0:47            direct index (temp highp float)
+0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47              Constant:
+0:47                1 (const int)
+0:47            Constant:
+0:47              3.000000
+0:47          add (temp highp float)
+0:47            direct index (temp highp float)
+0:47              'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:47              Constant:
+0:47                1 (const int)
+0:47            Constant:
+0:47              3.000000
+0:97  Sequence
+0:97    move second child to first child (temp highp float)
+0:97      'c' (global highp float)
+0:98      Constant:
+0:98        3.300000
+0:?   Linker Objects
+0:?     'sum' (global highp float)
+0:?     'c' (global highp float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/cppIndent.vert.out b/Test/baseResults/cppIndent.vert.out
index a4a21f9..318ca81 100644
--- a/Test/baseResults/cppIndent.vert.out
+++ b/Test/baseResults/cppIndent.vert.out
@@ -1,84 +1,84 @@
-cppIndent.vert

-ERROR: 0:61: 'macro expansion' : Too few args in Macro FUNC

-ERROR: 0:61: '' :  syntax error

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp float)

-0:5      'sum' (global float)

-0:5      Constant:

-0:5        0.000000

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:12    Sequence

-0:12      add second child into first child (temp float)

-0:12        'sum' (global float)

-0:12        Constant:

-0:12          1.000000

-0:22      add second child into first child (temp float)

-0:22        'sum' (global float)

-0:22        Constant:

-0:22          300.000000

-0:37      add second child into first child (temp float)

-0:37        'sum' (global float)

-0:37        Constant:

-0:37          600000.000000

-0:47      add second child into first child (temp float)

-0:47        'sum' (global float)

-0:47        Constant:

-0:47          80000000.000000

-0:52      add second child into first child (temp float)

-0:52        'sum' (global float)

-0:52        Constant:

-0:52          900000000.000000

-0:56      move second child to first child (temp 4-component vector of float)

-0:56        'gl_Position' (gl_Position 4-component vector of float Position)

-0:56        Construct vec4 (temp 4-component vector of float)

-0:56          'sum' (global float)

-0:?   Linker Objects

-0:?     'sum' (global float)

-

-

-Linked vertex stage:

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp float)

-0:5      'sum' (global float)

-0:5      Constant:

-0:5        0.000000

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:12    Sequence

-0:12      add second child into first child (temp float)

-0:12        'sum' (global float)

-0:12        Constant:

-0:12          1.000000

-0:22      add second child into first child (temp float)

-0:22        'sum' (global float)

-0:22        Constant:

-0:22          300.000000

-0:37      add second child into first child (temp float)

-0:37        'sum' (global float)

-0:37        Constant:

-0:37          600000.000000

-0:47      add second child into first child (temp float)

-0:47        'sum' (global float)

-0:47        Constant:

-0:47          80000000.000000

-0:52      add second child into first child (temp float)

-0:52        'sum' (global float)

-0:52        Constant:

-0:52          900000000.000000

-0:56      move second child to first child (temp 4-component vector of float)

-0:56        'gl_Position' (gl_Position 4-component vector of float Position)

-0:56        Construct vec4 (temp 4-component vector of float)

-0:56          'sum' (global float)

-0:?   Linker Objects

-0:?     'sum' (global float)

-

+cppIndent.vert
+ERROR: 0:61: 'macro expansion' : Too few args in Macro FUNC
+ERROR: 0:61: '' :  syntax error
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'sum' (global float)
+0:5      Constant:
+0:5        0.000000
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:12    Sequence
+0:12      add second child into first child (temp float)
+0:12        'sum' (global float)
+0:12        Constant:
+0:12          1.000000
+0:22      add second child into first child (temp float)
+0:22        'sum' (global float)
+0:22        Constant:
+0:22          300.000000
+0:37      add second child into first child (temp float)
+0:37        'sum' (global float)
+0:37        Constant:
+0:37          600000.000000
+0:47      add second child into first child (temp float)
+0:47        'sum' (global float)
+0:47        Constant:
+0:47          80000000.000000
+0:52      add second child into first child (temp float)
+0:52        'sum' (global float)
+0:52        Constant:
+0:52          900000000.000000
+0:56      move second child to first child (temp 4-component vector of float)
+0:56        'gl_Position' (gl_Position 4-component vector of float Position)
+0:56        Construct vec4 (temp 4-component vector of float)
+0:56          'sum' (global float)
+0:?   Linker Objects
+0:?     'sum' (global float)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'sum' (global float)
+0:5      Constant:
+0:5        0.000000
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:12    Sequence
+0:12      add second child into first child (temp float)
+0:12        'sum' (global float)
+0:12        Constant:
+0:12          1.000000
+0:22      add second child into first child (temp float)
+0:22        'sum' (global float)
+0:22        Constant:
+0:22          300.000000
+0:37      add second child into first child (temp float)
+0:37        'sum' (global float)
+0:37        Constant:
+0:37          600000.000000
+0:47      add second child into first child (temp float)
+0:47        'sum' (global float)
+0:47        Constant:
+0:47          80000000.000000
+0:52      add second child into first child (temp float)
+0:52        'sum' (global float)
+0:52        Constant:
+0:52          900000000.000000
+0:56      move second child to first child (temp 4-component vector of float)
+0:56        'gl_Position' (gl_Position 4-component vector of float Position)
+0:56        Construct vec4 (temp 4-component vector of float)
+0:56          'sum' (global float)
+0:?   Linker Objects
+0:?     'sum' (global float)
+
diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out
index f9534e4..4f95f5a 100644
--- a/Test/baseResults/cppNest.vert.out
+++ b/Test/baseResults/cppNest.vert.out
@@ -1,154 +1,154 @@
-cppNest.vert

-ERROR: 0:144: '#elif' : #elif after #else 

-ERROR: 0:152: '#else' : #else after #else 

-ERROR: 0:161: '#elif' : #elif after #else 

-ERROR: 0:169: '#else' : #else after #else 

-ERROR: 0:177: 'macro expansion' : End of input in macro FUNC

-ERROR: 0:178: '' :  syntax error

-ERROR: 6 compilation errors.  No code generated.

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp float)

-0:5      'sum' (global float)

-0:5      Constant:

-0:5        0.000000

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:12    Sequence

-0:12      add second child into first child (temp float)

-0:12        'sum' (global float)

-0:12        Constant:

-0:12          1.000000

-0:21      add second child into first child (temp float)

-0:21        'sum' (global float)

-0:21        Constant:

-0:21          300.000000

-0:61      add second child into first child (temp float)

-0:61        'sum' (global float)

-0:61        Constant:

-0:61          600000.000000

-0:65      add second child into first child (temp float)

-0:65        'sum' (global float)

-0:65        Constant:

-0:65          80000000.000000

-0:69      add second child into first child (temp float)

-0:69        'sum' (global float)

-0:69        Constant:

-0:69          900000000.000000

-0:76      add second child into first child (temp float)

-0:76        'sum' (global float)

-0:76        Constant:

-0:76          7000000.000000

-0:86      move second child to first child (temp 4-component vector of float)

-0:86        'gl_Position' (gl_Position 4-component vector of float Position)

-0:86        Construct vec4 (temp 4-component vector of float)

-0:86          'sum' (global float)

-0:103  Sequence

-0:103    move second child to first child (temp int)

-0:103      'selected4' (global int)

-0:103      Constant:

-0:103        4 (const int)

-0:115  Sequence

-0:115    move second child to first child (temp int)

-0:115      'selected2' (global int)

-0:115      Constant:

-0:115        2 (const int)

-0:133  Sequence

-0:133    move second child to first child (temp int)

-0:133      'selected3' (global int)

-0:133      Constant:

-0:133        3 (const int)

-0:175  Function Definition: foo985( (global void)

-0:175    Function Parameters: 

-0:175    Sequence

-0:175      add (temp int)

-0:175        Constant:

-0:175          2 (const int)

-0:175        Comma (temp int)

-0:175          Constant:

-0:175            3 (const int)

-0:175          Constant:

-0:175            4 (const int)

-0:?   Linker Objects

-0:?     'sum' (global float)

-0:?     'selected4' (global int)

-0:?     'selected2' (global int)

-0:?     'selected3' (global int)

-

-

-Linked vertex stage:

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp float)

-0:5      'sum' (global float)

-0:5      Constant:

-0:5        0.000000

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:12    Sequence

-0:12      add second child into first child (temp float)

-0:12        'sum' (global float)

-0:12        Constant:

-0:12          1.000000

-0:21      add second child into first child (temp float)

-0:21        'sum' (global float)

-0:21        Constant:

-0:21          300.000000

-0:61      add second child into first child (temp float)

-0:61        'sum' (global float)

-0:61        Constant:

-0:61          600000.000000

-0:65      add second child into first child (temp float)

-0:65        'sum' (global float)

-0:65        Constant:

-0:65          80000000.000000

-0:69      add second child into first child (temp float)

-0:69        'sum' (global float)

-0:69        Constant:

-0:69          900000000.000000

-0:76      add second child into first child (temp float)

-0:76        'sum' (global float)

-0:76        Constant:

-0:76          7000000.000000

-0:86      move second child to first child (temp 4-component vector of float)

-0:86        'gl_Position' (gl_Position 4-component vector of float Position)

-0:86        Construct vec4 (temp 4-component vector of float)

-0:86          'sum' (global float)

-0:103  Sequence

-0:103    move second child to first child (temp int)

-0:103      'selected4' (global int)

-0:103      Constant:

-0:103        4 (const int)

-0:115  Sequence

-0:115    move second child to first child (temp int)

-0:115      'selected2' (global int)

-0:115      Constant:

-0:115        2 (const int)

-0:133  Sequence

-0:133    move second child to first child (temp int)

-0:133      'selected3' (global int)

-0:133      Constant:

-0:133        3 (const int)

-0:175  Function Definition: foo985( (global void)

-0:175    Function Parameters: 

-0:175    Sequence

-0:175      add (temp int)

-0:175        Constant:

-0:175          2 (const int)

-0:175        Comma (temp int)

-0:175          Constant:

-0:175            3 (const int)

-0:175          Constant:

-0:175            4 (const int)

-0:?   Linker Objects

-0:?     'sum' (global float)

-0:?     'selected4' (global int)

-0:?     'selected2' (global int)

-0:?     'selected3' (global int)

-

+cppNest.vert
+ERROR: 0:144: '#elif' : #elif after #else 
+ERROR: 0:152: '#else' : #else after #else 
+ERROR: 0:161: '#elif' : #elif after #else 
+ERROR: 0:169: '#else' : #else after #else 
+ERROR: 0:177: 'macro expansion' : End of input in macro FUNC
+ERROR: 0:178: '' :  syntax error
+ERROR: 6 compilation errors.  No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'sum' (global float)
+0:5      Constant:
+0:5        0.000000
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:12    Sequence
+0:12      add second child into first child (temp float)
+0:12        'sum' (global float)
+0:12        Constant:
+0:12          1.000000
+0:21      add second child into first child (temp float)
+0:21        'sum' (global float)
+0:21        Constant:
+0:21          300.000000
+0:61      add second child into first child (temp float)
+0:61        'sum' (global float)
+0:61        Constant:
+0:61          600000.000000
+0:65      add second child into first child (temp float)
+0:65        'sum' (global float)
+0:65        Constant:
+0:65          80000000.000000
+0:69      add second child into first child (temp float)
+0:69        'sum' (global float)
+0:69        Constant:
+0:69          900000000.000000
+0:76      add second child into first child (temp float)
+0:76        'sum' (global float)
+0:76        Constant:
+0:76          7000000.000000
+0:86      move second child to first child (temp 4-component vector of float)
+0:86        'gl_Position' (gl_Position 4-component vector of float Position)
+0:86        Construct vec4 (temp 4-component vector of float)
+0:86          'sum' (global float)
+0:103  Sequence
+0:103    move second child to first child (temp int)
+0:103      'selected4' (global int)
+0:103      Constant:
+0:103        4 (const int)
+0:115  Sequence
+0:115    move second child to first child (temp int)
+0:115      'selected2' (global int)
+0:115      Constant:
+0:115        2 (const int)
+0:133  Sequence
+0:133    move second child to first child (temp int)
+0:133      'selected3' (global int)
+0:133      Constant:
+0:133        3 (const int)
+0:175  Function Definition: foo985( (global void)
+0:175    Function Parameters: 
+0:175    Sequence
+0:175      add (temp int)
+0:175        Constant:
+0:175          2 (const int)
+0:175        Comma (temp int)
+0:175          Constant:
+0:175            3 (const int)
+0:175          Constant:
+0:175            4 (const int)
+0:?   Linker Objects
+0:?     'sum' (global float)
+0:?     'selected4' (global int)
+0:?     'selected2' (global int)
+0:?     'selected3' (global int)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'sum' (global float)
+0:5      Constant:
+0:5        0.000000
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:12    Sequence
+0:12      add second child into first child (temp float)
+0:12        'sum' (global float)
+0:12        Constant:
+0:12          1.000000
+0:21      add second child into first child (temp float)
+0:21        'sum' (global float)
+0:21        Constant:
+0:21          300.000000
+0:61      add second child into first child (temp float)
+0:61        'sum' (global float)
+0:61        Constant:
+0:61          600000.000000
+0:65      add second child into first child (temp float)
+0:65        'sum' (global float)
+0:65        Constant:
+0:65          80000000.000000
+0:69      add second child into first child (temp float)
+0:69        'sum' (global float)
+0:69        Constant:
+0:69          900000000.000000
+0:76      add second child into first child (temp float)
+0:76        'sum' (global float)
+0:76        Constant:
+0:76          7000000.000000
+0:86      move second child to first child (temp 4-component vector of float)
+0:86        'gl_Position' (gl_Position 4-component vector of float Position)
+0:86        Construct vec4 (temp 4-component vector of float)
+0:86          'sum' (global float)
+0:103  Sequence
+0:103    move second child to first child (temp int)
+0:103      'selected4' (global int)
+0:103      Constant:
+0:103        4 (const int)
+0:115  Sequence
+0:115    move second child to first child (temp int)
+0:115      'selected2' (global int)
+0:115      Constant:
+0:115        2 (const int)
+0:133  Sequence
+0:133    move second child to first child (temp int)
+0:133      'selected3' (global int)
+0:133      Constant:
+0:133        3 (const int)
+0:175  Function Definition: foo985( (global void)
+0:175    Function Parameters: 
+0:175    Sequence
+0:175      add (temp int)
+0:175        Constant:
+0:175          2 (const int)
+0:175        Comma (temp int)
+0:175          Constant:
+0:175            3 (const int)
+0:175          Constant:
+0:175            4 (const int)
+0:?   Linker Objects
+0:?     'sum' (global float)
+0:?     'selected4' (global int)
+0:?     'selected2' (global int)
+0:?     'selected3' (global int)
+
diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out
index a8cd543..366770d 100644
--- a/Test/baseResults/cppSimple.vert.out
+++ b/Test/baseResults/cppSimple.vert.out
@@ -1,317 +1,317 @@
-cppSimple.vert

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:77: '#error' : good1  

-ERROR: 0:81: '#error' : good2  

-ERROR: 0:85: '#error' : good3  

-ERROR: 0:89: '#error' : good4  

-ERROR: 0:93: '#error' : good5  

-ERROR: 0:97: '#error' : good6  

-ERROR: 0:100: 'preprocessor evaluation' : expected ')' 

-ERROR: 0:101: '#error' : bad1  

-ERROR: 0:104: '#if' : unexpected tokens following directive 

-ERROR: 0:105: '#error' : bad2  

-ERROR: 0:108: 'preprocessor evaluation' : expected ')' 

-ERROR: 0:109: '#error' : bad3  

-ERROR: 0:112: '#if' : unexpected tokens following directive 

-ERROR: 0:113: '#error' : bad4  

-ERROR: 0:116: 'preprocessor evaluation' : expected ')' 

-ERROR: 0:117: '#error' : bad5  

-ERROR: 0:120: '#if' : unexpected tokens following directive 

-ERROR: 0:121: '#error' : bad6  

-ERROR: 0:122: '#endif' : unexpected tokens following directive 

-ERROR: 0:135: '""' : string literals not supported 

-ERROR: 0:136: '""' : string literals not supported 

-ERROR: 0:136: 'length' : no matching overloaded function found 

-ERROR: 0:136: '=' :  cannot convert from 'const float' to 'global int'

-ERROR: 0:138: ''' : character literals not supported 

-ERROR: 0:138: ''' : character literals not supported 

-ERROR: 0:141: '#define' : names beginning with "GL_" can't be (un)defined: GL_

-ERROR: 0:142: '#define' : names beginning with "GL_" can't be (un)defined: GL_Macro

-WARNING: 0:143: '#define' : names containing consecutive underscores are reserved: __M

-WARNING: 0:144: '#define' : names containing consecutive underscores are reserved: M__

-WARNING: 0:145: '#define' : names containing consecutive underscores are reserved: ABC__DE

-ERROR: 0:148: '#else' : unexpected tokens following directive 

-ERROR: 0:149: '#elif' : #elif after #else 

-ERROR: 0:155: '#else' : unexpected tokens following directive 

-ERROR: 0:158: '#else' : #else after #else 

-ERROR: 0:160: '#endif' : unexpected tokens following directive 

-ERROR: 0:164: '#define' : duplicate macro parameter 

-ERROR: 0:173: '#define' : Macro redefined; different number of arguments: m4

-ERROR: 0:178: '#define' : Macro redefined; different number of arguments: m5

-ERROR: 0:182: '#define' : Macro redefined; different number of arguments: m6

-ERROR: 0:185: '#define' : Macro redefined; different substitutions: m7

-ERROR: 0:192: '#define' : Macro redefined; different substitutions: m8

-ERROR: 0:196: '#define' : Macro redefined; different argument names: m9

-WARNING: 0:204: '#undef' : names containing consecutive underscores are reserved: __VERSION__

-ERROR: 0:205: '#undef' : names beginning with "GL_" can't be (un)defined: GL_ARB_texture_rectangle

-ERROR: 0:210: '#' : invalid directive 

-ERROR: 0:211: '#' : invalid directive 

-ERROR: 0:212: '#' : invalid directive 

-ERROR: 0:213: '#' : invalid directive 

-ERROR: 0:214: '#' : invalid directive 

-ERROR: 0:215: '#' : invalid directive 

-ERROR: 0:224: '#pragma' : optimize pragma syntax is incorrect 

-ERROR: 0:225: '#pragma' : optimize pragma syntax is incorrect 

-ERROR: 0:226: '#pragma' : debug pragma syntax is incorrect 

-ERROR: 0:227: '#pragma' : debug pragma syntax is incorrect 

-ERROR: 0:229: '#pragma' : optimize pragma syntax is incorrect 

-ERROR: 0:230: '#pragma' : debug pragma syntax is incorrect 

-ERROR: 0:233: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:235: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:236: '#error' : good continuation  

-ERROR: 0:238: '#' : invalid directive: flizbit

-ERROR: 0:242: '#' : invalid directive: directive

-ERROR: 0:12000: '#error' : line should be 12000  

-ERROR: 7:13000: '#error' : line should be 13000 , string 7  

-ERROR: 7:14013: '#error' : line should be 14013 , string 7  

-ERROR: 12:14013: '#error' : line should be 14013 , string 12  

-ERROR: 12:14025: '#error' : line should be 14025 , string 12  

-ERROR: 12:1233: '#line' : unexpected tokens following directive 

-ERROR: 12:1236: '#line' : unexpected tokens following directive 

-ERROR: 12:20000: '#error' : line should be 20000  

-ERROR: 12:20010: '#error' : line should be 20010  

-ERROR: 12:20020: '#error' : line should be 20020  

-ERROR: 12:20045: '#define' : Macro redefined; different substitutions: SPACE_IN_MIDDLE

-ERROR: 12:20051: '#error' : good evaluation 1  

-ERROR: 12:20055: '#error' : good evaluation 2  

-ERROR: 12:9000: 'preprocessor evaluation' : expected ')' 

-ERROR: 12:9002: '#if' : unexpected tokens following directive 

-ERROR: 12:9014: 'macro expansion' : expected '(' following FOOOM

-ERROR: 12:9014: 'FOOOM' : undeclared identifier 

-ERROR: 12:9014: '=' :  cannot convert from 'temp float' to 'global int'

-ERROR: 12:9015: 'macro expansion' : expected '(' following FOOOM

-ERROR: 12:9016: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 12:9016: 'preprocessor evaluation' : bad expression 

-ERROR: 12:9500: 'preprocessor evaluation' : bad expression 

-ERROR: 12:9500: '#if' : unexpected tokens following directive 

-ERROR: 12:9502: 'preprocessor evaluation' : bad expression 

-ERROR: 12:9502: '#if' : unexpected tokens following directive 

-ERROR: 12:9504: 'preprocessor evaluation' : bad expression 

-ERROR: 12:9504: '#if' : unexpected tokens following directive 

-ERROR: 12:9506: '#error' : \ 377  

-ERROR: 12:9507: '#error' : \ 376  

-ERROR: 12:9508: '#error' : \ 377  

-ERROR: 12:10002: '' : missing #endif 

-ERROR: 88 compilation errors.  No code generated.

-

-

-Shader version: 400

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp float)

-0:5      'sum' (global float)

-0:5      Constant:

-0:5        0.000000

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:12    Sequence

-0:12      add second child into first child (temp float)

-0:12        'sum' (global float)

-0:12        Constant:

-0:12          1.000000

-0:22      add second child into first child (temp float)

-0:22        'sum' (global float)

-0:22        Constant:

-0:22          300.000000

-0:37      add second child into first child (temp float)

-0:37        'sum' (global float)

-0:37        Constant:

-0:37          600000.000000

-0:48      add second child into first child (temp float)

-0:48        'sum' (global float)

-0:48        Constant:

-0:48          7000000.000000

-0:53      add second child into first child (temp float)

-0:53        'sum' (global float)

-0:53        Constant:

-0:53          80000000.000000

-0:58      add second child into first child (temp float)

-0:58        'sum' (global float)

-0:58        Constant:

-0:58          900000000.000000

-0:65      add second child into first child (temp float)

-0:65        'sum' (global float)

-0:65        Constant:

-0:65          0.050000

-0:69      move second child to first child (temp 4-component vector of float)

-0:69        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:69          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:69          Constant:

-0:69            0 (const uint)

-0:69        Construct vec4 (temp 4-component vector of float)

-0:69          'sum' (global float)

-0:124  Sequence

-0:124    move second child to first child (temp int)

-0:124      'linenumber' (global int)

-0:124      Constant:

-0:124        124 (const int)

-0:125  Sequence

-0:125    move second child to first child (temp int)

-0:125      'filenumber' (global int)

-0:125      Constant:

-0:125        0 (const int)

-0:126  Sequence

-0:126    move second child to first child (temp int)

-0:126      'version' (global int)

-0:126      Constant:

-0:126        400 (const int)

-0:130  Sequence

-0:130    move second child to first child (temp float)

-0:130      'twoPi' (global float)

-0:130      Constant:

-0:130        6.280000

-0:199  Sequence

-0:199    move second child to first child (temp int)

-0:199      'n' (global int)

-0:199      Constant:

-0:199        15 (const int)

-0:202  Sequence

-0:202    move second child to first child (temp double)

-0:202      'f' (global double)

-0:202      Constant:

-0:202        0.000800

-12:20031  Function Definition: foo234( (global void)

-12:20031    Function Parameters: 

-12:20033    Sequence

-12:20033      move second child to first child (temp 4-component vector of float)

-12:20033        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-12:20033          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-12:20033          Constant:

-12:20033            0 (const uint)

-12:20033        Constant:

-12:20033          6.000000

-12:20033          6.000000

-12:20033          6.000000

-12:20033          6.000000

-12:9011  Sequence

-12:9011    move second child to first child (temp int)

-12:9011      'R1' (global int)

-12:9011      'RECURSE' (global int)

-0:?   Linker Objects

-0:?     'sum' (global float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'linenumber' (global int)

-0:?     'filenumber' (global int)

-0:?     'version' (global int)

-0:?     'twoPi' (global float)

-0:?     'a' (global int)

-0:?     'n' (global int)

-0:?     'f' (global double)

-0:?     'RECURSE' (global int)

-0:?     'R1' (global int)

-0:?     'aoeua' (global int)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 400

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp float)

-0:5      'sum' (global float)

-0:5      Constant:

-0:5        0.000000

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:12    Sequence

-0:12      add second child into first child (temp float)

-0:12        'sum' (global float)

-0:12        Constant:

-0:12          1.000000

-0:22      add second child into first child (temp float)

-0:22        'sum' (global float)

-0:22        Constant:

-0:22          300.000000

-0:37      add second child into first child (temp float)

-0:37        'sum' (global float)

-0:37        Constant:

-0:37          600000.000000

-0:48      add second child into first child (temp float)

-0:48        'sum' (global float)

-0:48        Constant:

-0:48          7000000.000000

-0:53      add second child into first child (temp float)

-0:53        'sum' (global float)

-0:53        Constant:

-0:53          80000000.000000

-0:58      add second child into first child (temp float)

-0:58        'sum' (global float)

-0:58        Constant:

-0:58          900000000.000000

-0:65      add second child into first child (temp float)

-0:65        'sum' (global float)

-0:65        Constant:

-0:65          0.050000

-0:69      move second child to first child (temp 4-component vector of float)

-0:69        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:69          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:69          Constant:

-0:69            0 (const uint)

-0:69        Construct vec4 (temp 4-component vector of float)

-0:69          'sum' (global float)

-0:124  Sequence

-0:124    move second child to first child (temp int)

-0:124      'linenumber' (global int)

-0:124      Constant:

-0:124        124 (const int)

-0:125  Sequence

-0:125    move second child to first child (temp int)

-0:125      'filenumber' (global int)

-0:125      Constant:

-0:125        0 (const int)

-0:126  Sequence

-0:126    move second child to first child (temp int)

-0:126      'version' (global int)

-0:126      Constant:

-0:126        400 (const int)

-0:130  Sequence

-0:130    move second child to first child (temp float)

-0:130      'twoPi' (global float)

-0:130      Constant:

-0:130        6.280000

-0:199  Sequence

-0:199    move second child to first child (temp int)

-0:199      'n' (global int)

-0:199      Constant:

-0:199        15 (const int)

-0:202  Sequence

-0:202    move second child to first child (temp double)

-0:202      'f' (global double)

-0:202      Constant:

-0:202        0.000800

-12:20031  Function Definition: foo234( (global void)

-12:20031    Function Parameters: 

-12:20033    Sequence

-12:20033      move second child to first child (temp 4-component vector of float)

-12:20033        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-12:20033          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-12:20033          Constant:

-12:20033            0 (const uint)

-12:20033        Constant:

-12:20033          6.000000

-12:20033          6.000000

-12:20033          6.000000

-12:20033          6.000000

-12:9011  Sequence

-12:9011    move second child to first child (temp int)

-12:9011      'R1' (global int)

-12:9011      'RECURSE' (global int)

-0:?   Linker Objects

-0:?     'sum' (global float)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'linenumber' (global int)

-0:?     'filenumber' (global int)

-0:?     'version' (global int)

-0:?     'twoPi' (global float)

-0:?     'a' (global int)

-0:?     'n' (global int)

-0:?     'f' (global double)

-0:?     'RECURSE' (global int)

-0:?     'R1' (global int)

-0:?     'aoeua' (global int)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+cppSimple.vert
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:77: '#error' : good1  
+ERROR: 0:81: '#error' : good2  
+ERROR: 0:85: '#error' : good3  
+ERROR: 0:89: '#error' : good4  
+ERROR: 0:93: '#error' : good5  
+ERROR: 0:97: '#error' : good6  
+ERROR: 0:100: 'preprocessor evaluation' : expected ')' 
+ERROR: 0:101: '#error' : bad1  
+ERROR: 0:104: '#if' : unexpected tokens following directive 
+ERROR: 0:105: '#error' : bad2  
+ERROR: 0:108: 'preprocessor evaluation' : expected ')' 
+ERROR: 0:109: '#error' : bad3  
+ERROR: 0:112: '#if' : unexpected tokens following directive 
+ERROR: 0:113: '#error' : bad4  
+ERROR: 0:116: 'preprocessor evaluation' : expected ')' 
+ERROR: 0:117: '#error' : bad5  
+ERROR: 0:120: '#if' : unexpected tokens following directive 
+ERROR: 0:121: '#error' : bad6  
+ERROR: 0:122: '#endif' : unexpected tokens following directive 
+ERROR: 0:135: '""' : string literals not supported 
+ERROR: 0:136: '""' : string literals not supported 
+ERROR: 0:136: 'length' : no matching overloaded function found 
+ERROR: 0:136: '=' :  cannot convert from 'const float' to 'global int'
+ERROR: 0:138: ''' : character literals not supported 
+ERROR: 0:138: ''' : character literals not supported 
+ERROR: 0:141: '#define' : names beginning with "GL_" can't be (un)defined: GL_
+ERROR: 0:142: '#define' : names beginning with "GL_" can't be (un)defined: GL_Macro
+WARNING: 0:143: '#define' : names containing consecutive underscores are reserved: __M
+WARNING: 0:144: '#define' : names containing consecutive underscores are reserved: M__
+WARNING: 0:145: '#define' : names containing consecutive underscores are reserved: ABC__DE
+ERROR: 0:148: '#else' : unexpected tokens following directive 
+ERROR: 0:149: '#elif' : #elif after #else 
+ERROR: 0:155: '#else' : unexpected tokens following directive 
+ERROR: 0:158: '#else' : #else after #else 
+ERROR: 0:160: '#endif' : unexpected tokens following directive 
+ERROR: 0:164: '#define' : duplicate macro parameter 
+ERROR: 0:173: '#define' : Macro redefined; different number of arguments: m4
+ERROR: 0:178: '#define' : Macro redefined; different number of arguments: m5
+ERROR: 0:182: '#define' : Macro redefined; different number of arguments: m6
+ERROR: 0:185: '#define' : Macro redefined; different substitutions: m7
+ERROR: 0:192: '#define' : Macro redefined; different substitutions: m8
+ERROR: 0:196: '#define' : Macro redefined; different argument names: m9
+WARNING: 0:204: '#undef' : names containing consecutive underscores are reserved: __VERSION__
+ERROR: 0:205: '#undef' : names beginning with "GL_" can't be (un)defined: GL_ARB_texture_rectangle
+ERROR: 0:210: '#' : invalid directive 
+ERROR: 0:211: '#' : invalid directive 
+ERROR: 0:212: '#' : invalid directive 
+ERROR: 0:213: '#' : invalid directive 
+ERROR: 0:214: '#' : invalid directive 
+ERROR: 0:215: '#' : invalid directive 
+ERROR: 0:224: '#pragma' : optimize pragma syntax is incorrect 
+ERROR: 0:225: '#pragma' : optimize pragma syntax is incorrect 
+ERROR: 0:226: '#pragma' : debug pragma syntax is incorrect 
+ERROR: 0:227: '#pragma' : debug pragma syntax is incorrect 
+ERROR: 0:229: '#pragma' : optimize pragma syntax is incorrect 
+ERROR: 0:230: '#pragma' : debug pragma syntax is incorrect 
+ERROR: 0:233: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:235: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:236: '#error' : good continuation  
+ERROR: 0:238: '#' : invalid directive: flizbit
+ERROR: 0:242: '#' : invalid directive: directive
+ERROR: 0:12000: '#error' : line should be 12000  
+ERROR: 7:13000: '#error' : line should be 13000 , string 7  
+ERROR: 7:14013: '#error' : line should be 14013 , string 7  
+ERROR: 12:14013: '#error' : line should be 14013 , string 12  
+ERROR: 12:14025: '#error' : line should be 14025 , string 12  
+ERROR: 12:1233: '#line' : unexpected tokens following directive 
+ERROR: 12:1236: '#line' : unexpected tokens following directive 
+ERROR: 12:20000: '#error' : line should be 20000  
+ERROR: 12:20010: '#error' : line should be 20010  
+ERROR: 12:20020: '#error' : line should be 20020  
+ERROR: 12:20045: '#define' : Macro redefined; different substitutions: SPACE_IN_MIDDLE
+ERROR: 12:20051: '#error' : good evaluation 1  
+ERROR: 12:20055: '#error' : good evaluation 2  
+ERROR: 12:9000: 'preprocessor evaluation' : expected ')' 
+ERROR: 12:9002: '#if' : unexpected tokens following directive 
+ERROR: 12:9014: 'macro expansion' : expected '(' following FOOOM
+ERROR: 12:9014: 'FOOOM' : undeclared identifier 
+ERROR: 12:9014: '=' :  cannot convert from 'temp float' to 'global int'
+ERROR: 12:9015: 'macro expansion' : expected '(' following FOOOM
+ERROR: 12:9016: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 12:9016: 'preprocessor evaluation' : bad expression 
+ERROR: 12:9500: 'preprocessor evaluation' : bad expression 
+ERROR: 12:9500: '#if' : unexpected tokens following directive 
+ERROR: 12:9502: 'preprocessor evaluation' : bad expression 
+ERROR: 12:9502: '#if' : unexpected tokens following directive 
+ERROR: 12:9504: 'preprocessor evaluation' : bad expression 
+ERROR: 12:9504: '#if' : unexpected tokens following directive 
+ERROR: 12:9506: '#error' : \ 377  
+ERROR: 12:9507: '#error' : \ 376  
+ERROR: 12:9508: '#error' : \ 377  
+ERROR: 12:10002: '' : missing #endif 
+ERROR: 88 compilation errors.  No code generated.
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'sum' (global float)
+0:5      Constant:
+0:5        0.000000
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:12    Sequence
+0:12      add second child into first child (temp float)
+0:12        'sum' (global float)
+0:12        Constant:
+0:12          1.000000
+0:22      add second child into first child (temp float)
+0:22        'sum' (global float)
+0:22        Constant:
+0:22          300.000000
+0:37      add second child into first child (temp float)
+0:37        'sum' (global float)
+0:37        Constant:
+0:37          600000.000000
+0:48      add second child into first child (temp float)
+0:48        'sum' (global float)
+0:48        Constant:
+0:48          7000000.000000
+0:53      add second child into first child (temp float)
+0:53        'sum' (global float)
+0:53        Constant:
+0:53          80000000.000000
+0:58      add second child into first child (temp float)
+0:58        'sum' (global float)
+0:58        Constant:
+0:58          900000000.000000
+0:65      add second child into first child (temp float)
+0:65        'sum' (global float)
+0:65        Constant:
+0:65          0.050000
+0:69      move second child to first child (temp 4-component vector of float)
+0:69        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:69          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:69          Constant:
+0:69            0 (const uint)
+0:69        Construct vec4 (temp 4-component vector of float)
+0:69          'sum' (global float)
+0:124  Sequence
+0:124    move second child to first child (temp int)
+0:124      'linenumber' (global int)
+0:124      Constant:
+0:124        124 (const int)
+0:125  Sequence
+0:125    move second child to first child (temp int)
+0:125      'filenumber' (global int)
+0:125      Constant:
+0:125        0 (const int)
+0:126  Sequence
+0:126    move second child to first child (temp int)
+0:126      'version' (global int)
+0:126      Constant:
+0:126        400 (const int)
+0:130  Sequence
+0:130    move second child to first child (temp float)
+0:130      'twoPi' (global float)
+0:130      Constant:
+0:130        6.280000
+0:199  Sequence
+0:199    move second child to first child (temp int)
+0:199      'n' (global int)
+0:199      Constant:
+0:199        15 (const int)
+0:202  Sequence
+0:202    move second child to first child (temp double)
+0:202      'f' (global double)
+0:202      Constant:
+0:202        0.000800
+12:20031  Function Definition: foo234( (global void)
+12:20031    Function Parameters: 
+12:20033    Sequence
+12:20033      move second child to first child (temp 4-component vector of float)
+12:20033        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+12:20033          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+12:20033          Constant:
+12:20033            0 (const uint)
+12:20033        Constant:
+12:20033          6.000000
+12:20033          6.000000
+12:20033          6.000000
+12:20033          6.000000
+12:9011  Sequence
+12:9011    move second child to first child (temp int)
+12:9011      'R1' (global int)
+12:9011      'RECURSE' (global int)
+0:?   Linker Objects
+0:?     'sum' (global float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'linenumber' (global int)
+0:?     'filenumber' (global int)
+0:?     'version' (global int)
+0:?     'twoPi' (global float)
+0:?     'a' (global int)
+0:?     'n' (global int)
+0:?     'f' (global double)
+0:?     'RECURSE' (global int)
+0:?     'R1' (global int)
+0:?     'aoeua' (global int)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'sum' (global float)
+0:5      Constant:
+0:5        0.000000
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:12    Sequence
+0:12      add second child into first child (temp float)
+0:12        'sum' (global float)
+0:12        Constant:
+0:12          1.000000
+0:22      add second child into first child (temp float)
+0:22        'sum' (global float)
+0:22        Constant:
+0:22          300.000000
+0:37      add second child into first child (temp float)
+0:37        'sum' (global float)
+0:37        Constant:
+0:37          600000.000000
+0:48      add second child into first child (temp float)
+0:48        'sum' (global float)
+0:48        Constant:
+0:48          7000000.000000
+0:53      add second child into first child (temp float)
+0:53        'sum' (global float)
+0:53        Constant:
+0:53          80000000.000000
+0:58      add second child into first child (temp float)
+0:58        'sum' (global float)
+0:58        Constant:
+0:58          900000000.000000
+0:65      add second child into first child (temp float)
+0:65        'sum' (global float)
+0:65        Constant:
+0:65          0.050000
+0:69      move second child to first child (temp 4-component vector of float)
+0:69        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:69          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:69          Constant:
+0:69            0 (const uint)
+0:69        Construct vec4 (temp 4-component vector of float)
+0:69          'sum' (global float)
+0:124  Sequence
+0:124    move second child to first child (temp int)
+0:124      'linenumber' (global int)
+0:124      Constant:
+0:124        124 (const int)
+0:125  Sequence
+0:125    move second child to first child (temp int)
+0:125      'filenumber' (global int)
+0:125      Constant:
+0:125        0 (const int)
+0:126  Sequence
+0:126    move second child to first child (temp int)
+0:126      'version' (global int)
+0:126      Constant:
+0:126        400 (const int)
+0:130  Sequence
+0:130    move second child to first child (temp float)
+0:130      'twoPi' (global float)
+0:130      Constant:
+0:130        6.280000
+0:199  Sequence
+0:199    move second child to first child (temp int)
+0:199      'n' (global int)
+0:199      Constant:
+0:199        15 (const int)
+0:202  Sequence
+0:202    move second child to first child (temp double)
+0:202      'f' (global double)
+0:202      Constant:
+0:202        0.000800
+12:20031  Function Definition: foo234( (global void)
+12:20031    Function Parameters: 
+12:20033    Sequence
+12:20033      move second child to first child (temp 4-component vector of float)
+12:20033        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+12:20033          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+12:20033          Constant:
+12:20033            0 (const uint)
+12:20033        Constant:
+12:20033          6.000000
+12:20033          6.000000
+12:20033          6.000000
+12:20033          6.000000
+12:9011  Sequence
+12:9011    move second child to first child (temp int)
+12:9011      'R1' (global int)
+12:9011      'RECURSE' (global int)
+0:?   Linker Objects
+0:?     'sum' (global float)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'linenumber' (global int)
+0:?     'filenumber' (global int)
+0:?     'version' (global int)
+0:?     'twoPi' (global float)
+0:?     'a' (global int)
+0:?     'n' (global int)
+0:?     'f' (global double)
+0:?     'RECURSE' (global int)
+0:?     'R1' (global int)
+0:?     'aoeua' (global int)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/dataOut.frag.out b/Test/baseResults/dataOut.frag.out
index 669a13d..030bae7 100644
--- a/Test/baseResults/dataOut.frag.out
+++ b/Test/baseResults/dataOut.frag.out
@@ -1,35 +1,35 @@
-dataOut.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:5  Function Definition: main( (global void)

-0:5    Function Parameters: 

-0:7    Sequence

-0:7      move second child to first child (temp 4-component vector of float)

-0:7        direct index (temp 4-component vector of float FragData)

-0:7          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:7          Constant:

-0:7            1 (const int)

-0:7        'Color' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'Color' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:5  Function Definition: main( (global void)

-0:5    Function Parameters: 

-0:7    Sequence

-0:7      move second child to first child (temp 4-component vector of float)

-0:7        direct index (temp 4-component vector of float FragData)

-0:7          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:7          Constant:

-0:7            1 (const int)

-0:7        'Color' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'Color' (smooth in 4-component vector of float)

-

+dataOut.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:7    Sequence
+0:7      move second child to first child (temp 4-component vector of float)
+0:7        direct index (temp 4-component vector of float FragData)
+0:7          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:7          Constant:
+0:7            1 (const int)
+0:7        'Color' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'Color' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:7    Sequence
+0:7      move second child to first child (temp 4-component vector of float)
+0:7        direct index (temp 4-component vector of float FragData)
+0:7          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:7          Constant:
+0:7            1 (const int)
+0:7        'Color' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'Color' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/dataOutIndirect.frag.out b/Test/baseResults/dataOutIndirect.frag.out
index 41c9221..31b4f07 100644
--- a/Test/baseResults/dataOutIndirect.frag.out
+++ b/Test/baseResults/dataOutIndirect.frag.out
@@ -1,35 +1,35 @@
-dataOutIndirect.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      move second child to first child (temp 4-component vector of float)

-0:9        indirect index (temp 4-component vector of float FragData)

-0:9          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:9          'i' (uniform int)

-0:9        'Color' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'Color' (smooth in 4-component vector of float)

-0:?     'i' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      move second child to first child (temp 4-component vector of float)

-0:9        indirect index (temp 4-component vector of float FragData)

-0:9          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)

-0:9          'i' (uniform int)

-0:9        'Color' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'Color' (smooth in 4-component vector of float)

-0:?     'i' (uniform int)

-

+dataOutIndirect.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      move second child to first child (temp 4-component vector of float)
+0:9        indirect index (temp 4-component vector of float FragData)
+0:9          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:9          'i' (uniform int)
+0:9        'Color' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'Color' (smooth in 4-component vector of float)
+0:?     'i' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      move second child to first child (temp 4-component vector of float)
+0:9        indirect index (temp 4-component vector of float FragData)
+0:9          'gl_FragData' (fragColor 32-element array of 4-component vector of float FragData)
+0:9          'i' (uniform int)
+0:9        'Color' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'Color' (smooth in 4-component vector of float)
+0:?     'i' (uniform int)
+
diff --git a/Test/baseResults/dce.frag.out b/Test/baseResults/dce.frag.out
index 6ae66f9..a19fe4e 100644
--- a/Test/baseResults/dce.frag.out
+++ b/Test/baseResults/dce.frag.out
@@ -1,276 +1,276 @@
-dce.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 400

-0:? Sequence

-0:5  Sequence

-0:5    move second child to first child (temp int)

-0:5      'c' (global int)

-0:5      Constant:

-0:5        0 (const int)

-0:7  Function Definition: bar( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Test condition and select (temp void)

-0:9        Condition

-0:9        Constant:

-0:9          false (const bool)

-0:9        true case

-0:10        Pre-Increment (temp int)

-0:10          'c' (global int)

-0:9        false case

-0:12        Pre-Increment (temp int)

-0:12          'c' (global int)

-0:14      Test condition and select (temp int)

-0:14        Condition

-0:14        Constant:

-0:14          false (const bool)

-0:14        true case

-0:14        Pre-Increment (temp int)

-0:14          'c' (global int)

-0:14        false case

-0:14        Pre-Increment (temp int)

-0:14          'c' (global int)

-0:16      switch

-0:16      condition

-0:16        'c' (global int)

-0:16      body

-0:16        Sequence

-0:17          case:  with expression

-0:17            Constant:

-0:17              1 (const int)

-0:?           Sequence

-0:18            Pre-Increment (temp int)

-0:18              'c' (global int)

-0:19            Branch: Break

-0:20            Pre-Increment (temp int)

-0:20              'c' (global int)

-0:21          case:  with expression

-0:21            Constant:

-0:21              2 (const int)

-0:?           Sequence

-0:22            Branch: Break

-0:23            Pre-Increment (temp int)

-0:23              'c' (global int)

-0:24          default: 

-0:?           Sequence

-0:25            Branch: Break

-0:28      Sequence

-0:28        Sequence

-0:28          move second child to first child (temp int)

-0:28            'i' (temp int)

-0:28            Constant:

-0:28              0 (const int)

-0:28        Loop with condition tested first

-0:28          Loop Condition

-0:28          Compare Less Than (temp bool)

-0:28            'i' (temp int)

-0:28            Constant:

-0:28              0 (const int)

-0:28          Loop Body

-0:29          Pre-Increment (temp int)

-0:29            'c' (global int)

-0:28          Loop Terminal Expression

-0:28          Pre-Increment (temp int)

-0:28            'i' (temp int)

-0:31      Sequence

-0:31        Sequence

-0:31          move second child to first child (temp int)

-0:31            'i' (temp int)

-0:31            Constant:

-0:31              0 (const int)

-0:31        Loop with condition tested first

-0:31          Loop Condition

-0:31          Compare Less Than (temp bool)

-0:31            'i' (temp int)

-0:31            Constant:

-0:31              10 (const int)

-0:31          Loop Body

-0:32          Sequence

-0:32            Test condition and select (temp void)

-0:32              Condition

-0:32              Compare Less Than (temp bool)

-0:32                'c' (global int)

-0:32                Constant:

-0:32                  3 (const int)

-0:32              true case

-0:33              Sequence

-0:33                Branch: Break

-0:34                Pre-Increment (temp int)

-0:34                  'c' (global int)

-0:32              false case

-0:36              Sequence

-0:36                Branch: Continue

-0:37                Pre-Increment (temp int)

-0:37                  'c' (global int)

-0:31          Loop Terminal Expression

-0:31          Pre-Increment (temp int)

-0:31            'i' (temp int)

-0:41      Branch: Return

-0:43      Pre-Increment (temp int)

-0:43        'c' (global int)

-0:46  Function Definition: foo( (global int)

-0:46    Function Parameters: 

-0:48    Sequence

-0:48      Test condition and select (temp void)

-0:48        Condition

-0:48        Compare Greater Than (temp bool)

-0:48          'c' (global int)

-0:48          Constant:

-0:48            4 (const int)

-0:48        true case

-0:49        Sequence

-0:49          Branch: Return with expression

-0:49            Constant:

-0:49              4 (const int)

-0:50          Pre-Increment (temp int)

-0:50            'c' (global int)

-0:53      Branch: Return with expression

-0:53        Constant:

-0:53          5 (const int)

-0:55      Pre-Increment (temp int)

-0:55        'c' (global int)

-0:?   Linker Objects

-0:?     'flag' (const bool)

-0:?       false (const bool)

-0:?     'c' (global int)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point

-

-Shader version: 400

-0:? Sequence

-0:5  Sequence

-0:5    move second child to first child (temp int)

-0:5      'c' (global int)

-0:5      Constant:

-0:5        0 (const int)

-0:7  Function Definition: bar( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Test condition and select (temp void)

-0:9        Condition

-0:9        Constant:

-0:9          false (const bool)

-0:9        true case

-0:10        Pre-Increment (temp int)

-0:10          'c' (global int)

-0:9        false case

-0:12        Pre-Increment (temp int)

-0:12          'c' (global int)

-0:14      Test condition and select (temp int)

-0:14        Condition

-0:14        Constant:

-0:14          false (const bool)

-0:14        true case

-0:14        Pre-Increment (temp int)

-0:14          'c' (global int)

-0:14        false case

-0:14        Pre-Increment (temp int)

-0:14          'c' (global int)

-0:16      switch

-0:16      condition

-0:16        'c' (global int)

-0:16      body

-0:16        Sequence

-0:17          case:  with expression

-0:17            Constant:

-0:17              1 (const int)

-0:?           Sequence

-0:18            Pre-Increment (temp int)

-0:18              'c' (global int)

-0:19            Branch: Break

-0:20            Pre-Increment (temp int)

-0:20              'c' (global int)

-0:21          case:  with expression

-0:21            Constant:

-0:21              2 (const int)

-0:?           Sequence

-0:22            Branch: Break

-0:23            Pre-Increment (temp int)

-0:23              'c' (global int)

-0:24          default: 

-0:?           Sequence

-0:25            Branch: Break

-0:28      Sequence

-0:28        Sequence

-0:28          move second child to first child (temp int)

-0:28            'i' (temp int)

-0:28            Constant:

-0:28              0 (const int)

-0:28        Loop with condition tested first

-0:28          Loop Condition

-0:28          Compare Less Than (temp bool)

-0:28            'i' (temp int)

-0:28            Constant:

-0:28              0 (const int)

-0:28          Loop Body

-0:29          Pre-Increment (temp int)

-0:29            'c' (global int)

-0:28          Loop Terminal Expression

-0:28          Pre-Increment (temp int)

-0:28            'i' (temp int)

-0:31      Sequence

-0:31        Sequence

-0:31          move second child to first child (temp int)

-0:31            'i' (temp int)

-0:31            Constant:

-0:31              0 (const int)

-0:31        Loop with condition tested first

-0:31          Loop Condition

-0:31          Compare Less Than (temp bool)

-0:31            'i' (temp int)

-0:31            Constant:

-0:31              10 (const int)

-0:31          Loop Body

-0:32          Sequence

-0:32            Test condition and select (temp void)

-0:32              Condition

-0:32              Compare Less Than (temp bool)

-0:32                'c' (global int)

-0:32                Constant:

-0:32                  3 (const int)

-0:32              true case

-0:33              Sequence

-0:33                Branch: Break

-0:34                Pre-Increment (temp int)

-0:34                  'c' (global int)

-0:32              false case

-0:36              Sequence

-0:36                Branch: Continue

-0:37                Pre-Increment (temp int)

-0:37                  'c' (global int)

-0:31          Loop Terminal Expression

-0:31          Pre-Increment (temp int)

-0:31            'i' (temp int)

-0:41      Branch: Return

-0:43      Pre-Increment (temp int)

-0:43        'c' (global int)

-0:46  Function Definition: foo( (global int)

-0:46    Function Parameters: 

-0:48    Sequence

-0:48      Test condition and select (temp void)

-0:48        Condition

-0:48        Compare Greater Than (temp bool)

-0:48          'c' (global int)

-0:48          Constant:

-0:48            4 (const int)

-0:48        true case

-0:49        Sequence

-0:49          Branch: Return with expression

-0:49            Constant:

-0:49              4 (const int)

-0:50          Pre-Increment (temp int)

-0:50            'c' (global int)

-0:53      Branch: Return with expression

-0:53        Constant:

-0:53          5 (const int)

-0:55      Pre-Increment (temp int)

-0:55        'c' (global int)

-0:?   Linker Objects

-0:?     'flag' (const bool)

-0:?       false (const bool)

-0:?     'c' (global int)

-

+dce.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 400
+0:? Sequence
+0:5  Sequence
+0:5    move second child to first child (temp int)
+0:5      'c' (global int)
+0:5      Constant:
+0:5        0 (const int)
+0:7  Function Definition: bar( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Test condition and select (temp void)
+0:9        Condition
+0:9        Constant:
+0:9          false (const bool)
+0:9        true case
+0:10        Pre-Increment (temp int)
+0:10          'c' (global int)
+0:9        false case
+0:12        Pre-Increment (temp int)
+0:12          'c' (global int)
+0:14      Test condition and select (temp int)
+0:14        Condition
+0:14        Constant:
+0:14          false (const bool)
+0:14        true case
+0:14        Pre-Increment (temp int)
+0:14          'c' (global int)
+0:14        false case
+0:14        Pre-Increment (temp int)
+0:14          'c' (global int)
+0:16      switch
+0:16      condition
+0:16        'c' (global int)
+0:16      body
+0:16        Sequence
+0:17          case:  with expression
+0:17            Constant:
+0:17              1 (const int)
+0:?           Sequence
+0:18            Pre-Increment (temp int)
+0:18              'c' (global int)
+0:19            Branch: Break
+0:20            Pre-Increment (temp int)
+0:20              'c' (global int)
+0:21          case:  with expression
+0:21            Constant:
+0:21              2 (const int)
+0:?           Sequence
+0:22            Branch: Break
+0:23            Pre-Increment (temp int)
+0:23              'c' (global int)
+0:24          default: 
+0:?           Sequence
+0:25            Branch: Break
+0:28      Sequence
+0:28        Sequence
+0:28          move second child to first child (temp int)
+0:28            'i' (temp int)
+0:28            Constant:
+0:28              0 (const int)
+0:28        Loop with condition tested first
+0:28          Loop Condition
+0:28          Compare Less Than (temp bool)
+0:28            'i' (temp int)
+0:28            Constant:
+0:28              0 (const int)
+0:28          Loop Body
+0:29          Pre-Increment (temp int)
+0:29            'c' (global int)
+0:28          Loop Terminal Expression
+0:28          Pre-Increment (temp int)
+0:28            'i' (temp int)
+0:31      Sequence
+0:31        Sequence
+0:31          move second child to first child (temp int)
+0:31            'i' (temp int)
+0:31            Constant:
+0:31              0 (const int)
+0:31        Loop with condition tested first
+0:31          Loop Condition
+0:31          Compare Less Than (temp bool)
+0:31            'i' (temp int)
+0:31            Constant:
+0:31              10 (const int)
+0:31          Loop Body
+0:32          Sequence
+0:32            Test condition and select (temp void)
+0:32              Condition
+0:32              Compare Less Than (temp bool)
+0:32                'c' (global int)
+0:32                Constant:
+0:32                  3 (const int)
+0:32              true case
+0:33              Sequence
+0:33                Branch: Break
+0:34                Pre-Increment (temp int)
+0:34                  'c' (global int)
+0:32              false case
+0:36              Sequence
+0:36                Branch: Continue
+0:37                Pre-Increment (temp int)
+0:37                  'c' (global int)
+0:31          Loop Terminal Expression
+0:31          Pre-Increment (temp int)
+0:31            'i' (temp int)
+0:41      Branch: Return
+0:43      Pre-Increment (temp int)
+0:43        'c' (global int)
+0:46  Function Definition: foo( (global int)
+0:46    Function Parameters: 
+0:48    Sequence
+0:48      Test condition and select (temp void)
+0:48        Condition
+0:48        Compare Greater Than (temp bool)
+0:48          'c' (global int)
+0:48          Constant:
+0:48            4 (const int)
+0:48        true case
+0:49        Sequence
+0:49          Branch: Return with expression
+0:49            Constant:
+0:49              4 (const int)
+0:50          Pre-Increment (temp int)
+0:50            'c' (global int)
+0:53      Branch: Return with expression
+0:53        Constant:
+0:53          5 (const int)
+0:55      Pre-Increment (temp int)
+0:55        'c' (global int)
+0:?   Linker Objects
+0:?     'flag' (const bool)
+0:?       false (const bool)
+0:?     'c' (global int)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 400
+0:? Sequence
+0:5  Sequence
+0:5    move second child to first child (temp int)
+0:5      'c' (global int)
+0:5      Constant:
+0:5        0 (const int)
+0:7  Function Definition: bar( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Test condition and select (temp void)
+0:9        Condition
+0:9        Constant:
+0:9          false (const bool)
+0:9        true case
+0:10        Pre-Increment (temp int)
+0:10          'c' (global int)
+0:9        false case
+0:12        Pre-Increment (temp int)
+0:12          'c' (global int)
+0:14      Test condition and select (temp int)
+0:14        Condition
+0:14        Constant:
+0:14          false (const bool)
+0:14        true case
+0:14        Pre-Increment (temp int)
+0:14          'c' (global int)
+0:14        false case
+0:14        Pre-Increment (temp int)
+0:14          'c' (global int)
+0:16      switch
+0:16      condition
+0:16        'c' (global int)
+0:16      body
+0:16        Sequence
+0:17          case:  with expression
+0:17            Constant:
+0:17              1 (const int)
+0:?           Sequence
+0:18            Pre-Increment (temp int)
+0:18              'c' (global int)
+0:19            Branch: Break
+0:20            Pre-Increment (temp int)
+0:20              'c' (global int)
+0:21          case:  with expression
+0:21            Constant:
+0:21              2 (const int)
+0:?           Sequence
+0:22            Branch: Break
+0:23            Pre-Increment (temp int)
+0:23              'c' (global int)
+0:24          default: 
+0:?           Sequence
+0:25            Branch: Break
+0:28      Sequence
+0:28        Sequence
+0:28          move second child to first child (temp int)
+0:28            'i' (temp int)
+0:28            Constant:
+0:28              0 (const int)
+0:28        Loop with condition tested first
+0:28          Loop Condition
+0:28          Compare Less Than (temp bool)
+0:28            'i' (temp int)
+0:28            Constant:
+0:28              0 (const int)
+0:28          Loop Body
+0:29          Pre-Increment (temp int)
+0:29            'c' (global int)
+0:28          Loop Terminal Expression
+0:28          Pre-Increment (temp int)
+0:28            'i' (temp int)
+0:31      Sequence
+0:31        Sequence
+0:31          move second child to first child (temp int)
+0:31            'i' (temp int)
+0:31            Constant:
+0:31              0 (const int)
+0:31        Loop with condition tested first
+0:31          Loop Condition
+0:31          Compare Less Than (temp bool)
+0:31            'i' (temp int)
+0:31            Constant:
+0:31              10 (const int)
+0:31          Loop Body
+0:32          Sequence
+0:32            Test condition and select (temp void)
+0:32              Condition
+0:32              Compare Less Than (temp bool)
+0:32                'c' (global int)
+0:32                Constant:
+0:32                  3 (const int)
+0:32              true case
+0:33              Sequence
+0:33                Branch: Break
+0:34                Pre-Increment (temp int)
+0:34                  'c' (global int)
+0:32              false case
+0:36              Sequence
+0:36                Branch: Continue
+0:37                Pre-Increment (temp int)
+0:37                  'c' (global int)
+0:31          Loop Terminal Expression
+0:31          Pre-Increment (temp int)
+0:31            'i' (temp int)
+0:41      Branch: Return
+0:43      Pre-Increment (temp int)
+0:43        'c' (global int)
+0:46  Function Definition: foo( (global int)
+0:46    Function Parameters: 
+0:48    Sequence
+0:48      Test condition and select (temp void)
+0:48        Condition
+0:48        Compare Greater Than (temp bool)
+0:48          'c' (global int)
+0:48          Constant:
+0:48            4 (const int)
+0:48        true case
+0:49        Sequence
+0:49          Branch: Return with expression
+0:49            Constant:
+0:49              4 (const int)
+0:50          Pre-Increment (temp int)
+0:50            'c' (global int)
+0:53      Branch: Return with expression
+0:53        Constant:
+0:53          5 (const int)
+0:55      Pre-Increment (temp int)
+0:55        'c' (global int)
+0:?   Linker Objects
+0:?     'flag' (const bool)
+0:?       false (const bool)
+0:?     'c' (global int)
+
diff --git a/Test/baseResults/decls.frag.out b/Test/baseResults/decls.frag.out
index f2d9b64..a7e2137 100644
--- a/Test/baseResults/decls.frag.out
+++ b/Test/baseResults/decls.frag.out
@@ -1,515 +1,515 @@
-decls.frag

-ERROR: 0:19: 'vi4' : illegal use of type 'void' 

-ERROR: 0:20: 'vj' : illegal use of type 'void' 

-ERROR: 0:20: 'vk5' : illegal use of type 'void' 

-ERROR: 0:21: 'vm2' : illegal use of type 'void' 

-ERROR: 0:21: 'vm3' : illegal use of type 'void' 

-ERROR: 0:22: 'vn8' : illegal use of type 'void' 

-ERROR: 0:22: 'vp' : illegal use of type 'void' 

-ERROR: 0:25: 'cij' : variables with qualifier 'const' must be initialized 

-ERROR: 0:27: 'cip' : variables with qualifier 'const' must be initialized 

-ERROR: 0:34: 'gl_vi4' : identifiers starting with "gl_" are reserved 

-ERROR: 0:35: 'gl_vj' : identifiers starting with "gl_" are reserved 

-ERROR: 0:35: 'gl_vk5' : identifiers starting with "gl_" are reserved 

-ERROR: 0:36: 'gl_vm2' : identifiers starting with "gl_" are reserved 

-ERROR: 0:36: 'gl_vm3' : identifiers starting with "gl_" are reserved 

-ERROR: 0:37: 'gl_vn8' : identifiers starting with "gl_" are reserved 

-ERROR: 0:37: 'gl_vp' : identifiers starting with "gl_" are reserved 

-ERROR: 0:42: '' : boolean expression expected 

-ERROR: 0:43: 'gl_cond' : identifiers starting with "gl_" are reserved 

-WARNING: 0:46: 'foob__vi4' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:47: 'foob__vj' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:47: 'foob__vk5' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:48: '__foobvm2' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:48: '__foobvm3' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:49: 'foob__vn8' : identifiers containing consecutive underscores ("__") are reserved 

-WARNING: 0:49: 'foob__vp' : identifiers containing consecutive underscores ("__") are reserved 

-ERROR: 18 compilation errors.  No code generated.

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp int)

-0:5      'd1' (global int)

-0:5      Constant:

-0:5        1 (const int)

-0:6  Sequence

-0:6    move second child to first child (temp int)

-0:6      'e2' (global int)

-0:6      Constant:

-0:6        2 (const int)

-0:7  Sequence

-0:7    move second child to first child (temp int)

-0:7      'h3' (global int)

-0:7      Constant:

-0:7        3 (const int)

-0:14  Sequence

-0:14    move second child to first child (temp 4-element array of int)

-0:14      'ii4' (global 4-element array of int)

-0:14      Constant:

-0:14        1 (const int)

-0:14        2 (const int)

-0:14        3 (const int)

-0:14        4 (const int)

-0:15  Sequence

-0:15    move second child to first child (temp 5-element array of int)

-0:15      'ik5' (global 5-element array of int)

-0:15      Constant:

-0:15        5 (const int)

-0:15        6 (const int)

-0:15        7 (const int)

-0:15        8 (const int)

-0:15        9 (const int)

-0:16  Sequence

-0:16    move second child to first child (temp 2-element array of int)

-0:16      'im2' (global 2-element array of int)

-0:16      Constant:

-0:16        10 (const int)

-0:16        11 (const int)

-0:16    move second child to first child (temp 3-element array of int)

-0:16      'im3' (global 3-element array of int)

-0:16      Constant:

-0:16        12 (const int)

-0:16        13 (const int)

-0:16        14 (const int)

-0:17  Sequence

-0:17    move second child to first child (temp 4-element array of int)

-0:17      'in8' (global 4-element array of int)

-0:17      Constant:

-0:17        21 (const int)

-0:17        22 (const int)

-0:17        23 (const int)

-0:17        24 (const int)

-0:34  Sequence

-0:34    move second child to first child (temp 4-element array of int)

-0:34      'gl_vi4' (global 4-element array of int)

-0:34      Constant:

-0:34        1 (const int)

-0:34        2 (const int)

-0:34        3 (const int)

-0:34        4 (const int)

-0:35  Sequence

-0:35    move second child to first child (temp 5-element array of int)

-0:35      'gl_vk5' (global 5-element array of int)

-0:35      Constant:

-0:35        5 (const int)

-0:35        6 (const int)

-0:35        7 (const int)

-0:35        8 (const int)

-0:35        9 (const int)

-0:36  Sequence

-0:36    move second child to first child (temp 2-element array of int)

-0:36      'gl_vm2' (global 2-element array of int)

-0:36      Constant:

-0:36        10 (const int)

-0:36        11 (const int)

-0:36    move second child to first child (temp 3-element array of int)

-0:36      'gl_vm3' (global 3-element array of int)

-0:36      Constant:

-0:36        12 (const int)

-0:36        13 (const int)

-0:36        14 (const int)

-0:37  Sequence

-0:37    move second child to first child (temp 4-element array of int)

-0:37      'gl_vn8' (global 4-element array of int)

-0:37      Constant:

-0:37        21 (const int)

-0:37        22 (const int)

-0:37        23 (const int)

-0:37        24 (const int)

-0:39  Function Definition: main( (global void)

-0:39    Function Parameters: 

-0:41    Sequence

-0:41      Loop with condition tested first

-0:41        Loop Condition

-0:41        move second child to first child (temp bool)

-0:41          'cond' (temp bool)

-0:41          Compare Less Than (temp bool)

-0:41            'b' (global int)

-0:41            'c' (global int)

-0:41        No loop body

-0:42      Loop with condition tested first

-0:42        Loop Condition

-0:42        move second child to first child (temp int)

-0:42          'icond' (temp int)

-0:42          'b' (global int)

-0:42        No loop body

-0:43      Loop with condition tested first

-0:43        Loop Condition

-0:43        move second child to first child (temp bool)

-0:43          'gl_cond' (temp bool)

-0:43          Compare Less Than (temp bool)

-0:43            'b' (global int)

-0:43            'c' (global int)

-0:43        No loop body

-0:46  Sequence

-0:46    move second child to first child (temp 4-element array of int)

-0:46      'foob__vi4' (global 4-element array of int)

-0:46      Constant:

-0:46        1 (const int)

-0:46        2 (const int)

-0:46        3 (const int)

-0:46        4 (const int)

-0:47  Sequence

-0:47    move second child to first child (temp 5-element array of int)

-0:47      'foob__vk5' (global 5-element array of int)

-0:47      Constant:

-0:47        5 (const int)

-0:47        6 (const int)

-0:47        7 (const int)

-0:47        8 (const int)

-0:47        9 (const int)

-0:48  Sequence

-0:48    move second child to first child (temp 2-element array of int)

-0:48      '__foobvm2' (global 2-element array of int)

-0:48      Constant:

-0:48        10 (const int)

-0:48        11 (const int)

-0:48    move second child to first child (temp 3-element array of int)

-0:48      '__foobvm3' (global 3-element array of int)

-0:48      Constant:

-0:48        12 (const int)

-0:48        13 (const int)

-0:48        14 (const int)

-0:49  Sequence

-0:49    move second child to first child (temp 4-element array of int)

-0:49      'foob__vn8' (global 4-element array of int)

-0:49      Constant:

-0:49        21 (const int)

-0:49        22 (const int)

-0:49        23 (const int)

-0:49        24 (const int)

-0:?   Linker Objects

-0:?     'a' (global int)

-0:?     'b' (global int)

-0:?     'c' (global int)

-0:?     'd1' (global int)

-0:?     'e2' (global int)

-0:?     'f' (global int)

-0:?     'g' (global int)

-0:?     'h3' (global int)

-0:?     'i4' (global 4-element array of int)

-0:?     'j' (global int)

-0:?     'k5' (global 5-element array of int)

-0:?     'm6' (global 6-element array of int)

-0:?     'm7' (global 7-element array of int)

-0:?     'n8' (global 8-element array of int)

-0:?     'p' (global int)

-0:?     'ii4' (global 4-element array of int)

-0:?     'ij' (global int)

-0:?     'ik5' (global 5-element array of int)

-0:?     'im2' (global 2-element array of int)

-0:?     'im3' (global 3-element array of int)

-0:?     'in8' (global 4-element array of int)

-0:?     'ip' (global int)

-0:?     'cii4' (const 4-element array of int)

-0:?       1 (const int)

-0:?       2 (const int)

-0:?       3 (const int)

-0:?       4 (const int)

-0:?     'cij' (temp int)

-0:?     'cik5' (const 5-element array of int)

-0:?       5 (const int)

-0:?       6 (const int)

-0:?       7 (const int)

-0:?       8 (const int)

-0:?       9 (const int)

-0:?     'cim2' (const 2-element array of int)

-0:?       10 (const int)

-0:?       11 (const int)

-0:?     'cim3' (const 3-element array of int)

-0:?       12 (const int)

-0:?       13 (const int)

-0:?       14 (const int)

-0:?     'cin8' (const 4-element array of int)

-0:?       21 (const int)

-0:?       22 (const int)

-0:?       23 (const int)

-0:?       24 (const int)

-0:?     'cip' (temp int)

-0:?     'uii4' (uniform 4-element array of int)

-0:?       1 (const int)

-0:?       2 (const int)

-0:?       3 (const int)

-0:?       4 (const int)

-0:?     'uij' (uniform int)

-0:?     'uik5' (uniform 5-element array of int)

-0:?       5 (const int)

-0:?       6 (const int)

-0:?       7 (const int)

-0:?       8 (const int)

-0:?       9 (const int)

-0:?     'uim2' (uniform 2-element array of int)

-0:?       10 (const int)

-0:?       11 (const int)

-0:?     'uim3' (uniform 3-element array of int)

-0:?       12 (const int)

-0:?       13 (const int)

-0:?       14 (const int)

-0:?     'uin8' (uniform 4-element array of int)

-0:?       21 (const int)

-0:?       22 (const int)

-0:?       23 (const int)

-0:?       24 (const int)

-0:?     'uip' (uniform int)

-0:?     'gl_vi4' (global 4-element array of int)

-0:?     'gl_vj' (global int)

-0:?     'gl_vk5' (global 5-element array of int)

-0:?     'gl_vm2' (global 2-element array of int)

-0:?     'gl_vm3' (global 3-element array of int)

-0:?     'gl_vn8' (global 4-element array of int)

-0:?     'gl_vp' (global int)

-0:?     'foob__vi4' (global 4-element array of int)

-0:?     'foob__vj' (global int)

-0:?     'foob__vk5' (global 5-element array of int)

-0:?     '__foobvm2' (global 2-element array of int)

-0:?     '__foobvm3' (global 3-element array of int)

-0:?     'foob__vn8' (global 4-element array of int)

-0:?     'foob__vp' (global int)

-

-

-Linked fragment stage:

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp int)

-0:5      'd1' (global int)

-0:5      Constant:

-0:5        1 (const int)

-0:6  Sequence

-0:6    move second child to first child (temp int)

-0:6      'e2' (global int)

-0:6      Constant:

-0:6        2 (const int)

-0:7  Sequence

-0:7    move second child to first child (temp int)

-0:7      'h3' (global int)

-0:7      Constant:

-0:7        3 (const int)

-0:14  Sequence

-0:14    move second child to first child (temp 4-element array of int)

-0:14      'ii4' (global 4-element array of int)

-0:14      Constant:

-0:14        1 (const int)

-0:14        2 (const int)

-0:14        3 (const int)

-0:14        4 (const int)

-0:15  Sequence

-0:15    move second child to first child (temp 5-element array of int)

-0:15      'ik5' (global 5-element array of int)

-0:15      Constant:

-0:15        5 (const int)

-0:15        6 (const int)

-0:15        7 (const int)

-0:15        8 (const int)

-0:15        9 (const int)

-0:16  Sequence

-0:16    move second child to first child (temp 2-element array of int)

-0:16      'im2' (global 2-element array of int)

-0:16      Constant:

-0:16        10 (const int)

-0:16        11 (const int)

-0:16    move second child to first child (temp 3-element array of int)

-0:16      'im3' (global 3-element array of int)

-0:16      Constant:

-0:16        12 (const int)

-0:16        13 (const int)

-0:16        14 (const int)

-0:17  Sequence

-0:17    move second child to first child (temp 4-element array of int)

-0:17      'in8' (global 4-element array of int)

-0:17      Constant:

-0:17        21 (const int)

-0:17        22 (const int)

-0:17        23 (const int)

-0:17        24 (const int)

-0:34  Sequence

-0:34    move second child to first child (temp 4-element array of int)

-0:34      'gl_vi4' (global 4-element array of int)

-0:34      Constant:

-0:34        1 (const int)

-0:34        2 (const int)

-0:34        3 (const int)

-0:34        4 (const int)

-0:35  Sequence

-0:35    move second child to first child (temp 5-element array of int)

-0:35      'gl_vk5' (global 5-element array of int)

-0:35      Constant:

-0:35        5 (const int)

-0:35        6 (const int)

-0:35        7 (const int)

-0:35        8 (const int)

-0:35        9 (const int)

-0:36  Sequence

-0:36    move second child to first child (temp 2-element array of int)

-0:36      'gl_vm2' (global 2-element array of int)

-0:36      Constant:

-0:36        10 (const int)

-0:36        11 (const int)

-0:36    move second child to first child (temp 3-element array of int)

-0:36      'gl_vm3' (global 3-element array of int)

-0:36      Constant:

-0:36        12 (const int)

-0:36        13 (const int)

-0:36        14 (const int)

-0:37  Sequence

-0:37    move second child to first child (temp 4-element array of int)

-0:37      'gl_vn8' (global 4-element array of int)

-0:37      Constant:

-0:37        21 (const int)

-0:37        22 (const int)

-0:37        23 (const int)

-0:37        24 (const int)

-0:39  Function Definition: main( (global void)

-0:39    Function Parameters: 

-0:41    Sequence

-0:41      Loop with condition tested first

-0:41        Loop Condition

-0:41        move second child to first child (temp bool)

-0:41          'cond' (temp bool)

-0:41          Compare Less Than (temp bool)

-0:41            'b' (global int)

-0:41            'c' (global int)

-0:41        No loop body

-0:42      Loop with condition tested first

-0:42        Loop Condition

-0:42        move second child to first child (temp int)

-0:42          'icond' (temp int)

-0:42          'b' (global int)

-0:42        No loop body

-0:43      Loop with condition tested first

-0:43        Loop Condition

-0:43        move second child to first child (temp bool)

-0:43          'gl_cond' (temp bool)

-0:43          Compare Less Than (temp bool)

-0:43            'b' (global int)

-0:43            'c' (global int)

-0:43        No loop body

-0:46  Sequence

-0:46    move second child to first child (temp 4-element array of int)

-0:46      'foob__vi4' (global 4-element array of int)

-0:46      Constant:

-0:46        1 (const int)

-0:46        2 (const int)

-0:46        3 (const int)

-0:46        4 (const int)

-0:47  Sequence

-0:47    move second child to first child (temp 5-element array of int)

-0:47      'foob__vk5' (global 5-element array of int)

-0:47      Constant:

-0:47        5 (const int)

-0:47        6 (const int)

-0:47        7 (const int)

-0:47        8 (const int)

-0:47        9 (const int)

-0:48  Sequence

-0:48    move second child to first child (temp 2-element array of int)

-0:48      '__foobvm2' (global 2-element array of int)

-0:48      Constant:

-0:48        10 (const int)

-0:48        11 (const int)

-0:48    move second child to first child (temp 3-element array of int)

-0:48      '__foobvm3' (global 3-element array of int)

-0:48      Constant:

-0:48        12 (const int)

-0:48        13 (const int)

-0:48        14 (const int)

-0:49  Sequence

-0:49    move second child to first child (temp 4-element array of int)

-0:49      'foob__vn8' (global 4-element array of int)

-0:49      Constant:

-0:49        21 (const int)

-0:49        22 (const int)

-0:49        23 (const int)

-0:49        24 (const int)

-0:?   Linker Objects

-0:?     'a' (global int)

-0:?     'b' (global int)

-0:?     'c' (global int)

-0:?     'd1' (global int)

-0:?     'e2' (global int)

-0:?     'f' (global int)

-0:?     'g' (global int)

-0:?     'h3' (global int)

-0:?     'i4' (global 4-element array of int)

-0:?     'j' (global int)

-0:?     'k5' (global 5-element array of int)

-0:?     'm6' (global 6-element array of int)

-0:?     'm7' (global 7-element array of int)

-0:?     'n8' (global 8-element array of int)

-0:?     'p' (global int)

-0:?     'ii4' (global 4-element array of int)

-0:?     'ij' (global int)

-0:?     'ik5' (global 5-element array of int)

-0:?     'im2' (global 2-element array of int)

-0:?     'im3' (global 3-element array of int)

-0:?     'in8' (global 4-element array of int)

-0:?     'ip' (global int)

-0:?     'cii4' (const 4-element array of int)

-0:?       1 (const int)

-0:?       2 (const int)

-0:?       3 (const int)

-0:?       4 (const int)

-0:?     'cij' (temp int)

-0:?     'cik5' (const 5-element array of int)

-0:?       5 (const int)

-0:?       6 (const int)

-0:?       7 (const int)

-0:?       8 (const int)

-0:?       9 (const int)

-0:?     'cim2' (const 2-element array of int)

-0:?       10 (const int)

-0:?       11 (const int)

-0:?     'cim3' (const 3-element array of int)

-0:?       12 (const int)

-0:?       13 (const int)

-0:?       14 (const int)

-0:?     'cin8' (const 4-element array of int)

-0:?       21 (const int)

-0:?       22 (const int)

-0:?       23 (const int)

-0:?       24 (const int)

-0:?     'cip' (temp int)

-0:?     'uii4' (uniform 4-element array of int)

-0:?       1 (const int)

-0:?       2 (const int)

-0:?       3 (const int)

-0:?       4 (const int)

-0:?     'uij' (uniform int)

-0:?     'uik5' (uniform 5-element array of int)

-0:?       5 (const int)

-0:?       6 (const int)

-0:?       7 (const int)

-0:?       8 (const int)

-0:?       9 (const int)

-0:?     'uim2' (uniform 2-element array of int)

-0:?       10 (const int)

-0:?       11 (const int)

-0:?     'uim3' (uniform 3-element array of int)

-0:?       12 (const int)

-0:?       13 (const int)

-0:?       14 (const int)

-0:?     'uin8' (uniform 4-element array of int)

-0:?       21 (const int)

-0:?       22 (const int)

-0:?       23 (const int)

-0:?       24 (const int)

-0:?     'uip' (uniform int)

-0:?     'gl_vi4' (global 4-element array of int)

-0:?     'gl_vj' (global int)

-0:?     'gl_vk5' (global 5-element array of int)

-0:?     'gl_vm2' (global 2-element array of int)

-0:?     'gl_vm3' (global 3-element array of int)

-0:?     'gl_vn8' (global 4-element array of int)

-0:?     'gl_vp' (global int)

-0:?     'foob__vi4' (global 4-element array of int)

-0:?     'foob__vj' (global int)

-0:?     'foob__vk5' (global 5-element array of int)

-0:?     '__foobvm2' (global 2-element array of int)

-0:?     '__foobvm3' (global 3-element array of int)

-0:?     'foob__vn8' (global 4-element array of int)

-0:?     'foob__vp' (global int)

-

+decls.frag
+ERROR: 0:19: 'vi4' : illegal use of type 'void' 
+ERROR: 0:20: 'vj' : illegal use of type 'void' 
+ERROR: 0:20: 'vk5' : illegal use of type 'void' 
+ERROR: 0:21: 'vm2' : illegal use of type 'void' 
+ERROR: 0:21: 'vm3' : illegal use of type 'void' 
+ERROR: 0:22: 'vn8' : illegal use of type 'void' 
+ERROR: 0:22: 'vp' : illegal use of type 'void' 
+ERROR: 0:25: 'cij' : variables with qualifier 'const' must be initialized 
+ERROR: 0:27: 'cip' : variables with qualifier 'const' must be initialized 
+ERROR: 0:34: 'gl_vi4' : identifiers starting with "gl_" are reserved 
+ERROR: 0:35: 'gl_vj' : identifiers starting with "gl_" are reserved 
+ERROR: 0:35: 'gl_vk5' : identifiers starting with "gl_" are reserved 
+ERROR: 0:36: 'gl_vm2' : identifiers starting with "gl_" are reserved 
+ERROR: 0:36: 'gl_vm3' : identifiers starting with "gl_" are reserved 
+ERROR: 0:37: 'gl_vn8' : identifiers starting with "gl_" are reserved 
+ERROR: 0:37: 'gl_vp' : identifiers starting with "gl_" are reserved 
+ERROR: 0:42: '' : boolean expression expected 
+ERROR: 0:43: 'gl_cond' : identifiers starting with "gl_" are reserved 
+WARNING: 0:46: 'foob__vi4' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:47: 'foob__vj' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:47: 'foob__vk5' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:48: '__foobvm2' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:48: '__foobvm3' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:49: 'foob__vn8' : identifiers containing consecutive underscores ("__") are reserved 
+WARNING: 0:49: 'foob__vp' : identifiers containing consecutive underscores ("__") are reserved 
+ERROR: 18 compilation errors.  No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp int)
+0:5      'd1' (global int)
+0:5      Constant:
+0:5        1 (const int)
+0:6  Sequence
+0:6    move second child to first child (temp int)
+0:6      'e2' (global int)
+0:6      Constant:
+0:6        2 (const int)
+0:7  Sequence
+0:7    move second child to first child (temp int)
+0:7      'h3' (global int)
+0:7      Constant:
+0:7        3 (const int)
+0:14  Sequence
+0:14    move second child to first child (temp 4-element array of int)
+0:14      'ii4' (global 4-element array of int)
+0:14      Constant:
+0:14        1 (const int)
+0:14        2 (const int)
+0:14        3 (const int)
+0:14        4 (const int)
+0:15  Sequence
+0:15    move second child to first child (temp 5-element array of int)
+0:15      'ik5' (global 5-element array of int)
+0:15      Constant:
+0:15        5 (const int)
+0:15        6 (const int)
+0:15        7 (const int)
+0:15        8 (const int)
+0:15        9 (const int)
+0:16  Sequence
+0:16    move second child to first child (temp 2-element array of int)
+0:16      'im2' (global 2-element array of int)
+0:16      Constant:
+0:16        10 (const int)
+0:16        11 (const int)
+0:16    move second child to first child (temp 3-element array of int)
+0:16      'im3' (global 3-element array of int)
+0:16      Constant:
+0:16        12 (const int)
+0:16        13 (const int)
+0:16        14 (const int)
+0:17  Sequence
+0:17    move second child to first child (temp 4-element array of int)
+0:17      'in8' (global 4-element array of int)
+0:17      Constant:
+0:17        21 (const int)
+0:17        22 (const int)
+0:17        23 (const int)
+0:17        24 (const int)
+0:34  Sequence
+0:34    move second child to first child (temp 4-element array of int)
+0:34      'gl_vi4' (global 4-element array of int)
+0:34      Constant:
+0:34        1 (const int)
+0:34        2 (const int)
+0:34        3 (const int)
+0:34        4 (const int)
+0:35  Sequence
+0:35    move second child to first child (temp 5-element array of int)
+0:35      'gl_vk5' (global 5-element array of int)
+0:35      Constant:
+0:35        5 (const int)
+0:35        6 (const int)
+0:35        7 (const int)
+0:35        8 (const int)
+0:35        9 (const int)
+0:36  Sequence
+0:36    move second child to first child (temp 2-element array of int)
+0:36      'gl_vm2' (global 2-element array of int)
+0:36      Constant:
+0:36        10 (const int)
+0:36        11 (const int)
+0:36    move second child to first child (temp 3-element array of int)
+0:36      'gl_vm3' (global 3-element array of int)
+0:36      Constant:
+0:36        12 (const int)
+0:36        13 (const int)
+0:36        14 (const int)
+0:37  Sequence
+0:37    move second child to first child (temp 4-element array of int)
+0:37      'gl_vn8' (global 4-element array of int)
+0:37      Constant:
+0:37        21 (const int)
+0:37        22 (const int)
+0:37        23 (const int)
+0:37        24 (const int)
+0:39  Function Definition: main( (global void)
+0:39    Function Parameters: 
+0:41    Sequence
+0:41      Loop with condition tested first
+0:41        Loop Condition
+0:41        move second child to first child (temp bool)
+0:41          'cond' (temp bool)
+0:41          Compare Less Than (temp bool)
+0:41            'b' (global int)
+0:41            'c' (global int)
+0:41        No loop body
+0:42      Loop with condition tested first
+0:42        Loop Condition
+0:42        move second child to first child (temp int)
+0:42          'icond' (temp int)
+0:42          'b' (global int)
+0:42        No loop body
+0:43      Loop with condition tested first
+0:43        Loop Condition
+0:43        move second child to first child (temp bool)
+0:43          'gl_cond' (temp bool)
+0:43          Compare Less Than (temp bool)
+0:43            'b' (global int)
+0:43            'c' (global int)
+0:43        No loop body
+0:46  Sequence
+0:46    move second child to first child (temp 4-element array of int)
+0:46      'foob__vi4' (global 4-element array of int)
+0:46      Constant:
+0:46        1 (const int)
+0:46        2 (const int)
+0:46        3 (const int)
+0:46        4 (const int)
+0:47  Sequence
+0:47    move second child to first child (temp 5-element array of int)
+0:47      'foob__vk5' (global 5-element array of int)
+0:47      Constant:
+0:47        5 (const int)
+0:47        6 (const int)
+0:47        7 (const int)
+0:47        8 (const int)
+0:47        9 (const int)
+0:48  Sequence
+0:48    move second child to first child (temp 2-element array of int)
+0:48      '__foobvm2' (global 2-element array of int)
+0:48      Constant:
+0:48        10 (const int)
+0:48        11 (const int)
+0:48    move second child to first child (temp 3-element array of int)
+0:48      '__foobvm3' (global 3-element array of int)
+0:48      Constant:
+0:48        12 (const int)
+0:48        13 (const int)
+0:48        14 (const int)
+0:49  Sequence
+0:49    move second child to first child (temp 4-element array of int)
+0:49      'foob__vn8' (global 4-element array of int)
+0:49      Constant:
+0:49        21 (const int)
+0:49        22 (const int)
+0:49        23 (const int)
+0:49        24 (const int)
+0:?   Linker Objects
+0:?     'a' (global int)
+0:?     'b' (global int)
+0:?     'c' (global int)
+0:?     'd1' (global int)
+0:?     'e2' (global int)
+0:?     'f' (global int)
+0:?     'g' (global int)
+0:?     'h3' (global int)
+0:?     'i4' (global 4-element array of int)
+0:?     'j' (global int)
+0:?     'k5' (global 5-element array of int)
+0:?     'm6' (global 6-element array of int)
+0:?     'm7' (global 7-element array of int)
+0:?     'n8' (global 8-element array of int)
+0:?     'p' (global int)
+0:?     'ii4' (global 4-element array of int)
+0:?     'ij' (global int)
+0:?     'ik5' (global 5-element array of int)
+0:?     'im2' (global 2-element array of int)
+0:?     'im3' (global 3-element array of int)
+0:?     'in8' (global 4-element array of int)
+0:?     'ip' (global int)
+0:?     'cii4' (const 4-element array of int)
+0:?       1 (const int)
+0:?       2 (const int)
+0:?       3 (const int)
+0:?       4 (const int)
+0:?     'cij' (temp int)
+0:?     'cik5' (const 5-element array of int)
+0:?       5 (const int)
+0:?       6 (const int)
+0:?       7 (const int)
+0:?       8 (const int)
+0:?       9 (const int)
+0:?     'cim2' (const 2-element array of int)
+0:?       10 (const int)
+0:?       11 (const int)
+0:?     'cim3' (const 3-element array of int)
+0:?       12 (const int)
+0:?       13 (const int)
+0:?       14 (const int)
+0:?     'cin8' (const 4-element array of int)
+0:?       21 (const int)
+0:?       22 (const int)
+0:?       23 (const int)
+0:?       24 (const int)
+0:?     'cip' (temp int)
+0:?     'uii4' (uniform 4-element array of int)
+0:?       1 (const int)
+0:?       2 (const int)
+0:?       3 (const int)
+0:?       4 (const int)
+0:?     'uij' (uniform int)
+0:?     'uik5' (uniform 5-element array of int)
+0:?       5 (const int)
+0:?       6 (const int)
+0:?       7 (const int)
+0:?       8 (const int)
+0:?       9 (const int)
+0:?     'uim2' (uniform 2-element array of int)
+0:?       10 (const int)
+0:?       11 (const int)
+0:?     'uim3' (uniform 3-element array of int)
+0:?       12 (const int)
+0:?       13 (const int)
+0:?       14 (const int)
+0:?     'uin8' (uniform 4-element array of int)
+0:?       21 (const int)
+0:?       22 (const int)
+0:?       23 (const int)
+0:?       24 (const int)
+0:?     'uip' (uniform int)
+0:?     'gl_vi4' (global 4-element array of int)
+0:?     'gl_vj' (global int)
+0:?     'gl_vk5' (global 5-element array of int)
+0:?     'gl_vm2' (global 2-element array of int)
+0:?     'gl_vm3' (global 3-element array of int)
+0:?     'gl_vn8' (global 4-element array of int)
+0:?     'gl_vp' (global int)
+0:?     'foob__vi4' (global 4-element array of int)
+0:?     'foob__vj' (global int)
+0:?     'foob__vk5' (global 5-element array of int)
+0:?     '__foobvm2' (global 2-element array of int)
+0:?     '__foobvm3' (global 3-element array of int)
+0:?     'foob__vn8' (global 4-element array of int)
+0:?     'foob__vp' (global int)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp int)
+0:5      'd1' (global int)
+0:5      Constant:
+0:5        1 (const int)
+0:6  Sequence
+0:6    move second child to first child (temp int)
+0:6      'e2' (global int)
+0:6      Constant:
+0:6        2 (const int)
+0:7  Sequence
+0:7    move second child to first child (temp int)
+0:7      'h3' (global int)
+0:7      Constant:
+0:7        3 (const int)
+0:14  Sequence
+0:14    move second child to first child (temp 4-element array of int)
+0:14      'ii4' (global 4-element array of int)
+0:14      Constant:
+0:14        1 (const int)
+0:14        2 (const int)
+0:14        3 (const int)
+0:14        4 (const int)
+0:15  Sequence
+0:15    move second child to first child (temp 5-element array of int)
+0:15      'ik5' (global 5-element array of int)
+0:15      Constant:
+0:15        5 (const int)
+0:15        6 (const int)
+0:15        7 (const int)
+0:15        8 (const int)
+0:15        9 (const int)
+0:16  Sequence
+0:16    move second child to first child (temp 2-element array of int)
+0:16      'im2' (global 2-element array of int)
+0:16      Constant:
+0:16        10 (const int)
+0:16        11 (const int)
+0:16    move second child to first child (temp 3-element array of int)
+0:16      'im3' (global 3-element array of int)
+0:16      Constant:
+0:16        12 (const int)
+0:16        13 (const int)
+0:16        14 (const int)
+0:17  Sequence
+0:17    move second child to first child (temp 4-element array of int)
+0:17      'in8' (global 4-element array of int)
+0:17      Constant:
+0:17        21 (const int)
+0:17        22 (const int)
+0:17        23 (const int)
+0:17        24 (const int)
+0:34  Sequence
+0:34    move second child to first child (temp 4-element array of int)
+0:34      'gl_vi4' (global 4-element array of int)
+0:34      Constant:
+0:34        1 (const int)
+0:34        2 (const int)
+0:34        3 (const int)
+0:34        4 (const int)
+0:35  Sequence
+0:35    move second child to first child (temp 5-element array of int)
+0:35      'gl_vk5' (global 5-element array of int)
+0:35      Constant:
+0:35        5 (const int)
+0:35        6 (const int)
+0:35        7 (const int)
+0:35        8 (const int)
+0:35        9 (const int)
+0:36  Sequence
+0:36    move second child to first child (temp 2-element array of int)
+0:36      'gl_vm2' (global 2-element array of int)
+0:36      Constant:
+0:36        10 (const int)
+0:36        11 (const int)
+0:36    move second child to first child (temp 3-element array of int)
+0:36      'gl_vm3' (global 3-element array of int)
+0:36      Constant:
+0:36        12 (const int)
+0:36        13 (const int)
+0:36        14 (const int)
+0:37  Sequence
+0:37    move second child to first child (temp 4-element array of int)
+0:37      'gl_vn8' (global 4-element array of int)
+0:37      Constant:
+0:37        21 (const int)
+0:37        22 (const int)
+0:37        23 (const int)
+0:37        24 (const int)
+0:39  Function Definition: main( (global void)
+0:39    Function Parameters: 
+0:41    Sequence
+0:41      Loop with condition tested first
+0:41        Loop Condition
+0:41        move second child to first child (temp bool)
+0:41          'cond' (temp bool)
+0:41          Compare Less Than (temp bool)
+0:41            'b' (global int)
+0:41            'c' (global int)
+0:41        No loop body
+0:42      Loop with condition tested first
+0:42        Loop Condition
+0:42        move second child to first child (temp int)
+0:42          'icond' (temp int)
+0:42          'b' (global int)
+0:42        No loop body
+0:43      Loop with condition tested first
+0:43        Loop Condition
+0:43        move second child to first child (temp bool)
+0:43          'gl_cond' (temp bool)
+0:43          Compare Less Than (temp bool)
+0:43            'b' (global int)
+0:43            'c' (global int)
+0:43        No loop body
+0:46  Sequence
+0:46    move second child to first child (temp 4-element array of int)
+0:46      'foob__vi4' (global 4-element array of int)
+0:46      Constant:
+0:46        1 (const int)
+0:46        2 (const int)
+0:46        3 (const int)
+0:46        4 (const int)
+0:47  Sequence
+0:47    move second child to first child (temp 5-element array of int)
+0:47      'foob__vk5' (global 5-element array of int)
+0:47      Constant:
+0:47        5 (const int)
+0:47        6 (const int)
+0:47        7 (const int)
+0:47        8 (const int)
+0:47        9 (const int)
+0:48  Sequence
+0:48    move second child to first child (temp 2-element array of int)
+0:48      '__foobvm2' (global 2-element array of int)
+0:48      Constant:
+0:48        10 (const int)
+0:48        11 (const int)
+0:48    move second child to first child (temp 3-element array of int)
+0:48      '__foobvm3' (global 3-element array of int)
+0:48      Constant:
+0:48        12 (const int)
+0:48        13 (const int)
+0:48        14 (const int)
+0:49  Sequence
+0:49    move second child to first child (temp 4-element array of int)
+0:49      'foob__vn8' (global 4-element array of int)
+0:49      Constant:
+0:49        21 (const int)
+0:49        22 (const int)
+0:49        23 (const int)
+0:49        24 (const int)
+0:?   Linker Objects
+0:?     'a' (global int)
+0:?     'b' (global int)
+0:?     'c' (global int)
+0:?     'd1' (global int)
+0:?     'e2' (global int)
+0:?     'f' (global int)
+0:?     'g' (global int)
+0:?     'h3' (global int)
+0:?     'i4' (global 4-element array of int)
+0:?     'j' (global int)
+0:?     'k5' (global 5-element array of int)
+0:?     'm6' (global 6-element array of int)
+0:?     'm7' (global 7-element array of int)
+0:?     'n8' (global 8-element array of int)
+0:?     'p' (global int)
+0:?     'ii4' (global 4-element array of int)
+0:?     'ij' (global int)
+0:?     'ik5' (global 5-element array of int)
+0:?     'im2' (global 2-element array of int)
+0:?     'im3' (global 3-element array of int)
+0:?     'in8' (global 4-element array of int)
+0:?     'ip' (global int)
+0:?     'cii4' (const 4-element array of int)
+0:?       1 (const int)
+0:?       2 (const int)
+0:?       3 (const int)
+0:?       4 (const int)
+0:?     'cij' (temp int)
+0:?     'cik5' (const 5-element array of int)
+0:?       5 (const int)
+0:?       6 (const int)
+0:?       7 (const int)
+0:?       8 (const int)
+0:?       9 (const int)
+0:?     'cim2' (const 2-element array of int)
+0:?       10 (const int)
+0:?       11 (const int)
+0:?     'cim3' (const 3-element array of int)
+0:?       12 (const int)
+0:?       13 (const int)
+0:?       14 (const int)
+0:?     'cin8' (const 4-element array of int)
+0:?       21 (const int)
+0:?       22 (const int)
+0:?       23 (const int)
+0:?       24 (const int)
+0:?     'cip' (temp int)
+0:?     'uii4' (uniform 4-element array of int)
+0:?       1 (const int)
+0:?       2 (const int)
+0:?       3 (const int)
+0:?       4 (const int)
+0:?     'uij' (uniform int)
+0:?     'uik5' (uniform 5-element array of int)
+0:?       5 (const int)
+0:?       6 (const int)
+0:?       7 (const int)
+0:?       8 (const int)
+0:?       9 (const int)
+0:?     'uim2' (uniform 2-element array of int)
+0:?       10 (const int)
+0:?       11 (const int)
+0:?     'uim3' (uniform 3-element array of int)
+0:?       12 (const int)
+0:?       13 (const int)
+0:?       14 (const int)
+0:?     'uin8' (uniform 4-element array of int)
+0:?       21 (const int)
+0:?       22 (const int)
+0:?       23 (const int)
+0:?       24 (const int)
+0:?     'uip' (uniform int)
+0:?     'gl_vi4' (global 4-element array of int)
+0:?     'gl_vj' (global int)
+0:?     'gl_vk5' (global 5-element array of int)
+0:?     'gl_vm2' (global 2-element array of int)
+0:?     'gl_vm3' (global 3-element array of int)
+0:?     'gl_vn8' (global 4-element array of int)
+0:?     'gl_vp' (global int)
+0:?     'foob__vi4' (global 4-element array of int)
+0:?     'foob__vj' (global int)
+0:?     'foob__vk5' (global 5-element array of int)
+0:?     '__foobvm2' (global 2-element array of int)
+0:?     '__foobvm3' (global 3-element array of int)
+0:?     'foob__vn8' (global 4-element array of int)
+0:?     'foob__vp' (global int)
+
diff --git a/Test/baseResults/deepRvalue.frag.out b/Test/baseResults/deepRvalue.frag.out
index 91e7816..9441ace 100644
--- a/Test/baseResults/deepRvalue.frag.out
+++ b/Test/baseResults/deepRvalue.frag.out
@@ -1,285 +1,285 @@
-deepRvalue.frag

-Shader version: 120

-0:? Sequence

-0:5  Sequence

-0:5    move second child to first child (temp 4-component vector of float)

-0:5      'v1' (global 4-component vector of float)

-0:5      Constant:

-0:5        2.000000

-0:5        3.000000

-0:5        5.000000

-0:5        7.000000

-0:6  Sequence

-0:6    move second child to first child (temp 4-component vector of float)

-0:6      'v2' (global 4-component vector of float)

-0:6      Constant:

-0:6        11.000000

-0:6        13.000000

-0:6        17.000000

-0:6        19.000000

-0:7  Sequence

-0:7    move second child to first child (temp 4-component vector of float)

-0:7      'v3' (global 4-component vector of float)

-0:7      Constant:

-0:7        23.000000

-0:7        29.000000

-0:7        31.000000

-0:7        37.000000

-0:8  Sequence

-0:8    move second child to first child (temp 4-component vector of float)

-0:8      'v4' (global 4-component vector of float)

-0:8      Constant:

-0:8        41.000000

-0:8        43.000000

-0:8        47.000000

-0:8        53.000000

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:18    Sequence

-0:18      Sequence

-0:18        move second child to first child (temp 4X4 matrix of float)

-0:18          'm' (temp 4X4 matrix of float)

-0:18          Construct mat4 (temp 4X4 matrix of float)

-0:18            'v1' (global 4-component vector of float)

-0:18            'v2' (global 4-component vector of float)

-0:18            'v3' (global 4-component vector of float)

-0:18            'v4' (global 4-component vector of float)

-0:20      Sequence

-0:20        move second child to first child (temp 4X4 matrix of float)

-0:20          'mm' (temp 4X4 matrix of float)

-0:20          component-wise multiply (global 4X4 matrix of float)

-0:20            'm' (temp 4X4 matrix of float)

-0:20            'm' (temp 4X4 matrix of float)

-0:21      Sequence

-0:21        move second child to first child (temp float)

-0:21          'f' (temp float)

-0:21          direct index (temp float)

-0:21            direct index (temp 4-component vector of float)

-0:21              'mm' (temp 4X4 matrix of float)

-0:21              Constant:

-0:21                1 (const int)

-0:21            Constant:

-0:21              3 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'g' (temp float)

-0:24          direct index (temp float)

-0:24            direct index (temp 4-component vector of float)

-0:24              component-wise multiply (global 4X4 matrix of float)

-0:24                'm' (temp 4X4 matrix of float)

-0:24                'm' (temp 4X4 matrix of float)

-0:24              Constant:

-0:24                2 (const int)

-0:24            Constant:

-0:24              1 (const int)

-0:26      Sequence

-0:26        move second child to first child (temp float)

-0:26          'h' (temp float)

-0:26          Constant:

-0:26            5.000000

-0:28      Sequence

-0:28        move second child to first child (temp float)

-0:28          'i' (temp float)

-0:28          direct index (temp float)

-0:28            texture (global 4-component vector of float)

-0:28              'sampler' (uniform sampler2D)

-0:28              Constant:

-0:28                0.500000

-0:28                0.500000

-0:28            Constant:

-0:28              1 (const int)

-0:30      add second child into first child (temp float)

-0:30        'i' (temp float)

-0:30        direct index (temp float)

-0:30          Test condition and select (temp 4-component vector of float)

-0:30            Condition

-0:30            Compare Greater Than (temp bool)

-0:30              'i' (temp float)

-0:30              Constant:

-0:30                0.100000

-0:30            true case

-0:30            'v1' (global 4-component vector of float)

-0:30            false case

-0:30            'v2' (global 4-component vector of float)

-0:30          Constant:

-0:30            3 (const int)

-0:33      add second child into first child (temp float)

-0:33        'i' (temp float)

-0:33        direct index (temp float)

-0:33          direct index (temp 2-component vector of float)

-0:33            b: direct index for structure (global 3-element array of 2-component vector of float)

-0:33              move second child to first child (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})

-0:33                't' (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})

-0:33                Constant:

-0:33                  1 (const int)

-0:33                  2.000000

-0:33                  3.000000

-0:33                  4.000000

-0:33                  5.000000

-0:33                  6.000000

-0:33                  7.000000

-0:33                  true (const bool)

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            1 (const int)

-0:35      move second child to first child (temp 4-component vector of float)

-0:35        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:35        Construct vec4 (temp 4-component vector of float)

-0:35          'f' (temp float)

-0:35          'g' (temp float)

-0:35          'h' (temp float)

-0:35          'i' (temp float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'v1' (global 4-component vector of float)

-0:?     'v2' (global 4-component vector of float)

-0:?     'v3' (global 4-component vector of float)

-0:?     'v4' (global 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 120

-0:? Sequence

-0:5  Sequence

-0:5    move second child to first child (temp 4-component vector of float)

-0:5      'v1' (global 4-component vector of float)

-0:5      Constant:

-0:5        2.000000

-0:5        3.000000

-0:5        5.000000

-0:5        7.000000

-0:6  Sequence

-0:6    move second child to first child (temp 4-component vector of float)

-0:6      'v2' (global 4-component vector of float)

-0:6      Constant:

-0:6        11.000000

-0:6        13.000000

-0:6        17.000000

-0:6        19.000000

-0:7  Sequence

-0:7    move second child to first child (temp 4-component vector of float)

-0:7      'v3' (global 4-component vector of float)

-0:7      Constant:

-0:7        23.000000

-0:7        29.000000

-0:7        31.000000

-0:7        37.000000

-0:8  Sequence

-0:8    move second child to first child (temp 4-component vector of float)

-0:8      'v4' (global 4-component vector of float)

-0:8      Constant:

-0:8        41.000000

-0:8        43.000000

-0:8        47.000000

-0:8        53.000000

-0:16  Function Definition: main( (global void)

-0:16    Function Parameters: 

-0:18    Sequence

-0:18      Sequence

-0:18        move second child to first child (temp 4X4 matrix of float)

-0:18          'm' (temp 4X4 matrix of float)

-0:18          Construct mat4 (temp 4X4 matrix of float)

-0:18            'v1' (global 4-component vector of float)

-0:18            'v2' (global 4-component vector of float)

-0:18            'v3' (global 4-component vector of float)

-0:18            'v4' (global 4-component vector of float)

-0:20      Sequence

-0:20        move second child to first child (temp 4X4 matrix of float)

-0:20          'mm' (temp 4X4 matrix of float)

-0:20          component-wise multiply (global 4X4 matrix of float)

-0:20            'm' (temp 4X4 matrix of float)

-0:20            'm' (temp 4X4 matrix of float)

-0:21      Sequence

-0:21        move second child to first child (temp float)

-0:21          'f' (temp float)

-0:21          direct index (temp float)

-0:21            direct index (temp 4-component vector of float)

-0:21              'mm' (temp 4X4 matrix of float)

-0:21              Constant:

-0:21                1 (const int)

-0:21            Constant:

-0:21              3 (const int)

-0:24      Sequence

-0:24        move second child to first child (temp float)

-0:24          'g' (temp float)

-0:24          direct index (temp float)

-0:24            direct index (temp 4-component vector of float)

-0:24              component-wise multiply (global 4X4 matrix of float)

-0:24                'm' (temp 4X4 matrix of float)

-0:24                'm' (temp 4X4 matrix of float)

-0:24              Constant:

-0:24                2 (const int)

-0:24            Constant:

-0:24              1 (const int)

-0:26      Sequence

-0:26        move second child to first child (temp float)

-0:26          'h' (temp float)

-0:26          Constant:

-0:26            5.000000

-0:28      Sequence

-0:28        move second child to first child (temp float)

-0:28          'i' (temp float)

-0:28          direct index (temp float)

-0:28            texture (global 4-component vector of float)

-0:28              'sampler' (uniform sampler2D)

-0:28              Constant:

-0:28                0.500000

-0:28                0.500000

-0:28            Constant:

-0:28              1 (const int)

-0:30      add second child into first child (temp float)

-0:30        'i' (temp float)

-0:30        direct index (temp float)

-0:30          Test condition and select (temp 4-component vector of float)

-0:30            Condition

-0:30            Compare Greater Than (temp bool)

-0:30              'i' (temp float)

-0:30              Constant:

-0:30                0.100000

-0:30            true case

-0:30            'v1' (global 4-component vector of float)

-0:30            false case

-0:30            'v2' (global 4-component vector of float)

-0:30          Constant:

-0:30            3 (const int)

-0:33      add second child into first child (temp float)

-0:33        'i' (temp float)

-0:33        direct index (temp float)

-0:33          direct index (temp 2-component vector of float)

-0:33            b: direct index for structure (global 3-element array of 2-component vector of float)

-0:33              move second child to first child (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})

-0:33                't' (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})

-0:33                Constant:

-0:33                  1 (const int)

-0:33                  2.000000

-0:33                  3.000000

-0:33                  4.000000

-0:33                  5.000000

-0:33                  6.000000

-0:33                  7.000000

-0:33                  true (const bool)

-0:33              Constant:

-0:33                1 (const int)

-0:33            Constant:

-0:33              2 (const int)

-0:33          Constant:

-0:33            1 (const int)

-0:35      move second child to first child (temp 4-component vector of float)

-0:35        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:35        Construct vec4 (temp 4-component vector of float)

-0:35          'f' (temp float)

-0:35          'g' (temp float)

-0:35          'h' (temp float)

-0:35          'i' (temp float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'v1' (global 4-component vector of float)

-0:?     'v2' (global 4-component vector of float)

-0:?     'v3' (global 4-component vector of float)

-0:?     'v4' (global 4-component vector of float)

-

+deepRvalue.frag
+Shader version: 120
+0:? Sequence
+0:5  Sequence
+0:5    move second child to first child (temp 4-component vector of float)
+0:5      'v1' (global 4-component vector of float)
+0:5      Constant:
+0:5        2.000000
+0:5        3.000000
+0:5        5.000000
+0:5        7.000000
+0:6  Sequence
+0:6    move second child to first child (temp 4-component vector of float)
+0:6      'v2' (global 4-component vector of float)
+0:6      Constant:
+0:6        11.000000
+0:6        13.000000
+0:6        17.000000
+0:6        19.000000
+0:7  Sequence
+0:7    move second child to first child (temp 4-component vector of float)
+0:7      'v3' (global 4-component vector of float)
+0:7      Constant:
+0:7        23.000000
+0:7        29.000000
+0:7        31.000000
+0:7        37.000000
+0:8  Sequence
+0:8    move second child to first child (temp 4-component vector of float)
+0:8      'v4' (global 4-component vector of float)
+0:8      Constant:
+0:8        41.000000
+0:8        43.000000
+0:8        47.000000
+0:8        53.000000
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:18    Sequence
+0:18      Sequence
+0:18        move second child to first child (temp 4X4 matrix of float)
+0:18          'm' (temp 4X4 matrix of float)
+0:18          Construct mat4 (temp 4X4 matrix of float)
+0:18            'v1' (global 4-component vector of float)
+0:18            'v2' (global 4-component vector of float)
+0:18            'v3' (global 4-component vector of float)
+0:18            'v4' (global 4-component vector of float)
+0:20      Sequence
+0:20        move second child to first child (temp 4X4 matrix of float)
+0:20          'mm' (temp 4X4 matrix of float)
+0:20          component-wise multiply (global 4X4 matrix of float)
+0:20            'm' (temp 4X4 matrix of float)
+0:20            'm' (temp 4X4 matrix of float)
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'f' (temp float)
+0:21          direct index (temp float)
+0:21            direct index (temp 4-component vector of float)
+0:21              'mm' (temp 4X4 matrix of float)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Constant:
+0:21              3 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'g' (temp float)
+0:24          direct index (temp float)
+0:24            direct index (temp 4-component vector of float)
+0:24              component-wise multiply (global 4X4 matrix of float)
+0:24                'm' (temp 4X4 matrix of float)
+0:24                'm' (temp 4X4 matrix of float)
+0:24              Constant:
+0:24                2 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:26      Sequence
+0:26        move second child to first child (temp float)
+0:26          'h' (temp float)
+0:26          Constant:
+0:26            5.000000
+0:28      Sequence
+0:28        move second child to first child (temp float)
+0:28          'i' (temp float)
+0:28          direct index (temp float)
+0:28            texture (global 4-component vector of float)
+0:28              'sampler' (uniform sampler2D)
+0:28              Constant:
+0:28                0.500000
+0:28                0.500000
+0:28            Constant:
+0:28              1 (const int)
+0:30      add second child into first child (temp float)
+0:30        'i' (temp float)
+0:30        direct index (temp float)
+0:30          Test condition and select (temp 4-component vector of float)
+0:30            Condition
+0:30            Compare Greater Than (temp bool)
+0:30              'i' (temp float)
+0:30              Constant:
+0:30                0.100000
+0:30            true case
+0:30            'v1' (global 4-component vector of float)
+0:30            false case
+0:30            'v2' (global 4-component vector of float)
+0:30          Constant:
+0:30            3 (const int)
+0:33      add second child into first child (temp float)
+0:33        'i' (temp float)
+0:33        direct index (temp float)
+0:33          direct index (temp 2-component vector of float)
+0:33            b: direct index for structure (global 3-element array of 2-component vector of float)
+0:33              move second child to first child (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33                't' (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33                Constant:
+0:33                  1 (const int)
+0:33                  2.000000
+0:33                  3.000000
+0:33                  4.000000
+0:33                  5.000000
+0:33                  6.000000
+0:33                  7.000000
+0:33                  true (const bool)
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            1 (const int)
+0:35      move second child to first child (temp 4-component vector of float)
+0:35        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:35        Construct vec4 (temp 4-component vector of float)
+0:35          'f' (temp float)
+0:35          'g' (temp float)
+0:35          'h' (temp float)
+0:35          'i' (temp float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'v1' (global 4-component vector of float)
+0:?     'v2' (global 4-component vector of float)
+0:?     'v3' (global 4-component vector of float)
+0:?     'v4' (global 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:5  Sequence
+0:5    move second child to first child (temp 4-component vector of float)
+0:5      'v1' (global 4-component vector of float)
+0:5      Constant:
+0:5        2.000000
+0:5        3.000000
+0:5        5.000000
+0:5        7.000000
+0:6  Sequence
+0:6    move second child to first child (temp 4-component vector of float)
+0:6      'v2' (global 4-component vector of float)
+0:6      Constant:
+0:6        11.000000
+0:6        13.000000
+0:6        17.000000
+0:6        19.000000
+0:7  Sequence
+0:7    move second child to first child (temp 4-component vector of float)
+0:7      'v3' (global 4-component vector of float)
+0:7      Constant:
+0:7        23.000000
+0:7        29.000000
+0:7        31.000000
+0:7        37.000000
+0:8  Sequence
+0:8    move second child to first child (temp 4-component vector of float)
+0:8      'v4' (global 4-component vector of float)
+0:8      Constant:
+0:8        41.000000
+0:8        43.000000
+0:8        47.000000
+0:8        53.000000
+0:16  Function Definition: main( (global void)
+0:16    Function Parameters: 
+0:18    Sequence
+0:18      Sequence
+0:18        move second child to first child (temp 4X4 matrix of float)
+0:18          'm' (temp 4X4 matrix of float)
+0:18          Construct mat4 (temp 4X4 matrix of float)
+0:18            'v1' (global 4-component vector of float)
+0:18            'v2' (global 4-component vector of float)
+0:18            'v3' (global 4-component vector of float)
+0:18            'v4' (global 4-component vector of float)
+0:20      Sequence
+0:20        move second child to first child (temp 4X4 matrix of float)
+0:20          'mm' (temp 4X4 matrix of float)
+0:20          component-wise multiply (global 4X4 matrix of float)
+0:20            'm' (temp 4X4 matrix of float)
+0:20            'm' (temp 4X4 matrix of float)
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'f' (temp float)
+0:21          direct index (temp float)
+0:21            direct index (temp 4-component vector of float)
+0:21              'mm' (temp 4X4 matrix of float)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Constant:
+0:21              3 (const int)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'g' (temp float)
+0:24          direct index (temp float)
+0:24            direct index (temp 4-component vector of float)
+0:24              component-wise multiply (global 4X4 matrix of float)
+0:24                'm' (temp 4X4 matrix of float)
+0:24                'm' (temp 4X4 matrix of float)
+0:24              Constant:
+0:24                2 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:26      Sequence
+0:26        move second child to first child (temp float)
+0:26          'h' (temp float)
+0:26          Constant:
+0:26            5.000000
+0:28      Sequence
+0:28        move second child to first child (temp float)
+0:28          'i' (temp float)
+0:28          direct index (temp float)
+0:28            texture (global 4-component vector of float)
+0:28              'sampler' (uniform sampler2D)
+0:28              Constant:
+0:28                0.500000
+0:28                0.500000
+0:28            Constant:
+0:28              1 (const int)
+0:30      add second child into first child (temp float)
+0:30        'i' (temp float)
+0:30        direct index (temp float)
+0:30          Test condition and select (temp 4-component vector of float)
+0:30            Condition
+0:30            Compare Greater Than (temp bool)
+0:30              'i' (temp float)
+0:30              Constant:
+0:30                0.100000
+0:30            true case
+0:30            'v1' (global 4-component vector of float)
+0:30            false case
+0:30            'v2' (global 4-component vector of float)
+0:30          Constant:
+0:30            3 (const int)
+0:33      add second child into first child (temp float)
+0:33        'i' (temp float)
+0:33        direct index (temp float)
+0:33          direct index (temp 2-component vector of float)
+0:33            b: direct index for structure (global 3-element array of 2-component vector of float)
+0:33              move second child to first child (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33                't' (temp structure{global int a, global 3-element array of 2-component vector of float b, global bool c})
+0:33                Constant:
+0:33                  1 (const int)
+0:33                  2.000000
+0:33                  3.000000
+0:33                  4.000000
+0:33                  5.000000
+0:33                  6.000000
+0:33                  7.000000
+0:33                  true (const bool)
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            1 (const int)
+0:35      move second child to first child (temp 4-component vector of float)
+0:35        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:35        Construct vec4 (temp 4-component vector of float)
+0:35          'f' (temp float)
+0:35          'g' (temp float)
+0:35          'h' (temp float)
+0:35          'i' (temp float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'v1' (global 4-component vector of float)
+0:?     'v2' (global 4-component vector of float)
+0:?     'v3' (global 4-component vector of float)
+0:?     'v4' (global 4-component vector of float)
+
diff --git a/Test/baseResults/depthOut.frag.out b/Test/baseResults/depthOut.frag.out
index 635ae6f..0177b39 100644
--- a/Test/baseResults/depthOut.frag.out
+++ b/Test/baseResults/depthOut.frag.out
@@ -1,38 +1,38 @@
-depthOut.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:8    Sequence

-0:8      move second child to first child (temp float)

-0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:8        'Depth' (smooth in float)

-0:9      move second child to first child (temp 4-component vector of float)

-0:9        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:9        'Color' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'Color' (smooth in 4-component vector of float)

-0:?     'Depth' (smooth in float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:8    Sequence

-0:8      move second child to first child (temp float)

-0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:8        'Depth' (smooth in float)

-0:9      move second child to first child (temp 4-component vector of float)

-0:9        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:9        'Color' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'Color' (smooth in 4-component vector of float)

-0:?     'Depth' (smooth in float)

-

+depthOut.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:8    Sequence
+0:8      move second child to first child (temp float)
+0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8        'Depth' (smooth in float)
+0:9      move second child to first child (temp 4-component vector of float)
+0:9        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:9        'Color' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'Color' (smooth in 4-component vector of float)
+0:?     'Depth' (smooth in float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:8    Sequence
+0:8      move second child to first child (temp float)
+0:8        'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:8        'Depth' (smooth in float)
+0:9      move second child to first child (temp 4-component vector of float)
+0:9        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:9        'Color' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'Color' (smooth in 4-component vector of float)
+0:?     'Depth' (smooth in float)
+
diff --git a/Test/baseResults/discard-dce.frag.out b/Test/baseResults/discard-dce.frag.out
index 0a412f4..9b194c7 100644
--- a/Test/baseResults/discard-dce.frag.out
+++ b/Test/baseResults/discard-dce.frag.out
@@ -1,239 +1,239 @@
-discard-dce.frag

-Shader version: 110

-0:? Sequence

-0:4  Function Definition: main( (global void)

-0:4    Function Parameters: 

-0:6    Sequence

-0:6      Sequence

-0:6        move second child to first child (temp 4-component vector of float)

-0:6          'white' (temp 4-component vector of float)

-0:6          Constant:

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:7      Sequence

-0:7        move second child to first child (temp 4-component vector of float)

-0:7          'black' (temp 4-component vector of float)

-0:7          Constant:

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'color' (temp 4-component vector of float)

-0:8          'white' (temp 4-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'x' (temp float)

-0:11          subtract (temp float)

-0:11            component-wise multiply (temp float)

-0:11              direct index (temp float)

-0:11                'tex_coord' (smooth in 2-component vector of float)

-0:11                Constant:

-0:11                  0 (const int)

-0:11              Constant:

-0:11                2.000000

-0:11            Constant:

-0:11              1.000000

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'y' (temp float)

-0:12          subtract (temp float)

-0:12            component-wise multiply (temp float)

-0:12              direct index (temp float)

-0:12                'tex_coord' (smooth in 2-component vector of float)

-0:12                Constant:

-0:12                  1 (const int)

-0:12              Constant:

-0:12                2.000000

-0:12            Constant:

-0:12              1.000000

-0:14      Sequence

-0:14        move second child to first child (temp float)

-0:14          'radius' (temp float)

-0:14          sqrt (global float)

-0:14            add (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'x' (temp float)

-0:14                'x' (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'y' (temp float)

-0:14                'y' (temp float)

-0:15      Test condition and select (temp void)

-0:15        Condition

-0:15        Compare Greater Than (temp bool)

-0:15          'radius' (temp float)

-0:15          Constant:

-0:15            1.000000

-0:15        true case

-0:16        Sequence

-0:16          Test condition and select (temp void)

-0:16            Condition

-0:16            Compare Greater Than (temp bool)

-0:16              'radius' (temp float)

-0:16              Constant:

-0:16                1.100000

-0:16            true case

-0:17            Sequence

-0:17              Pre-Increment (temp 4-component vector of float)

-0:17                'color' (temp 4-component vector of float)

-0:20          move second child to first child (temp 4-component vector of float)

-0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:20            'color' (temp 4-component vector of float)

-0:22          Test condition and select (temp void)

-0:22            Condition

-0:22            Compare Greater Than (temp bool)

-0:22              'radius' (temp float)

-0:22              Constant:

-0:22                1.200000

-0:22            true case

-0:23            Sequence

-0:23              Pre-Increment (temp 4-component vector of float)

-0:23                'color' (temp 4-component vector of float)

-0:26          Branch: Kill

-0:30      Test condition and select (temp void)

-0:30        Condition

-0:30        Compare Greater Than or Equal (temp bool)

-0:30          'radius' (temp float)

-0:30          Constant:

-0:30            0.750000

-0:30        true case

-0:31        subtract second child into first child (temp 4-component vector of float)

-0:31          'color' (temp 4-component vector of float)

-0:31          Absolute value (global float)

-0:31            divide (temp float)

-0:31              pow (global float)

-0:31                'radius' (temp float)

-0:31                Constant:

-0:31                  16.000000

-0:31              Constant:

-0:31                2.000000

-0:33      move second child to first child (temp 4-component vector of float)

-0:33        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:33        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex_coord' (smooth in 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:4  Function Definition: main( (global void)

-0:4    Function Parameters: 

-0:6    Sequence

-0:6      Sequence

-0:6        move second child to first child (temp 4-component vector of float)

-0:6          'white' (temp 4-component vector of float)

-0:6          Constant:

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:6            1.000000

-0:7      Sequence

-0:7        move second child to first child (temp 4-component vector of float)

-0:7          'black' (temp 4-component vector of float)

-0:7          Constant:

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:7            0.200000

-0:8      Sequence

-0:8        move second child to first child (temp 4-component vector of float)

-0:8          'color' (temp 4-component vector of float)

-0:8          'white' (temp 4-component vector of float)

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'x' (temp float)

-0:11          subtract (temp float)

-0:11            component-wise multiply (temp float)

-0:11              direct index (temp float)

-0:11                'tex_coord' (smooth in 2-component vector of float)

-0:11                Constant:

-0:11                  0 (const int)

-0:11              Constant:

-0:11                2.000000

-0:11            Constant:

-0:11              1.000000

-0:12      Sequence

-0:12        move second child to first child (temp float)

-0:12          'y' (temp float)

-0:12          subtract (temp float)

-0:12            component-wise multiply (temp float)

-0:12              direct index (temp float)

-0:12                'tex_coord' (smooth in 2-component vector of float)

-0:12                Constant:

-0:12                  1 (const int)

-0:12              Constant:

-0:12                2.000000

-0:12            Constant:

-0:12              1.000000

-0:14      Sequence

-0:14        move second child to first child (temp float)

-0:14          'radius' (temp float)

-0:14          sqrt (global float)

-0:14            add (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'x' (temp float)

-0:14                'x' (temp float)

-0:14              component-wise multiply (temp float)

-0:14                'y' (temp float)

-0:14                'y' (temp float)

-0:15      Test condition and select (temp void)

-0:15        Condition

-0:15        Compare Greater Than (temp bool)

-0:15          'radius' (temp float)

-0:15          Constant:

-0:15            1.000000

-0:15        true case

-0:16        Sequence

-0:16          Test condition and select (temp void)

-0:16            Condition

-0:16            Compare Greater Than (temp bool)

-0:16              'radius' (temp float)

-0:16              Constant:

-0:16                1.100000

-0:16            true case

-0:17            Sequence

-0:17              Pre-Increment (temp 4-component vector of float)

-0:17                'color' (temp 4-component vector of float)

-0:20          move second child to first child (temp 4-component vector of float)

-0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:20            'color' (temp 4-component vector of float)

-0:22          Test condition and select (temp void)

-0:22            Condition

-0:22            Compare Greater Than (temp bool)

-0:22              'radius' (temp float)

-0:22              Constant:

-0:22                1.200000

-0:22            true case

-0:23            Sequence

-0:23              Pre-Increment (temp 4-component vector of float)

-0:23                'color' (temp 4-component vector of float)

-0:26          Branch: Kill

-0:30      Test condition and select (temp void)

-0:30        Condition

-0:30        Compare Greater Than or Equal (temp bool)

-0:30          'radius' (temp float)

-0:30          Constant:

-0:30            0.750000

-0:30        true case

-0:31        subtract second child into first child (temp 4-component vector of float)

-0:31          'color' (temp 4-component vector of float)

-0:31          Absolute value (global float)

-0:31            divide (temp float)

-0:31              pow (global float)

-0:31                'radius' (temp float)

-0:31                Constant:

-0:31                  16.000000

-0:31              Constant:

-0:31                2.000000

-0:33      move second child to first child (temp 4-component vector of float)

-0:33        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:33        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'tex_coord' (smooth in 2-component vector of float)

-

+discard-dce.frag
+Shader version: 110
+0:? Sequence
+0:4  Function Definition: main( (global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child (temp 4-component vector of float)
+0:6          'white' (temp 4-component vector of float)
+0:6          Constant:
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:7      Sequence
+0:7        move second child to first child (temp 4-component vector of float)
+0:7          'black' (temp 4-component vector of float)
+0:7          Constant:
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'color' (temp 4-component vector of float)
+0:8          'white' (temp 4-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'x' (temp float)
+0:11          subtract (temp float)
+0:11            component-wise multiply (temp float)
+0:11              direct index (temp float)
+0:11                'tex_coord' (smooth in 2-component vector of float)
+0:11                Constant:
+0:11                  0 (const int)
+0:11              Constant:
+0:11                2.000000
+0:11            Constant:
+0:11              1.000000
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'y' (temp float)
+0:12          subtract (temp float)
+0:12            component-wise multiply (temp float)
+0:12              direct index (temp float)
+0:12                'tex_coord' (smooth in 2-component vector of float)
+0:12                Constant:
+0:12                  1 (const int)
+0:12              Constant:
+0:12                2.000000
+0:12            Constant:
+0:12              1.000000
+0:14      Sequence
+0:14        move second child to first child (temp float)
+0:14          'radius' (temp float)
+0:14          sqrt (global float)
+0:14            add (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'x' (temp float)
+0:14                'x' (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'y' (temp float)
+0:14                'y' (temp float)
+0:15      Test condition and select (temp void)
+0:15        Condition
+0:15        Compare Greater Than (temp bool)
+0:15          'radius' (temp float)
+0:15          Constant:
+0:15            1.000000
+0:15        true case
+0:16        Sequence
+0:16          Test condition and select (temp void)
+0:16            Condition
+0:16            Compare Greater Than (temp bool)
+0:16              'radius' (temp float)
+0:16              Constant:
+0:16                1.100000
+0:16            true case
+0:17            Sequence
+0:17              Pre-Increment (temp 4-component vector of float)
+0:17                'color' (temp 4-component vector of float)
+0:20          move second child to first child (temp 4-component vector of float)
+0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20            'color' (temp 4-component vector of float)
+0:22          Test condition and select (temp void)
+0:22            Condition
+0:22            Compare Greater Than (temp bool)
+0:22              'radius' (temp float)
+0:22              Constant:
+0:22                1.200000
+0:22            true case
+0:23            Sequence
+0:23              Pre-Increment (temp 4-component vector of float)
+0:23                'color' (temp 4-component vector of float)
+0:26          Branch: Kill
+0:30      Test condition and select (temp void)
+0:30        Condition
+0:30        Compare Greater Than or Equal (temp bool)
+0:30          'radius' (temp float)
+0:30          Constant:
+0:30            0.750000
+0:30        true case
+0:31        subtract second child into first child (temp 4-component vector of float)
+0:31          'color' (temp 4-component vector of float)
+0:31          Absolute value (global float)
+0:31            divide (temp float)
+0:31              pow (global float)
+0:31                'radius' (temp float)
+0:31                Constant:
+0:31                  16.000000
+0:31              Constant:
+0:31                2.000000
+0:33      move second child to first child (temp 4-component vector of float)
+0:33        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex_coord' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:4  Function Definition: main( (global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        move second child to first child (temp 4-component vector of float)
+0:6          'white' (temp 4-component vector of float)
+0:6          Constant:
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:6            1.000000
+0:7      Sequence
+0:7        move second child to first child (temp 4-component vector of float)
+0:7          'black' (temp 4-component vector of float)
+0:7          Constant:
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:7            0.200000
+0:8      Sequence
+0:8        move second child to first child (temp 4-component vector of float)
+0:8          'color' (temp 4-component vector of float)
+0:8          'white' (temp 4-component vector of float)
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'x' (temp float)
+0:11          subtract (temp float)
+0:11            component-wise multiply (temp float)
+0:11              direct index (temp float)
+0:11                'tex_coord' (smooth in 2-component vector of float)
+0:11                Constant:
+0:11                  0 (const int)
+0:11              Constant:
+0:11                2.000000
+0:11            Constant:
+0:11              1.000000
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'y' (temp float)
+0:12          subtract (temp float)
+0:12            component-wise multiply (temp float)
+0:12              direct index (temp float)
+0:12                'tex_coord' (smooth in 2-component vector of float)
+0:12                Constant:
+0:12                  1 (const int)
+0:12              Constant:
+0:12                2.000000
+0:12            Constant:
+0:12              1.000000
+0:14      Sequence
+0:14        move second child to first child (temp float)
+0:14          'radius' (temp float)
+0:14          sqrt (global float)
+0:14            add (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'x' (temp float)
+0:14                'x' (temp float)
+0:14              component-wise multiply (temp float)
+0:14                'y' (temp float)
+0:14                'y' (temp float)
+0:15      Test condition and select (temp void)
+0:15        Condition
+0:15        Compare Greater Than (temp bool)
+0:15          'radius' (temp float)
+0:15          Constant:
+0:15            1.000000
+0:15        true case
+0:16        Sequence
+0:16          Test condition and select (temp void)
+0:16            Condition
+0:16            Compare Greater Than (temp bool)
+0:16              'radius' (temp float)
+0:16              Constant:
+0:16                1.100000
+0:16            true case
+0:17            Sequence
+0:17              Pre-Increment (temp 4-component vector of float)
+0:17                'color' (temp 4-component vector of float)
+0:20          move second child to first child (temp 4-component vector of float)
+0:20            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20            'color' (temp 4-component vector of float)
+0:22          Test condition and select (temp void)
+0:22            Condition
+0:22            Compare Greater Than (temp bool)
+0:22              'radius' (temp float)
+0:22              Constant:
+0:22                1.200000
+0:22            true case
+0:23            Sequence
+0:23              Pre-Increment (temp 4-component vector of float)
+0:23                'color' (temp 4-component vector of float)
+0:26          Branch: Kill
+0:30      Test condition and select (temp void)
+0:30        Condition
+0:30        Compare Greater Than or Equal (temp bool)
+0:30          'radius' (temp float)
+0:30          Constant:
+0:30            0.750000
+0:30        true case
+0:31        subtract second child into first child (temp 4-component vector of float)
+0:31          'color' (temp 4-component vector of float)
+0:31          Absolute value (global float)
+0:31            divide (temp float)
+0:31              pow (global float)
+0:31                'radius' (temp float)
+0:31                Constant:
+0:31                  16.000000
+0:31              Constant:
+0:31                2.000000
+0:33      move second child to first child (temp 4-component vector of float)
+0:33        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'tex_coord' (smooth in 2-component vector of float)
+
diff --git a/Test/baseResults/doWhileLoop.frag.out b/Test/baseResults/doWhileLoop.frag.out
index 526df03..4cfbea9 100644
--- a/Test/baseResults/doWhileLoop.frag.out
+++ b/Test/baseResults/doWhileLoop.frag.out
@@ -1,65 +1,65 @@
-doWhileLoop.frag

-Shader version: 110

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Sequence

-0:9        move second child to first child (temp 4-component vector of float)

-0:9          'color' (temp 4-component vector of float)

-0:9          'BaseColor' (smooth in 4-component vector of float)

-0:13      Loop with condition not tested first

-0:13        Loop Condition

-0:13        Compare Less Than (temp bool)

-0:13          direct index (temp float)

-0:13            'color' (temp 4-component vector of float)

-0:13            Constant:

-0:13              0 (const int)

-0:13          'd' (uniform float)

-0:13        Loop Body

-0:12        Sequence

-0:12          add second child into first child (temp 4-component vector of float)

-0:12            'color' (temp 4-component vector of float)

-0:12            'bigColor' (uniform 4-component vector of float)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:15        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Sequence

-0:9        move second child to first child (temp 4-component vector of float)

-0:9          'color' (temp 4-component vector of float)

-0:9          'BaseColor' (smooth in 4-component vector of float)

-0:13      Loop with condition not tested first

-0:13        Loop Condition

-0:13        Compare Less Than (temp bool)

-0:13          direct index (temp float)

-0:13            'color' (temp 4-component vector of float)

-0:13            Constant:

-0:13              0 (const int)

-0:13          'd' (uniform float)

-0:13        Loop Body

-0:12        Sequence

-0:12          add second child into first child (temp 4-component vector of float)

-0:12            'color' (temp 4-component vector of float)

-0:12            'bigColor' (uniform 4-component vector of float)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:15        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

+doWhileLoop.frag
+Shader version: 110
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'color' (temp 4-component vector of float)
+0:9          'BaseColor' (smooth in 4-component vector of float)
+0:13      Loop with condition not tested first
+0:13        Loop Condition
+0:13        Compare Less Than (temp bool)
+0:13          direct index (temp float)
+0:13            'color' (temp 4-component vector of float)
+0:13            Constant:
+0:13              0 (const int)
+0:13          'd' (uniform float)
+0:13        Loop Body
+0:12        Sequence
+0:12          add second child into first child (temp 4-component vector of float)
+0:12            'color' (temp 4-component vector of float)
+0:12            'bigColor' (uniform 4-component vector of float)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'color' (temp 4-component vector of float)
+0:9          'BaseColor' (smooth in 4-component vector of float)
+0:13      Loop with condition not tested first
+0:13        Loop Condition
+0:13        Compare Less Than (temp bool)
+0:13          direct index (temp float)
+0:13            'color' (temp 4-component vector of float)
+0:13            Constant:
+0:13              0 (const int)
+0:13          'd' (uniform float)
+0:13        Loop Body
+0:12        Sequence
+0:12          add second child into first child (temp 4-component vector of float)
+0:12            'color' (temp 4-component vector of float)
+0:12            'bigColor' (uniform 4-component vector of float)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
diff --git a/Test/baseResults/earlyReturnDiscard.frag.out b/Test/baseResults/earlyReturnDiscard.frag.out
index 925e168..160b756 100644
--- a/Test/baseResults/earlyReturnDiscard.frag.out
+++ b/Test/baseResults/earlyReturnDiscard.frag.out
@@ -1,257 +1,257 @@
-earlyReturnDiscard.frag

-Shader version: 110

-0:? Sequence

-0:19  Function Definition: main( (global void)

-0:19    Function Parameters: 

-0:21    Sequence

-0:21      Sequence

-0:21        move second child to first child (temp 4-component vector of float)

-0:21          'color' (temp 4-component vector of float)

-0:21          'BaseColor' (smooth in 4-component vector of float)

-0:24      move second child to first child (temp 4-component vector of float)

-0:24        'color2' (temp 4-component vector of float)

-0:24        'otherColor' (uniform 4-component vector of float)

-0:26      Test condition and select (temp void)

-0:26        Condition

-0:26        Compare Greater Than (temp bool)

-0:26          'c' (smooth in float)

-0:26          'd' (uniform float)

-0:26        true case

-0:27        add second child into first child (temp 4-component vector of float)

-0:27          'color' (temp 4-component vector of float)

-0:27          'bigColor' (uniform 4-component vector of float)

-0:26        false case

-0:29        add second child into first child (temp 4-component vector of float)

-0:29          'color' (temp 4-component vector of float)

-0:29          'smallColor' (uniform 4-component vector of float)

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Less Than (temp bool)

-0:31          direct index (temp float)

-0:31            'color' (temp 4-component vector of float)

-0:31            Constant:

-0:31              2 (const int)

-0:31          'minimum' (uniform float)

-0:31        true case

-0:32        Branch: Return

-0:34      Post-Increment (temp float)

-0:34        direct index (temp float)

-0:34          'color' (temp 4-component vector of float)

-0:34          Constant:

-0:34            2 (const int)

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        Compare Greater Than (temp bool)

-0:36          direct index (temp float)

-0:36            'color' (temp 4-component vector of float)

-0:36            Constant:

-0:36              2 (const int)

-0:36          'threshhold' (uniform float)

-0:36        true case

-0:37        Branch: Kill

-0:39      Post-Increment (temp 4-component vector of float)

-0:39        'color' (temp 4-component vector of float)

-0:42      Test condition and select (temp void)

-0:42        Condition

-0:42        Compare Greater Than (temp bool)

-0:42          direct index (temp float)

-0:42            'color' (temp 4-component vector of float)

-0:42            Constant:

-0:42              3 (const int)

-0:42          'threshhold2' (uniform float)

-0:42        true case

-0:43        Sequence

-0:43          Test condition and select (temp void)

-0:43            Condition

-0:43            Compare Greater Than (temp bool)

-0:43              direct index (temp float)

-0:43                'color' (temp 4-component vector of float)

-0:43                Constant:

-0:43                  2 (const int)

-0:43              'threshhold2' (uniform float)

-0:43            true case

-0:44            Branch: Return

-0:43            false case

-0:45            Test condition and select (temp void)

-0:45              Condition

-0:45              'b' (uniform bool)

-0:45              true case

-0:46              Post-Increment (temp float)

-0:46                direct index (temp float)

-0:46                  'color' (temp 4-component vector of float)

-0:46                  Constant:

-0:46                    2 (const int)

-0:45              false case

-0:48              Sequence

-0:48                Test condition and select (temp void)

-0:48                  Condition

-0:48                  Compare Less Than (temp bool)

-0:48                    direct index (temp float)

-0:48                      'color' (temp 4-component vector of float)

-0:48                      Constant:

-0:48                        0 (const int)

-0:48                    'minimum' (uniform float)

-0:48                  true case

-0:49                  Sequence

-0:49                    Branch: Kill

-0:48                  false case

-0:51                  Sequence

-0:51                    Post-Increment (temp 4-component vector of float)

-0:51                      'color' (temp 4-component vector of float)

-0:42        false case

-0:55        Sequence

-0:55          Test condition and select (temp void)

-0:55            Condition

-0:55            'b' (uniform bool)

-0:55            true case

-0:56            Branch: Kill

-0:55            false case

-0:58            Branch: Return

-0:101      move second child to first child (temp 4-component vector of float)

-0:101        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:101        component-wise multiply (temp 4-component vector of float)

-0:101          'color' (temp 4-component vector of float)

-0:101          'color2' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'd' (uniform float)

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'smallColor' (uniform 4-component vector of float)

-0:?     'otherColor' (uniform 4-component vector of float)

-0:?     'c' (smooth in float)

-0:?     'threshhold' (uniform float)

-0:?     'threshhold2' (uniform float)

-0:?     'threshhold3' (uniform float)

-0:?     'minimum' (uniform float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'b' (uniform bool)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:19  Function Definition: main( (global void)

-0:19    Function Parameters: 

-0:21    Sequence

-0:21      Sequence

-0:21        move second child to first child (temp 4-component vector of float)

-0:21          'color' (temp 4-component vector of float)

-0:21          'BaseColor' (smooth in 4-component vector of float)

-0:24      move second child to first child (temp 4-component vector of float)

-0:24        'color2' (temp 4-component vector of float)

-0:24        'otherColor' (uniform 4-component vector of float)

-0:26      Test condition and select (temp void)

-0:26        Condition

-0:26        Compare Greater Than (temp bool)

-0:26          'c' (smooth in float)

-0:26          'd' (uniform float)

-0:26        true case

-0:27        add second child into first child (temp 4-component vector of float)

-0:27          'color' (temp 4-component vector of float)

-0:27          'bigColor' (uniform 4-component vector of float)

-0:26        false case

-0:29        add second child into first child (temp 4-component vector of float)

-0:29          'color' (temp 4-component vector of float)

-0:29          'smallColor' (uniform 4-component vector of float)

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Less Than (temp bool)

-0:31          direct index (temp float)

-0:31            'color' (temp 4-component vector of float)

-0:31            Constant:

-0:31              2 (const int)

-0:31          'minimum' (uniform float)

-0:31        true case

-0:32        Branch: Return

-0:34      Post-Increment (temp float)

-0:34        direct index (temp float)

-0:34          'color' (temp 4-component vector of float)

-0:34          Constant:

-0:34            2 (const int)

-0:36      Test condition and select (temp void)

-0:36        Condition

-0:36        Compare Greater Than (temp bool)

-0:36          direct index (temp float)

-0:36            'color' (temp 4-component vector of float)

-0:36            Constant:

-0:36              2 (const int)

-0:36          'threshhold' (uniform float)

-0:36        true case

-0:37        Branch: Kill

-0:39      Post-Increment (temp 4-component vector of float)

-0:39        'color' (temp 4-component vector of float)

-0:42      Test condition and select (temp void)

-0:42        Condition

-0:42        Compare Greater Than (temp bool)

-0:42          direct index (temp float)

-0:42            'color' (temp 4-component vector of float)

-0:42            Constant:

-0:42              3 (const int)

-0:42          'threshhold2' (uniform float)

-0:42        true case

-0:43        Sequence

-0:43          Test condition and select (temp void)

-0:43            Condition

-0:43            Compare Greater Than (temp bool)

-0:43              direct index (temp float)

-0:43                'color' (temp 4-component vector of float)

-0:43                Constant:

-0:43                  2 (const int)

-0:43              'threshhold2' (uniform float)

-0:43            true case

-0:44            Branch: Return

-0:43            false case

-0:45            Test condition and select (temp void)

-0:45              Condition

-0:45              'b' (uniform bool)

-0:45              true case

-0:46              Post-Increment (temp float)

-0:46                direct index (temp float)

-0:46                  'color' (temp 4-component vector of float)

-0:46                  Constant:

-0:46                    2 (const int)

-0:45              false case

-0:48              Sequence

-0:48                Test condition and select (temp void)

-0:48                  Condition

-0:48                  Compare Less Than (temp bool)

-0:48                    direct index (temp float)

-0:48                      'color' (temp 4-component vector of float)

-0:48                      Constant:

-0:48                        0 (const int)

-0:48                    'minimum' (uniform float)

-0:48                  true case

-0:49                  Sequence

-0:49                    Branch: Kill

-0:48                  false case

-0:51                  Sequence

-0:51                    Post-Increment (temp 4-component vector of float)

-0:51                      'color' (temp 4-component vector of float)

-0:42        false case

-0:55        Sequence

-0:55          Test condition and select (temp void)

-0:55            Condition

-0:55            'b' (uniform bool)

-0:55            true case

-0:56            Branch: Kill

-0:55            false case

-0:58            Branch: Return

-0:101      move second child to first child (temp 4-component vector of float)

-0:101        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:101        component-wise multiply (temp 4-component vector of float)

-0:101          'color' (temp 4-component vector of float)

-0:101          'color2' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'd' (uniform float)

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'smallColor' (uniform 4-component vector of float)

-0:?     'otherColor' (uniform 4-component vector of float)

-0:?     'c' (smooth in float)

-0:?     'threshhold' (uniform float)

-0:?     'threshhold2' (uniform float)

-0:?     'threshhold3' (uniform float)

-0:?     'minimum' (uniform float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'b' (uniform bool)

-

+earlyReturnDiscard.frag
+Shader version: 110
+0:? Sequence
+0:19  Function Definition: main( (global void)
+0:19    Function Parameters: 
+0:21    Sequence
+0:21      Sequence
+0:21        move second child to first child (temp 4-component vector of float)
+0:21          'color' (temp 4-component vector of float)
+0:21          'BaseColor' (smooth in 4-component vector of float)
+0:24      move second child to first child (temp 4-component vector of float)
+0:24        'color2' (temp 4-component vector of float)
+0:24        'otherColor' (uniform 4-component vector of float)
+0:26      Test condition and select (temp void)
+0:26        Condition
+0:26        Compare Greater Than (temp bool)
+0:26          'c' (smooth in float)
+0:26          'd' (uniform float)
+0:26        true case
+0:27        add second child into first child (temp 4-component vector of float)
+0:27          'color' (temp 4-component vector of float)
+0:27          'bigColor' (uniform 4-component vector of float)
+0:26        false case
+0:29        add second child into first child (temp 4-component vector of float)
+0:29          'color' (temp 4-component vector of float)
+0:29          'smallColor' (uniform 4-component vector of float)
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Less Than (temp bool)
+0:31          direct index (temp float)
+0:31            'color' (temp 4-component vector of float)
+0:31            Constant:
+0:31              2 (const int)
+0:31          'minimum' (uniform float)
+0:31        true case
+0:32        Branch: Return
+0:34      Post-Increment (temp float)
+0:34        direct index (temp float)
+0:34          'color' (temp 4-component vector of float)
+0:34          Constant:
+0:34            2 (const int)
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        Compare Greater Than (temp bool)
+0:36          direct index (temp float)
+0:36            'color' (temp 4-component vector of float)
+0:36            Constant:
+0:36              2 (const int)
+0:36          'threshhold' (uniform float)
+0:36        true case
+0:37        Branch: Kill
+0:39      Post-Increment (temp 4-component vector of float)
+0:39        'color' (temp 4-component vector of float)
+0:42      Test condition and select (temp void)
+0:42        Condition
+0:42        Compare Greater Than (temp bool)
+0:42          direct index (temp float)
+0:42            'color' (temp 4-component vector of float)
+0:42            Constant:
+0:42              3 (const int)
+0:42          'threshhold2' (uniform float)
+0:42        true case
+0:43        Sequence
+0:43          Test condition and select (temp void)
+0:43            Condition
+0:43            Compare Greater Than (temp bool)
+0:43              direct index (temp float)
+0:43                'color' (temp 4-component vector of float)
+0:43                Constant:
+0:43                  2 (const int)
+0:43              'threshhold2' (uniform float)
+0:43            true case
+0:44            Branch: Return
+0:43            false case
+0:45            Test condition and select (temp void)
+0:45              Condition
+0:45              'b' (uniform bool)
+0:45              true case
+0:46              Post-Increment (temp float)
+0:46                direct index (temp float)
+0:46                  'color' (temp 4-component vector of float)
+0:46                  Constant:
+0:46                    2 (const int)
+0:45              false case
+0:48              Sequence
+0:48                Test condition and select (temp void)
+0:48                  Condition
+0:48                  Compare Less Than (temp bool)
+0:48                    direct index (temp float)
+0:48                      'color' (temp 4-component vector of float)
+0:48                      Constant:
+0:48                        0 (const int)
+0:48                    'minimum' (uniform float)
+0:48                  true case
+0:49                  Sequence
+0:49                    Branch: Kill
+0:48                  false case
+0:51                  Sequence
+0:51                    Post-Increment (temp 4-component vector of float)
+0:51                      'color' (temp 4-component vector of float)
+0:42        false case
+0:55        Sequence
+0:55          Test condition and select (temp void)
+0:55            Condition
+0:55            'b' (uniform bool)
+0:55            true case
+0:56            Branch: Kill
+0:55            false case
+0:58            Branch: Return
+0:101      move second child to first child (temp 4-component vector of float)
+0:101        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:101        component-wise multiply (temp 4-component vector of float)
+0:101          'color' (temp 4-component vector of float)
+0:101          'color2' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'd' (uniform float)
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'smallColor' (uniform 4-component vector of float)
+0:?     'otherColor' (uniform 4-component vector of float)
+0:?     'c' (smooth in float)
+0:?     'threshhold' (uniform float)
+0:?     'threshhold2' (uniform float)
+0:?     'threshhold3' (uniform float)
+0:?     'minimum' (uniform float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'b' (uniform bool)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:19  Function Definition: main( (global void)
+0:19    Function Parameters: 
+0:21    Sequence
+0:21      Sequence
+0:21        move second child to first child (temp 4-component vector of float)
+0:21          'color' (temp 4-component vector of float)
+0:21          'BaseColor' (smooth in 4-component vector of float)
+0:24      move second child to first child (temp 4-component vector of float)
+0:24        'color2' (temp 4-component vector of float)
+0:24        'otherColor' (uniform 4-component vector of float)
+0:26      Test condition and select (temp void)
+0:26        Condition
+0:26        Compare Greater Than (temp bool)
+0:26          'c' (smooth in float)
+0:26          'd' (uniform float)
+0:26        true case
+0:27        add second child into first child (temp 4-component vector of float)
+0:27          'color' (temp 4-component vector of float)
+0:27          'bigColor' (uniform 4-component vector of float)
+0:26        false case
+0:29        add second child into first child (temp 4-component vector of float)
+0:29          'color' (temp 4-component vector of float)
+0:29          'smallColor' (uniform 4-component vector of float)
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Less Than (temp bool)
+0:31          direct index (temp float)
+0:31            'color' (temp 4-component vector of float)
+0:31            Constant:
+0:31              2 (const int)
+0:31          'minimum' (uniform float)
+0:31        true case
+0:32        Branch: Return
+0:34      Post-Increment (temp float)
+0:34        direct index (temp float)
+0:34          'color' (temp 4-component vector of float)
+0:34          Constant:
+0:34            2 (const int)
+0:36      Test condition and select (temp void)
+0:36        Condition
+0:36        Compare Greater Than (temp bool)
+0:36          direct index (temp float)
+0:36            'color' (temp 4-component vector of float)
+0:36            Constant:
+0:36              2 (const int)
+0:36          'threshhold' (uniform float)
+0:36        true case
+0:37        Branch: Kill
+0:39      Post-Increment (temp 4-component vector of float)
+0:39        'color' (temp 4-component vector of float)
+0:42      Test condition and select (temp void)
+0:42        Condition
+0:42        Compare Greater Than (temp bool)
+0:42          direct index (temp float)
+0:42            'color' (temp 4-component vector of float)
+0:42            Constant:
+0:42              3 (const int)
+0:42          'threshhold2' (uniform float)
+0:42        true case
+0:43        Sequence
+0:43          Test condition and select (temp void)
+0:43            Condition
+0:43            Compare Greater Than (temp bool)
+0:43              direct index (temp float)
+0:43                'color' (temp 4-component vector of float)
+0:43                Constant:
+0:43                  2 (const int)
+0:43              'threshhold2' (uniform float)
+0:43            true case
+0:44            Branch: Return
+0:43            false case
+0:45            Test condition and select (temp void)
+0:45              Condition
+0:45              'b' (uniform bool)
+0:45              true case
+0:46              Post-Increment (temp float)
+0:46                direct index (temp float)
+0:46                  'color' (temp 4-component vector of float)
+0:46                  Constant:
+0:46                    2 (const int)
+0:45              false case
+0:48              Sequence
+0:48                Test condition and select (temp void)
+0:48                  Condition
+0:48                  Compare Less Than (temp bool)
+0:48                    direct index (temp float)
+0:48                      'color' (temp 4-component vector of float)
+0:48                      Constant:
+0:48                        0 (const int)
+0:48                    'minimum' (uniform float)
+0:48                  true case
+0:49                  Sequence
+0:49                    Branch: Kill
+0:48                  false case
+0:51                  Sequence
+0:51                    Post-Increment (temp 4-component vector of float)
+0:51                      'color' (temp 4-component vector of float)
+0:42        false case
+0:55        Sequence
+0:55          Test condition and select (temp void)
+0:55            Condition
+0:55            'b' (uniform bool)
+0:55            true case
+0:56            Branch: Kill
+0:55            false case
+0:58            Branch: Return
+0:101      move second child to first child (temp 4-component vector of float)
+0:101        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:101        component-wise multiply (temp 4-component vector of float)
+0:101          'color' (temp 4-component vector of float)
+0:101          'color2' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'd' (uniform float)
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'smallColor' (uniform 4-component vector of float)
+0:?     'otherColor' (uniform 4-component vector of float)
+0:?     'c' (smooth in float)
+0:?     'threshhold' (uniform float)
+0:?     'threshhold2' (uniform float)
+0:?     'threshhold3' (uniform float)
+0:?     'minimum' (uniform float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'b' (uniform bool)
+
diff --git a/Test/baseResults/empty.frag.out b/Test/baseResults/empty.frag.out
index dadf076..d3c244a 100644
--- a/Test/baseResults/empty.frag.out
+++ b/Test/baseResults/empty.frag.out
@@ -1,28 +1,28 @@
-empty.frag

-Shader version: 100

-0:? Sequence

-0:?   Linker Objects

-

-empty2.frag

-Shader version: 100

-0:? Sequence

-0:?   Linker Objects

-

-empty3.frag

-Shader version: 110

-0:? Sequence

-0:?   Linker Objects

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders

-

-ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders

-

-ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point

-

-Shader version: 110

-0:? Sequence

-0:?   Linker Objects

-

+empty.frag
+Shader version: 100
+0:? Sequence
+0:?   Linker Objects
+
+empty2.frag
+Shader version: 100
+0:? Sequence
+0:?   Linker Objects
+
+empty3.frag
+Shader version: 110
+0:? Sequence
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders
+
+ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 110
+0:? Sequence
+0:?   Linker Objects
+
diff --git a/Test/baseResults/errors.frag.out b/Test/baseResults/errors.frag.out
index 1d7939b..f1e06d2 100644
--- a/Test/baseResults/errors.frag.out
+++ b/Test/baseResults/errors.frag.out
@@ -1,32 +1,32 @@
-errors.frag

-ERROR: 0:1: 'main' : function cannot take any parameter(s) 

-ERROR: 0:1: 'int' :  main function cannot return a value

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:1  Function Definition: main(i1; (global mediump int)

-0:1    Function Parameters: 

-0:1      'foo' (in mediump int)

-0:3    Sequence

-0:3      Branch: Return with expression

-0:3        Constant:

-0:3          1 (const int)

-0:?   Linker Objects

-

-

-Linked fragment stage:

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:1  Function Definition: main(i1; (global mediump int)

-0:1    Function Parameters: 

-0:1      'foo' (in mediump int)

-0:3    Sequence

-0:3      Branch: Return with expression

-0:3        Constant:

-0:3          1 (const int)

-0:?   Linker Objects

-

+errors.frag
+ERROR: 0:1: 'main' : function cannot take any parameter(s) 
+ERROR: 0:1: 'int' :  main function cannot return a value
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:1  Function Definition: main(i1; (global mediump int)
+0:1    Function Parameters: 
+0:1      'foo' (in mediump int)
+0:3    Sequence
+0:3      Branch: Return with expression
+0:3        Constant:
+0:3          1 (const int)
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:1  Function Definition: main(i1; (global mediump int)
+0:1    Function Parameters: 
+0:1      'foo' (in mediump int)
+0:3    Sequence
+0:3      Branch: Return with expression
+0:3        Constant:
+0:3          1 (const int)
+0:?   Linker Objects
+
diff --git a/Test/baseResults/flowControl.frag.out b/Test/baseResults/flowControl.frag.out
index ddeb820..324da06 100644
--- a/Test/baseResults/flowControl.frag.out
+++ b/Test/baseResults/flowControl.frag.out
@@ -1,81 +1,81 @@
-flowControl.frag

-Shader version: 120

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'color' (temp 4-component vector of float)

-0:12          'BaseColor' (smooth in 4-component vector of float)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'color2' (temp 4-component vector of float)

-0:15        'otherColor' (uniform 4-component vector of float)

-0:17      Test condition and select (temp void)

-0:17        Condition

-0:17        Compare Greater Than (temp bool)

-0:17          'c' (smooth in float)

-0:17          'd' (uniform float)

-0:17        true case

-0:18        add second child into first child (temp 4-component vector of float)

-0:18          'color' (temp 4-component vector of float)

-0:18          'bigColor' (uniform 4-component vector of float)

-0:17        false case

-0:20        add second child into first child (temp 4-component vector of float)

-0:20          'color' (temp 4-component vector of float)

-0:20          'smallColor' (uniform 4-component vector of float)

-0:22      move second child to first child (temp 4-component vector of float)

-0:22        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:22        component-wise multiply (temp 4-component vector of float)

-0:22          'color' (temp 4-component vector of float)

-0:22          'color2' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'd' (uniform float)

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'smallColor' (uniform 4-component vector of float)

-0:?     'otherColor' (uniform 4-component vector of float)

-0:?     'c' (smooth in float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 120

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'color' (temp 4-component vector of float)

-0:12          'BaseColor' (smooth in 4-component vector of float)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'color2' (temp 4-component vector of float)

-0:15        'otherColor' (uniform 4-component vector of float)

-0:17      Test condition and select (temp void)

-0:17        Condition

-0:17        Compare Greater Than (temp bool)

-0:17          'c' (smooth in float)

-0:17          'd' (uniform float)

-0:17        true case

-0:18        add second child into first child (temp 4-component vector of float)

-0:18          'color' (temp 4-component vector of float)

-0:18          'bigColor' (uniform 4-component vector of float)

-0:17        false case

-0:20        add second child into first child (temp 4-component vector of float)

-0:20          'color' (temp 4-component vector of float)

-0:20          'smallColor' (uniform 4-component vector of float)

-0:22      move second child to first child (temp 4-component vector of float)

-0:22        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:22        component-wise multiply (temp 4-component vector of float)

-0:22          'color' (temp 4-component vector of float)

-0:22          'color2' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'd' (uniform float)

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'smallColor' (uniform 4-component vector of float)

-0:?     'otherColor' (uniform 4-component vector of float)

-0:?     'c' (smooth in float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-

+flowControl.frag
+Shader version: 120
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'color' (temp 4-component vector of float)
+0:12          'BaseColor' (smooth in 4-component vector of float)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'color2' (temp 4-component vector of float)
+0:15        'otherColor' (uniform 4-component vector of float)
+0:17      Test condition and select (temp void)
+0:17        Condition
+0:17        Compare Greater Than (temp bool)
+0:17          'c' (smooth in float)
+0:17          'd' (uniform float)
+0:17        true case
+0:18        add second child into first child (temp 4-component vector of float)
+0:18          'color' (temp 4-component vector of float)
+0:18          'bigColor' (uniform 4-component vector of float)
+0:17        false case
+0:20        add second child into first child (temp 4-component vector of float)
+0:20          'color' (temp 4-component vector of float)
+0:20          'smallColor' (uniform 4-component vector of float)
+0:22      move second child to first child (temp 4-component vector of float)
+0:22        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:22        component-wise multiply (temp 4-component vector of float)
+0:22          'color' (temp 4-component vector of float)
+0:22          'color2' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'd' (uniform float)
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'smallColor' (uniform 4-component vector of float)
+0:?     'otherColor' (uniform 4-component vector of float)
+0:?     'c' (smooth in float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'color' (temp 4-component vector of float)
+0:12          'BaseColor' (smooth in 4-component vector of float)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'color2' (temp 4-component vector of float)
+0:15        'otherColor' (uniform 4-component vector of float)
+0:17      Test condition and select (temp void)
+0:17        Condition
+0:17        Compare Greater Than (temp bool)
+0:17          'c' (smooth in float)
+0:17          'd' (uniform float)
+0:17        true case
+0:18        add second child into first child (temp 4-component vector of float)
+0:18          'color' (temp 4-component vector of float)
+0:18          'bigColor' (uniform 4-component vector of float)
+0:17        false case
+0:20        add second child into first child (temp 4-component vector of float)
+0:20          'color' (temp 4-component vector of float)
+0:20          'smallColor' (uniform 4-component vector of float)
+0:22      move second child to first child (temp 4-component vector of float)
+0:22        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:22        component-wise multiply (temp 4-component vector of float)
+0:22          'color' (temp 4-component vector of float)
+0:22          'color2' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'd' (uniform float)
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'smallColor' (uniform 4-component vector of float)
+0:?     'otherColor' (uniform 4-component vector of float)
+0:?     'c' (smooth in float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/forLoop.frag.out b/Test/baseResults/forLoop.frag.out
index ace2158..babd30e 100644
--- a/Test/baseResults/forLoop.frag.out
+++ b/Test/baseResults/forLoop.frag.out
@@ -1,361 +1,361 @@
-forLoop.frag

-Shader version: 130

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'color' (temp 4-component vector of float)

-0:12          'BaseColor' (smooth in 4-component vector of float)

-0:14      Sequence

-0:14        Sequence

-0:14          move second child to first child (temp int)

-0:14            'i' (temp int)

-0:14            Constant:

-0:14              0 (const int)

-0:14        Loop with condition tested first

-0:14          Loop Condition

-0:14          Compare Less Than (temp bool)

-0:14            'i' (temp int)

-0:14            'Count' (uniform int)

-0:14          Loop Body

-0:15          Sequence

-0:15            add second child into first child (temp 4-component vector of float)

-0:15              'color' (temp 4-component vector of float)

-0:15              'bigColor' (uniform 4-component vector of float)

-0:14          Loop Terminal Expression

-0:14          Pre-Increment (temp int)

-0:14            'i' (temp int)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:18        'color' (temp 4-component vector of float)

-0:20      Sequence

-0:20        move second child to first child (temp float)

-0:20          'sum' (temp float)

-0:20          Constant:

-0:20            0.000000

-0:21      Sequence

-0:21        Sequence

-0:21          move second child to first child (temp int)

-0:21            'i' (temp int)

-0:21            Constant:

-0:21              0 (const int)

-0:21        Loop with condition tested first

-0:21          Loop Condition

-0:21          Compare Less Than (temp bool)

-0:21            'i' (temp int)

-0:21            Constant:

-0:21              4 (const int)

-0:21          Loop Body

-0:22          add second child into first child (temp float)

-0:22            'sum' (temp float)

-0:22            Convert uint to float (temp float)

-0:22              indirect index (temp uint)

-0:22                'v4' (uniform 4-component vector of uint)

-0:22                'i' (temp int)

-0:21          Loop Terminal Expression

-0:21          Pre-Increment (temp int)

-0:21            'i' (temp int)

-0:26      Sequence

-0:26        Sequence

-0:26          move second child to first child (temp int)

-0:26            'i' (temp int)

-0:26            Constant:

-0:26              0 (const int)

-0:26        Loop with condition tested first

-0:26          Loop Condition

-0:26          Compare Less Than (temp bool)

-0:26            'i' (temp int)

-0:26            Constant:

-0:26              4 (const int)

-0:26          Loop Body

-0:27          move second child to first child (temp float)

-0:27            indirect index (temp float)

-0:27              'tv4' (temp 4-component vector of float)

-0:27              'i' (temp int)

-0:27            Convert uint to float (temp float)

-0:27              component-wise multiply (temp uint)

-0:27                indirect index (temp uint)

-0:27                  'v4' (uniform 4-component vector of uint)

-0:27                  'i' (temp int)

-0:27                Constant:

-0:27                  4 (const uint)

-0:26          Loop Terminal Expression

-0:26          Pre-Increment (temp int)

-0:26            'i' (temp int)

-0:29      add second child into first child (temp 4-component vector of float)

-0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:29        add (temp 4-component vector of float)

-0:29          Construct vec4 (temp 4-component vector of float)

-0:29            'sum' (temp float)

-0:29          'tv4' (temp 4-component vector of float)

-0:32      move second child to first child (temp 3-component vector of float)

-0:32        vector swizzle (temp 3-component vector of float)

-0:32          'r' (temp 4-component vector of float)

-0:32          Sequence

-0:32            Constant:

-0:32              0 (const int)

-0:32            Constant:

-0:32              1 (const int)

-0:32            Constant:

-0:32              2 (const int)

-0:32        vector swizzle (temp 3-component vector of float)

-0:32          'BaseColor' (smooth in 4-component vector of float)

-0:32          Sequence

-0:32            Constant:

-0:32              0 (const int)

-0:32            Constant:

-0:32              1 (const int)

-0:32            Constant:

-0:32              2 (const int)

-0:34      Sequence

-0:34        Sequence

-0:34          move second child to first child (temp int)

-0:34            'i' (temp int)

-0:34            Constant:

-0:34              0 (const int)

-0:34        Loop with condition tested first

-0:34          Loop Condition

-0:34          Compare Less Than (temp bool)

-0:34            'i' (temp int)

-0:34            'Count' (uniform int)

-0:34          Loop Body

-0:35          move second child to first child (temp float)

-0:35            direct index (temp float)

-0:35              'r' (temp 4-component vector of float)

-0:35              Constant:

-0:35                3 (const int)

-0:35            'f' (smooth in float)

-0:34          Loop Terminal Expression

-0:34          Pre-Increment (temp int)

-0:34            'i' (temp int)

-0:37      add second child into first child (temp 3-component vector of float)

-0:37        vector swizzle (temp 3-component vector of float)

-0:37          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:37          Sequence

-0:37            Constant:

-0:37              0 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:37            Constant:

-0:37              2 (const int)

-0:37        vector swizzle (temp 3-component vector of float)

-0:37          'r' (temp 4-component vector of float)

-0:37          Sequence

-0:37            Constant:

-0:37              0 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:37            Constant:

-0:37              2 (const int)

-0:39      Sequence

-0:39        Sequence

-0:39          move second child to first child (temp int)

-0:39            'i' (temp int)

-0:39            Constant:

-0:39              0 (const int)

-0:39        Loop with condition tested first

-0:39          Loop Condition

-0:39          Compare Less Than (temp bool)

-0:39            'i' (temp int)

-0:39            Constant:

-0:39              16 (const int)

-0:39          Loop Body

-0:40          vector scale second child into first child (temp 4-component vector of float)

-0:40            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:40            'f' (smooth in float)

-0:39          Loop Terminal Expression

-0:39          add second child into first child (temp int)

-0:39            'i' (temp int)

-0:39            Constant:

-0:39              4 (const int)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'f' (smooth in float)

-0:?     'Count' (uniform int)

-0:?     'v4' (uniform 4-component vector of uint)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'color' (temp 4-component vector of float)

-0:12          'BaseColor' (smooth in 4-component vector of float)

-0:14      Sequence

-0:14        Sequence

-0:14          move second child to first child (temp int)

-0:14            'i' (temp int)

-0:14            Constant:

-0:14              0 (const int)

-0:14        Loop with condition tested first

-0:14          Loop Condition

-0:14          Compare Less Than (temp bool)

-0:14            'i' (temp int)

-0:14            'Count' (uniform int)

-0:14          Loop Body

-0:15          Sequence

-0:15            add second child into first child (temp 4-component vector of float)

-0:15              'color' (temp 4-component vector of float)

-0:15              'bigColor' (uniform 4-component vector of float)

-0:14          Loop Terminal Expression

-0:14          Pre-Increment (temp int)

-0:14            'i' (temp int)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:18        'color' (temp 4-component vector of float)

-0:20      Sequence

-0:20        move second child to first child (temp float)

-0:20          'sum' (temp float)

-0:20          Constant:

-0:20            0.000000

-0:21      Sequence

-0:21        Sequence

-0:21          move second child to first child (temp int)

-0:21            'i' (temp int)

-0:21            Constant:

-0:21              0 (const int)

-0:21        Loop with condition tested first

-0:21          Loop Condition

-0:21          Compare Less Than (temp bool)

-0:21            'i' (temp int)

-0:21            Constant:

-0:21              4 (const int)

-0:21          Loop Body

-0:22          add second child into first child (temp float)

-0:22            'sum' (temp float)

-0:22            Convert uint to float (temp float)

-0:22              indirect index (temp uint)

-0:22                'v4' (uniform 4-component vector of uint)

-0:22                'i' (temp int)

-0:21          Loop Terminal Expression

-0:21          Pre-Increment (temp int)

-0:21            'i' (temp int)

-0:26      Sequence

-0:26        Sequence

-0:26          move second child to first child (temp int)

-0:26            'i' (temp int)

-0:26            Constant:

-0:26              0 (const int)

-0:26        Loop with condition tested first

-0:26          Loop Condition

-0:26          Compare Less Than (temp bool)

-0:26            'i' (temp int)

-0:26            Constant:

-0:26              4 (const int)

-0:26          Loop Body

-0:27          move second child to first child (temp float)

-0:27            indirect index (temp float)

-0:27              'tv4' (temp 4-component vector of float)

-0:27              'i' (temp int)

-0:27            Convert uint to float (temp float)

-0:27              component-wise multiply (temp uint)

-0:27                indirect index (temp uint)

-0:27                  'v4' (uniform 4-component vector of uint)

-0:27                  'i' (temp int)

-0:27                Constant:

-0:27                  4 (const uint)

-0:26          Loop Terminal Expression

-0:26          Pre-Increment (temp int)

-0:26            'i' (temp int)

-0:29      add second child into first child (temp 4-component vector of float)

-0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:29        add (temp 4-component vector of float)

-0:29          Construct vec4 (temp 4-component vector of float)

-0:29            'sum' (temp float)

-0:29          'tv4' (temp 4-component vector of float)

-0:32      move second child to first child (temp 3-component vector of float)

-0:32        vector swizzle (temp 3-component vector of float)

-0:32          'r' (temp 4-component vector of float)

-0:32          Sequence

-0:32            Constant:

-0:32              0 (const int)

-0:32            Constant:

-0:32              1 (const int)

-0:32            Constant:

-0:32              2 (const int)

-0:32        vector swizzle (temp 3-component vector of float)

-0:32          'BaseColor' (smooth in 4-component vector of float)

-0:32          Sequence

-0:32            Constant:

-0:32              0 (const int)

-0:32            Constant:

-0:32              1 (const int)

-0:32            Constant:

-0:32              2 (const int)

-0:34      Sequence

-0:34        Sequence

-0:34          move second child to first child (temp int)

-0:34            'i' (temp int)

-0:34            Constant:

-0:34              0 (const int)

-0:34        Loop with condition tested first

-0:34          Loop Condition

-0:34          Compare Less Than (temp bool)

-0:34            'i' (temp int)

-0:34            'Count' (uniform int)

-0:34          Loop Body

-0:35          move second child to first child (temp float)

-0:35            direct index (temp float)

-0:35              'r' (temp 4-component vector of float)

-0:35              Constant:

-0:35                3 (const int)

-0:35            'f' (smooth in float)

-0:34          Loop Terminal Expression

-0:34          Pre-Increment (temp int)

-0:34            'i' (temp int)

-0:37      add second child into first child (temp 3-component vector of float)

-0:37        vector swizzle (temp 3-component vector of float)

-0:37          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:37          Sequence

-0:37            Constant:

-0:37              0 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:37            Constant:

-0:37              2 (const int)

-0:37        vector swizzle (temp 3-component vector of float)

-0:37          'r' (temp 4-component vector of float)

-0:37          Sequence

-0:37            Constant:

-0:37              0 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:37            Constant:

-0:37              2 (const int)

-0:39      Sequence

-0:39        Sequence

-0:39          move second child to first child (temp int)

-0:39            'i' (temp int)

-0:39            Constant:

-0:39              0 (const int)

-0:39        Loop with condition tested first

-0:39          Loop Condition

-0:39          Compare Less Than (temp bool)

-0:39            'i' (temp int)

-0:39            Constant:

-0:39              16 (const int)

-0:39          Loop Body

-0:40          vector scale second child into first child (temp 4-component vector of float)

-0:40            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:40            'f' (smooth in float)

-0:39          Loop Terminal Expression

-0:39          add second child into first child (temp int)

-0:39            'i' (temp int)

-0:39            Constant:

-0:39              4 (const int)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'f' (smooth in float)

-0:?     'Count' (uniform int)

-0:?     'v4' (uniform 4-component vector of uint)

-

+forLoop.frag
+Shader version: 130
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'color' (temp 4-component vector of float)
+0:12          'BaseColor' (smooth in 4-component vector of float)
+0:14      Sequence
+0:14        Sequence
+0:14          move second child to first child (temp int)
+0:14            'i' (temp int)
+0:14            Constant:
+0:14              0 (const int)
+0:14        Loop with condition tested first
+0:14          Loop Condition
+0:14          Compare Less Than (temp bool)
+0:14            'i' (temp int)
+0:14            'Count' (uniform int)
+0:14          Loop Body
+0:15          Sequence
+0:15            add second child into first child (temp 4-component vector of float)
+0:15              'color' (temp 4-component vector of float)
+0:15              'bigColor' (uniform 4-component vector of float)
+0:14          Loop Terminal Expression
+0:14          Pre-Increment (temp int)
+0:14            'i' (temp int)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18        'color' (temp 4-component vector of float)
+0:20      Sequence
+0:20        move second child to first child (temp float)
+0:20          'sum' (temp float)
+0:20          Constant:
+0:20            0.000000
+0:21      Sequence
+0:21        Sequence
+0:21          move second child to first child (temp int)
+0:21            'i' (temp int)
+0:21            Constant:
+0:21              0 (const int)
+0:21        Loop with condition tested first
+0:21          Loop Condition
+0:21          Compare Less Than (temp bool)
+0:21            'i' (temp int)
+0:21            Constant:
+0:21              4 (const int)
+0:21          Loop Body
+0:22          add second child into first child (temp float)
+0:22            'sum' (temp float)
+0:22            Convert uint to float (temp float)
+0:22              indirect index (temp uint)
+0:22                'v4' (uniform 4-component vector of uint)
+0:22                'i' (temp int)
+0:21          Loop Terminal Expression
+0:21          Pre-Increment (temp int)
+0:21            'i' (temp int)
+0:26      Sequence
+0:26        Sequence
+0:26          move second child to first child (temp int)
+0:26            'i' (temp int)
+0:26            Constant:
+0:26              0 (const int)
+0:26        Loop with condition tested first
+0:26          Loop Condition
+0:26          Compare Less Than (temp bool)
+0:26            'i' (temp int)
+0:26            Constant:
+0:26              4 (const int)
+0:26          Loop Body
+0:27          move second child to first child (temp float)
+0:27            indirect index (temp float)
+0:27              'tv4' (temp 4-component vector of float)
+0:27              'i' (temp int)
+0:27            Convert uint to float (temp float)
+0:27              component-wise multiply (temp uint)
+0:27                indirect index (temp uint)
+0:27                  'v4' (uniform 4-component vector of uint)
+0:27                  'i' (temp int)
+0:27                Constant:
+0:27                  4 (const uint)
+0:26          Loop Terminal Expression
+0:26          Pre-Increment (temp int)
+0:26            'i' (temp int)
+0:29      add second child into first child (temp 4-component vector of float)
+0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29        add (temp 4-component vector of float)
+0:29          Construct vec4 (temp 4-component vector of float)
+0:29            'sum' (temp float)
+0:29          'tv4' (temp 4-component vector of float)
+0:32      move second child to first child (temp 3-component vector of float)
+0:32        vector swizzle (temp 3-component vector of float)
+0:32          'r' (temp 4-component vector of float)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        vector swizzle (temp 3-component vector of float)
+0:32          'BaseColor' (smooth in 4-component vector of float)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:34      Sequence
+0:34        Sequence
+0:34          move second child to first child (temp int)
+0:34            'i' (temp int)
+0:34            Constant:
+0:34              0 (const int)
+0:34        Loop with condition tested first
+0:34          Loop Condition
+0:34          Compare Less Than (temp bool)
+0:34            'i' (temp int)
+0:34            'Count' (uniform int)
+0:34          Loop Body
+0:35          move second child to first child (temp float)
+0:35            direct index (temp float)
+0:35              'r' (temp 4-component vector of float)
+0:35              Constant:
+0:35                3 (const int)
+0:35            'f' (smooth in float)
+0:34          Loop Terminal Expression
+0:34          Pre-Increment (temp int)
+0:34            'i' (temp int)
+0:37      add second child into first child (temp 3-component vector of float)
+0:37        vector swizzle (temp 3-component vector of float)
+0:37          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        vector swizzle (temp 3-component vector of float)
+0:37          'r' (temp 4-component vector of float)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:39      Sequence
+0:39        Sequence
+0:39          move second child to first child (temp int)
+0:39            'i' (temp int)
+0:39            Constant:
+0:39              0 (const int)
+0:39        Loop with condition tested first
+0:39          Loop Condition
+0:39          Compare Less Than (temp bool)
+0:39            'i' (temp int)
+0:39            Constant:
+0:39              16 (const int)
+0:39          Loop Body
+0:40          vector scale second child into first child (temp 4-component vector of float)
+0:40            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40            'f' (smooth in float)
+0:39          Loop Terminal Expression
+0:39          add second child into first child (temp int)
+0:39            'i' (temp int)
+0:39            Constant:
+0:39              4 (const int)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'f' (smooth in float)
+0:?     'Count' (uniform int)
+0:?     'v4' (uniform 4-component vector of uint)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'color' (temp 4-component vector of float)
+0:12          'BaseColor' (smooth in 4-component vector of float)
+0:14      Sequence
+0:14        Sequence
+0:14          move second child to first child (temp int)
+0:14            'i' (temp int)
+0:14            Constant:
+0:14              0 (const int)
+0:14        Loop with condition tested first
+0:14          Loop Condition
+0:14          Compare Less Than (temp bool)
+0:14            'i' (temp int)
+0:14            'Count' (uniform int)
+0:14          Loop Body
+0:15          Sequence
+0:15            add second child into first child (temp 4-component vector of float)
+0:15              'color' (temp 4-component vector of float)
+0:15              'bigColor' (uniform 4-component vector of float)
+0:14          Loop Terminal Expression
+0:14          Pre-Increment (temp int)
+0:14            'i' (temp int)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18        'color' (temp 4-component vector of float)
+0:20      Sequence
+0:20        move second child to first child (temp float)
+0:20          'sum' (temp float)
+0:20          Constant:
+0:20            0.000000
+0:21      Sequence
+0:21        Sequence
+0:21          move second child to first child (temp int)
+0:21            'i' (temp int)
+0:21            Constant:
+0:21              0 (const int)
+0:21        Loop with condition tested first
+0:21          Loop Condition
+0:21          Compare Less Than (temp bool)
+0:21            'i' (temp int)
+0:21            Constant:
+0:21              4 (const int)
+0:21          Loop Body
+0:22          add second child into first child (temp float)
+0:22            'sum' (temp float)
+0:22            Convert uint to float (temp float)
+0:22              indirect index (temp uint)
+0:22                'v4' (uniform 4-component vector of uint)
+0:22                'i' (temp int)
+0:21          Loop Terminal Expression
+0:21          Pre-Increment (temp int)
+0:21            'i' (temp int)
+0:26      Sequence
+0:26        Sequence
+0:26          move second child to first child (temp int)
+0:26            'i' (temp int)
+0:26            Constant:
+0:26              0 (const int)
+0:26        Loop with condition tested first
+0:26          Loop Condition
+0:26          Compare Less Than (temp bool)
+0:26            'i' (temp int)
+0:26            Constant:
+0:26              4 (const int)
+0:26          Loop Body
+0:27          move second child to first child (temp float)
+0:27            indirect index (temp float)
+0:27              'tv4' (temp 4-component vector of float)
+0:27              'i' (temp int)
+0:27            Convert uint to float (temp float)
+0:27              component-wise multiply (temp uint)
+0:27                indirect index (temp uint)
+0:27                  'v4' (uniform 4-component vector of uint)
+0:27                  'i' (temp int)
+0:27                Constant:
+0:27                  4 (const uint)
+0:26          Loop Terminal Expression
+0:26          Pre-Increment (temp int)
+0:26            'i' (temp int)
+0:29      add second child into first child (temp 4-component vector of float)
+0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29        add (temp 4-component vector of float)
+0:29          Construct vec4 (temp 4-component vector of float)
+0:29            'sum' (temp float)
+0:29          'tv4' (temp 4-component vector of float)
+0:32      move second child to first child (temp 3-component vector of float)
+0:32        vector swizzle (temp 3-component vector of float)
+0:32          'r' (temp 4-component vector of float)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        vector swizzle (temp 3-component vector of float)
+0:32          'BaseColor' (smooth in 4-component vector of float)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:34      Sequence
+0:34        Sequence
+0:34          move second child to first child (temp int)
+0:34            'i' (temp int)
+0:34            Constant:
+0:34              0 (const int)
+0:34        Loop with condition tested first
+0:34          Loop Condition
+0:34          Compare Less Than (temp bool)
+0:34            'i' (temp int)
+0:34            'Count' (uniform int)
+0:34          Loop Body
+0:35          move second child to first child (temp float)
+0:35            direct index (temp float)
+0:35              'r' (temp 4-component vector of float)
+0:35              Constant:
+0:35                3 (const int)
+0:35            'f' (smooth in float)
+0:34          Loop Terminal Expression
+0:34          Pre-Increment (temp int)
+0:34            'i' (temp int)
+0:37      add second child into first child (temp 3-component vector of float)
+0:37        vector swizzle (temp 3-component vector of float)
+0:37          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        vector swizzle (temp 3-component vector of float)
+0:37          'r' (temp 4-component vector of float)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:39      Sequence
+0:39        Sequence
+0:39          move second child to first child (temp int)
+0:39            'i' (temp int)
+0:39            Constant:
+0:39              0 (const int)
+0:39        Loop with condition tested first
+0:39          Loop Condition
+0:39          Compare Less Than (temp bool)
+0:39            'i' (temp int)
+0:39            Constant:
+0:39              16 (const int)
+0:39          Loop Body
+0:40          vector scale second child into first child (temp 4-component vector of float)
+0:40            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40            'f' (smooth in float)
+0:39          Loop Terminal Expression
+0:39          add second child into first child (temp int)
+0:39            'i' (temp int)
+0:39            Constant:
+0:39              4 (const int)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'f' (smooth in float)
+0:?     'Count' (uniform int)
+0:?     'v4' (uniform 4-component vector of uint)
+
diff --git a/Test/baseResults/forwardRef.frag.out b/Test/baseResults/forwardRef.frag.out
index a39ed20..357cc2b 100644
--- a/Test/baseResults/forwardRef.frag.out
+++ b/Test/baseResults/forwardRef.frag.out
@@ -1,125 +1,125 @@
-forwardRef.frag

-Shader version: 110

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      Sequence

-0:13        move second child to first child (temp 4-component vector of float)

-0:13          'color' (temp 4-component vector of float)

-0:13          Construct vec4 (temp 4-component vector of float)

-0:13            Function Call: foo(vf4; (global float)

-0:13              'BaseColor' (smooth in 4-component vector of float)

-0:15      Function Call: bar( (global void)

-0:16      Sequence

-0:16        move second child to first child (temp float)

-0:16          'f' (temp float)

-0:16          Function Call: unreachableReturn( (global float)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:18        vector-scale (temp 4-component vector of float)

-0:18          'color' (temp 4-component vector of float)

-0:18          'f' (temp float)

-0:21  Function Definition: bar( (global void)

-0:21    Function Parameters: 

-0:25  Function Definition: unreachableReturn( (global float)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      Function Call: bar( (global void)

-0:28      Test condition and select (temp void)

-0:28        Condition

-0:28        Compare Less Than (temp bool)

-0:28          'd' (uniform float)

-0:28          Constant:

-0:28            4.200000

-0:28        true case

-0:29        Branch: Return with expression

-0:29          Constant:

-0:29            1.200000

-0:28        false case

-0:31        Branch: Return with expression

-0:31          Constant:

-0:31            4.500000

-0:34  Function Definition: foo(vf4; (global float)

-0:34    Function Parameters: 

-0:34      'bar' (in 4-component vector of float)

-0:36    Sequence

-0:36      Branch: Return with expression

-0:36        add (temp float)

-0:36          direct index (temp float)

-0:36            'bar' (in 4-component vector of float)

-0:36            Constant:

-0:36              0 (const int)

-0:36          direct index (temp float)

-0:36            'bar' (in 4-component vector of float)

-0:36            Constant:

-0:36              1 (const int)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:13    Sequence

-0:13      Sequence

-0:13        move second child to first child (temp 4-component vector of float)

-0:13          'color' (temp 4-component vector of float)

-0:13          Construct vec4 (temp 4-component vector of float)

-0:13            Function Call: foo(vf4; (global float)

-0:13              'BaseColor' (smooth in 4-component vector of float)

-0:15      Function Call: bar( (global void)

-0:16      Sequence

-0:16        move second child to first child (temp float)

-0:16          'f' (temp float)

-0:16          Function Call: unreachableReturn( (global float)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:18        vector-scale (temp 4-component vector of float)

-0:18          'color' (temp 4-component vector of float)

-0:18          'f' (temp float)

-0:21  Function Definition: bar( (global void)

-0:21    Function Parameters: 

-0:25  Function Definition: unreachableReturn( (global float)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      Function Call: bar( (global void)

-0:28      Test condition and select (temp void)

-0:28        Condition

-0:28        Compare Less Than (temp bool)

-0:28          'd' (uniform float)

-0:28          Constant:

-0:28            4.200000

-0:28        true case

-0:29        Branch: Return with expression

-0:29          Constant:

-0:29            1.200000

-0:28        false case

-0:31        Branch: Return with expression

-0:31          Constant:

-0:31            4.500000

-0:34  Function Definition: foo(vf4; (global float)

-0:34    Function Parameters: 

-0:34      'bar' (in 4-component vector of float)

-0:36    Sequence

-0:36      Branch: Return with expression

-0:36        add (temp float)

-0:36          direct index (temp float)

-0:36            'bar' (in 4-component vector of float)

-0:36            Constant:

-0:36              0 (const int)

-0:36          direct index (temp float)

-0:36            'bar' (in 4-component vector of float)

-0:36            Constant:

-0:36              1 (const int)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

+forwardRef.frag
+Shader version: 110
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      Sequence
+0:13        move second child to first child (temp 4-component vector of float)
+0:13          'color' (temp 4-component vector of float)
+0:13          Construct vec4 (temp 4-component vector of float)
+0:13            Function Call: foo(vf4; (global float)
+0:13              'BaseColor' (smooth in 4-component vector of float)
+0:15      Function Call: bar( (global void)
+0:16      Sequence
+0:16        move second child to first child (temp float)
+0:16          'f' (temp float)
+0:16          Function Call: unreachableReturn( (global float)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18        vector-scale (temp 4-component vector of float)
+0:18          'color' (temp 4-component vector of float)
+0:18          'f' (temp float)
+0:21  Function Definition: bar( (global void)
+0:21    Function Parameters: 
+0:25  Function Definition: unreachableReturn( (global float)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      Function Call: bar( (global void)
+0:28      Test condition and select (temp void)
+0:28        Condition
+0:28        Compare Less Than (temp bool)
+0:28          'd' (uniform float)
+0:28          Constant:
+0:28            4.200000
+0:28        true case
+0:29        Branch: Return with expression
+0:29          Constant:
+0:29            1.200000
+0:28        false case
+0:31        Branch: Return with expression
+0:31          Constant:
+0:31            4.500000
+0:34  Function Definition: foo(vf4; (global float)
+0:34    Function Parameters: 
+0:34      'bar' (in 4-component vector of float)
+0:36    Sequence
+0:36      Branch: Return with expression
+0:36        add (temp float)
+0:36          direct index (temp float)
+0:36            'bar' (in 4-component vector of float)
+0:36            Constant:
+0:36              0 (const int)
+0:36          direct index (temp float)
+0:36            'bar' (in 4-component vector of float)
+0:36            Constant:
+0:36              1 (const int)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:13    Sequence
+0:13      Sequence
+0:13        move second child to first child (temp 4-component vector of float)
+0:13          'color' (temp 4-component vector of float)
+0:13          Construct vec4 (temp 4-component vector of float)
+0:13            Function Call: foo(vf4; (global float)
+0:13              'BaseColor' (smooth in 4-component vector of float)
+0:15      Function Call: bar( (global void)
+0:16      Sequence
+0:16        move second child to first child (temp float)
+0:16          'f' (temp float)
+0:16          Function Call: unreachableReturn( (global float)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18        vector-scale (temp 4-component vector of float)
+0:18          'color' (temp 4-component vector of float)
+0:18          'f' (temp float)
+0:21  Function Definition: bar( (global void)
+0:21    Function Parameters: 
+0:25  Function Definition: unreachableReturn( (global float)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      Function Call: bar( (global void)
+0:28      Test condition and select (temp void)
+0:28        Condition
+0:28        Compare Less Than (temp bool)
+0:28          'd' (uniform float)
+0:28          Constant:
+0:28            4.200000
+0:28        true case
+0:29        Branch: Return with expression
+0:29          Constant:
+0:29            1.200000
+0:28        false case
+0:31        Branch: Return with expression
+0:31          Constant:
+0:31            4.500000
+0:34  Function Definition: foo(vf4; (global float)
+0:34    Function Parameters: 
+0:34      'bar' (in 4-component vector of float)
+0:36    Sequence
+0:36      Branch: Return with expression
+0:36        add (temp float)
+0:36          direct index (temp float)
+0:36            'bar' (in 4-component vector of float)
+0:36            Constant:
+0:36              0 (const int)
+0:36          direct index (temp float)
+0:36            'bar' (in 4-component vector of float)
+0:36            Constant:
+0:36              1 (const int)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
diff --git a/Test/baseResults/functionCall.frag.out b/Test/baseResults/functionCall.frag.out
index 3996503..610f2bb 100644
--- a/Test/baseResults/functionCall.frag.out
+++ b/Test/baseResults/functionCall.frag.out
@@ -1,183 +1,183 @@
-functionCall.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:7  Sequence

-0:7    move second child to first child (temp float)

-0:7      'h' (global float)

-0:7      Constant:

-0:7        0.000000

-0:9  Function Definition: foo(vf4; (global float)

-0:9    Function Parameters: 

-0:9      'bar' (in 4-component vector of float)

-0:11    Sequence

-0:11      Branch: Return with expression

-0:11        add (temp float)

-0:11          direct index (temp float)

-0:11            'bar' (in 4-component vector of float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          direct index (temp float)

-0:11            'bar' (in 4-component vector of float)

-0:11            Constant:

-0:11              1 (const int)

-0:14  Function Definition: bar( (global void)

-0:14    Function Parameters: 

-0:18  Function Definition: unreachableReturn( (global float)

-0:18    Function Parameters: 

-0:20    Sequence

-0:20      Test condition and select (temp void)

-0:20        Condition

-0:20        Compare Less Than (temp bool)

-0:20          'd' (uniform float)

-0:20          Constant:

-0:20            4.200000

-0:20        true case

-0:21        Branch: Return with expression

-0:21          Constant:

-0:21            1.200000

-0:20        false case

-0:23        Branch: Return with expression

-0:23          Constant:

-0:23            4.500000

-0:27  Function Definition: missingReturn( (global float)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Test condition and select (temp void)

-0:29        Condition

-0:29        Compare Less Than (temp bool)

-0:29          'd' (uniform float)

-0:29          Constant:

-0:29            4.500000

-0:29        true case

-0:30        Sequence

-0:30          move second child to first child (temp float)

-0:30            'h' (global float)

-0:30            'd' (uniform float)

-0:31          Branch: Return with expression

-0:31            Constant:

-0:31              3.900000

-0:35  Function Definition: main( (global void)

-0:35    Function Parameters: 

-0:37    Sequence

-0:37      Sequence

-0:37        move second child to first child (temp 4-component vector of float)

-0:37          'color' (temp 4-component vector of float)

-0:37          Construct vec4 (temp 4-component vector of float)

-0:37            Function Call: foo(vf4; (global float)

-0:37              'BaseColor' (smooth in 4-component vector of float)

-0:39      Function Call: bar( (global void)

-0:40      Sequence

-0:40        move second child to first child (temp float)

-0:40          'f' (temp float)

-0:40          Function Call: unreachableReturn( (global float)

-0:41      Sequence

-0:41        move second child to first child (temp float)

-0:41          'g' (temp float)

-0:41          Function Call: missingReturn( (global float)

-0:43      move second child to first child (temp 4-component vector of float)

-0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:43        vector-scale (temp 4-component vector of float)

-0:43          vector-scale (temp 4-component vector of float)

-0:43            'color' (temp 4-component vector of float)

-0:43            'f' (temp float)

-0:43          'h' (global float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'h' (global float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:7  Sequence

-0:7    move second child to first child (temp float)

-0:7      'h' (global float)

-0:7      Constant:

-0:7        0.000000

-0:9  Function Definition: foo(vf4; (global float)

-0:9    Function Parameters: 

-0:9      'bar' (in 4-component vector of float)

-0:11    Sequence

-0:11      Branch: Return with expression

-0:11        add (temp float)

-0:11          direct index (temp float)

-0:11            'bar' (in 4-component vector of float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          direct index (temp float)

-0:11            'bar' (in 4-component vector of float)

-0:11            Constant:

-0:11              1 (const int)

-0:14  Function Definition: bar( (global void)

-0:14    Function Parameters: 

-0:18  Function Definition: unreachableReturn( (global float)

-0:18    Function Parameters: 

-0:20    Sequence

-0:20      Test condition and select (temp void)

-0:20        Condition

-0:20        Compare Less Than (temp bool)

-0:20          'd' (uniform float)

-0:20          Constant:

-0:20            4.200000

-0:20        true case

-0:21        Branch: Return with expression

-0:21          Constant:

-0:21            1.200000

-0:20        false case

-0:23        Branch: Return with expression

-0:23          Constant:

-0:23            4.500000

-0:27  Function Definition: missingReturn( (global float)

-0:27    Function Parameters: 

-0:29    Sequence

-0:29      Test condition and select (temp void)

-0:29        Condition

-0:29        Compare Less Than (temp bool)

-0:29          'd' (uniform float)

-0:29          Constant:

-0:29            4.500000

-0:29        true case

-0:30        Sequence

-0:30          move second child to first child (temp float)

-0:30            'h' (global float)

-0:30            'd' (uniform float)

-0:31          Branch: Return with expression

-0:31            Constant:

-0:31              3.900000

-0:35  Function Definition: main( (global void)

-0:35    Function Parameters: 

-0:37    Sequence

-0:37      Sequence

-0:37        move second child to first child (temp 4-component vector of float)

-0:37          'color' (temp 4-component vector of float)

-0:37          Construct vec4 (temp 4-component vector of float)

-0:37            Function Call: foo(vf4; (global float)

-0:37              'BaseColor' (smooth in 4-component vector of float)

-0:39      Function Call: bar( (global void)

-0:40      Sequence

-0:40        move second child to first child (temp float)

-0:40          'f' (temp float)

-0:40          Function Call: unreachableReturn( (global float)

-0:41      Sequence

-0:41        move second child to first child (temp float)

-0:41          'g' (temp float)

-0:41          Function Call: missingReturn( (global float)

-0:43      move second child to first child (temp 4-component vector of float)

-0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:43        vector-scale (temp 4-component vector of float)

-0:43          vector-scale (temp 4-component vector of float)

-0:43            'color' (temp 4-component vector of float)

-0:43            'f' (temp float)

-0:43          'h' (global float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'h' (global float)

-

+functionCall.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:7  Sequence
+0:7    move second child to first child (temp float)
+0:7      'h' (global float)
+0:7      Constant:
+0:7        0.000000
+0:9  Function Definition: foo(vf4; (global float)
+0:9    Function Parameters: 
+0:9      'bar' (in 4-component vector of float)
+0:11    Sequence
+0:11      Branch: Return with expression
+0:11        add (temp float)
+0:11          direct index (temp float)
+0:11            'bar' (in 4-component vector of float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          direct index (temp float)
+0:11            'bar' (in 4-component vector of float)
+0:11            Constant:
+0:11              1 (const int)
+0:14  Function Definition: bar( (global void)
+0:14    Function Parameters: 
+0:18  Function Definition: unreachableReturn( (global float)
+0:18    Function Parameters: 
+0:20    Sequence
+0:20      Test condition and select (temp void)
+0:20        Condition
+0:20        Compare Less Than (temp bool)
+0:20          'd' (uniform float)
+0:20          Constant:
+0:20            4.200000
+0:20        true case
+0:21        Branch: Return with expression
+0:21          Constant:
+0:21            1.200000
+0:20        false case
+0:23        Branch: Return with expression
+0:23          Constant:
+0:23            4.500000
+0:27  Function Definition: missingReturn( (global float)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Test condition and select (temp void)
+0:29        Condition
+0:29        Compare Less Than (temp bool)
+0:29          'd' (uniform float)
+0:29          Constant:
+0:29            4.500000
+0:29        true case
+0:30        Sequence
+0:30          move second child to first child (temp float)
+0:30            'h' (global float)
+0:30            'd' (uniform float)
+0:31          Branch: Return with expression
+0:31            Constant:
+0:31              3.900000
+0:35  Function Definition: main( (global void)
+0:35    Function Parameters: 
+0:37    Sequence
+0:37      Sequence
+0:37        move second child to first child (temp 4-component vector of float)
+0:37          'color' (temp 4-component vector of float)
+0:37          Construct vec4 (temp 4-component vector of float)
+0:37            Function Call: foo(vf4; (global float)
+0:37              'BaseColor' (smooth in 4-component vector of float)
+0:39      Function Call: bar( (global void)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'f' (temp float)
+0:40          Function Call: unreachableReturn( (global float)
+0:41      Sequence
+0:41        move second child to first child (temp float)
+0:41          'g' (temp float)
+0:41          Function Call: missingReturn( (global float)
+0:43      move second child to first child (temp 4-component vector of float)
+0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43        vector-scale (temp 4-component vector of float)
+0:43          vector-scale (temp 4-component vector of float)
+0:43            'color' (temp 4-component vector of float)
+0:43            'f' (temp float)
+0:43          'h' (global float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'h' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:7  Sequence
+0:7    move second child to first child (temp float)
+0:7      'h' (global float)
+0:7      Constant:
+0:7        0.000000
+0:9  Function Definition: foo(vf4; (global float)
+0:9    Function Parameters: 
+0:9      'bar' (in 4-component vector of float)
+0:11    Sequence
+0:11      Branch: Return with expression
+0:11        add (temp float)
+0:11          direct index (temp float)
+0:11            'bar' (in 4-component vector of float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          direct index (temp float)
+0:11            'bar' (in 4-component vector of float)
+0:11            Constant:
+0:11              1 (const int)
+0:14  Function Definition: bar( (global void)
+0:14    Function Parameters: 
+0:18  Function Definition: unreachableReturn( (global float)
+0:18    Function Parameters: 
+0:20    Sequence
+0:20      Test condition and select (temp void)
+0:20        Condition
+0:20        Compare Less Than (temp bool)
+0:20          'd' (uniform float)
+0:20          Constant:
+0:20            4.200000
+0:20        true case
+0:21        Branch: Return with expression
+0:21          Constant:
+0:21            1.200000
+0:20        false case
+0:23        Branch: Return with expression
+0:23          Constant:
+0:23            4.500000
+0:27  Function Definition: missingReturn( (global float)
+0:27    Function Parameters: 
+0:29    Sequence
+0:29      Test condition and select (temp void)
+0:29        Condition
+0:29        Compare Less Than (temp bool)
+0:29          'd' (uniform float)
+0:29          Constant:
+0:29            4.500000
+0:29        true case
+0:30        Sequence
+0:30          move second child to first child (temp float)
+0:30            'h' (global float)
+0:30            'd' (uniform float)
+0:31          Branch: Return with expression
+0:31            Constant:
+0:31              3.900000
+0:35  Function Definition: main( (global void)
+0:35    Function Parameters: 
+0:37    Sequence
+0:37      Sequence
+0:37        move second child to first child (temp 4-component vector of float)
+0:37          'color' (temp 4-component vector of float)
+0:37          Construct vec4 (temp 4-component vector of float)
+0:37            Function Call: foo(vf4; (global float)
+0:37              'BaseColor' (smooth in 4-component vector of float)
+0:39      Function Call: bar( (global void)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'f' (temp float)
+0:40          Function Call: unreachableReturn( (global float)
+0:41      Sequence
+0:41        move second child to first child (temp float)
+0:41          'g' (temp float)
+0:41          Function Call: missingReturn( (global float)
+0:43      move second child to first child (temp 4-component vector of float)
+0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43        vector-scale (temp 4-component vector of float)
+0:43          vector-scale (temp 4-component vector of float)
+0:43            'color' (temp 4-component vector of float)
+0:43            'f' (temp float)
+0:43          'h' (global float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'h' (global float)
+
diff --git a/Test/baseResults/functionSemantics.frag.out b/Test/baseResults/functionSemantics.frag.out
index 63cde49..a9dfb91 100644
--- a/Test/baseResults/functionSemantics.frag.out
+++ b/Test/baseResults/functionSemantics.frag.out
@@ -1,401 +1,401 @@
-functionSemantics.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 400

-0:? Sequence

-0:5  Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)

-0:5    Function Parameters: 

-0:5      'a' (in int)

-0:5      'b' (const (read only) int)

-0:5      'c' (in int)

-0:5      'd' (const (read only) int)

-0:5      'e' (out int)

-0:5      'f' (inout int)

-0:7    Sequence

-0:7      Sequence

-0:7        move second child to first child (temp int)

-0:7          'sum' (temp int)

-0:7          add (temp int)

-0:7            add (temp int)

-0:7              add (temp int)

-0:7                add (temp int)

-0:7                  'a' (in int)

-0:7                  'b' (const (read only) int)

-0:7                'c' (in int)

-0:7              'd' (const (read only) int)

-0:7            'f' (inout int)

-0:10      multiply second child into first child (temp int)

-0:10        'a' (in int)

-0:10        Constant:

-0:10          64 (const int)

-0:12      multiply second child into first child (temp int)

-0:12        'c' (in int)

-0:12        Constant:

-0:12          64 (const int)

-0:14      move second child to first child (temp int)

-0:14        'e' (out int)

-0:14        Constant:

-0:14          1024 (const int)

-0:15      multiply second child into first child (temp int)

-0:15        'f' (inout int)

-0:15        Constant:

-0:15          64 (const int)

-0:17      add second child into first child (temp int)

-0:17        'sum' (temp int)

-0:17        add (temp int)

-0:17          add (temp int)

-0:17            add (temp int)

-0:17              add (temp int)

-0:17                add (temp int)

-0:17                  'a' (in int)

-0:17                  component-wise multiply (temp int)

-0:17                    Constant:

-0:17                      64 (const int)

-0:17                    'b' (const (read only) int)

-0:17                'c' (in int)

-0:17              component-wise multiply (temp int)

-0:17                Constant:

-0:17                  64 (const int)

-0:17                'd' (const (read only) int)

-0:17            'e' (out int)

-0:17          'f' (inout int)

-0:20      Branch: Return with expression

-0:20        'sum' (temp int)

-0:23  Function Definition: foo2(f1;vf3;i1; (global int)

-0:23    Function Parameters: 

-0:23      'a' (in float)

-0:23      'b' (in 3-component vector of float)

-0:23      'r' (out int)

-0:25    Sequence

-0:25      move second child to first child (temp int)

-0:25        'r' (out int)

-0:25        Convert float to int (temp int)

-0:25          component-wise multiply (temp float)

-0:25            Constant:

-0:25              3.000000

-0:25            'a' (in float)

-0:26      Branch: Return with expression

-0:26        Convert float to int (temp int)

-0:26          component-wise multiply (temp float)

-0:26            Constant:

-0:26              5.000000

-0:26            direct index (temp float)

-0:26              'b' (in 3-component vector of float)

-0:26              Constant:

-0:26                1 (const int)

-0:29  Function Definition: foo3( (global int)

-0:29    Function Parameters: 

-0:31    Sequence

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Greater Than (temp bool)

-0:31          'u' (uniform float)

-0:31          Constant:

-0:31            3.200000

-0:31        true case

-0:32        Sequence

-0:32          Branch: Kill

-0:33          Branch: Return with expression

-0:33            Constant:

-0:33              1000000 (const int)

-0:36      Branch: Return with expression

-0:36        Constant:

-0:36          2000000 (const int)

-0:39  Function Definition: main( (global void)

-0:39    Function Parameters: 

-0:?     Sequence

-0:42      Sequence

-0:42        move second child to first child (temp int)

-0:42          't' (temp int)

-0:42          Constant:

-0:42            2 (const int)

-0:46      move second child to first child (temp int)

-0:46        direct index (temp int)

-0:46          t: direct index for structure (temp 4-component vector of int)

-0:46            'f' (temp structure{temp 4-component vector of int t})

-0:46            Constant:

-0:46              0 (const int)

-0:46          Constant:

-0:46            1 (const int)

-0:46        Constant:

-0:46          32 (const int)

-0:49      Sequence

-0:49        move second child to first child (temp int)

-0:49          'color' (temp int)

-0:49          Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)

-0:49            Constant:

-0:49              1 (const int)

-0:49            Constant:

-0:49              2 (const int)

-0:49            add (temp int)

-0:49              't' (temp int)

-0:49              't' (temp int)

-0:49            Constant:

-0:49              8 (const int)

-0:49            'e' (temp int)

-0:49            direct index (temp int)

-0:49              t: direct index for structure (temp 4-component vector of int)

-0:49                'f' (temp structure{temp 4-component vector of int t})

-0:49                Constant:

-0:49                  0 (const int)

-0:49              Constant:

-0:49                1 (const int)

-0:51      add second child into first child (temp int)

-0:51        'color' (temp int)

-0:51        component-wise multiply (temp int)

-0:51          Constant:

-0:51            128 (const int)

-0:51          add (temp int)

-0:51            'e' (temp int)

-0:51            direct index (temp int)

-0:51              t: direct index for structure (temp 4-component vector of int)

-0:51                'f' (temp structure{temp 4-component vector of int t})

-0:51                Constant:

-0:51                  0 (const int)

-0:51              Constant:

-0:51                1 (const int)

-0:57      move second child to first child (temp float)

-0:57        'ret' (temp float)

-0:57        Convert int to float (temp float)

-0:57          Comma (global int)

-0:57            move second child to first child (temp int)

-0:57              'tempReturn' (global int)

-0:57              Function Call: foo2(f1;vf3;i1; (global int)

-0:57                Constant:

-0:57                  4.000000

-0:57                Constant:

-0:57                  1.000000

-0:57                  2.000000

-0:57                  3.000000

-0:57                'tempArg' (temp int)

-0:57            move second child to first child (temp float)

-0:57              'arg' (temp float)

-0:57              Convert int to float (temp float)

-0:57                'tempArg' (temp int)

-0:57            'tempReturn' (global int)

-0:58      add second child into first child (temp int)

-0:58        'color' (temp int)

-0:58        Convert float to int (temp int)

-0:58          add (temp float)

-0:58            'ret' (temp float)

-0:58            'arg' (temp float)

-0:60      add second child into first child (temp int)

-0:60        'color' (temp int)

-0:60        Function Call: foo3( (global int)

-0:62      move second child to first child (temp 4-component vector of float)

-0:62        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:62        Construct vec4 (temp 4-component vector of float)

-0:62          Convert int to float (temp float)

-0:62            'color' (temp int)

-0:66  Function Definition: aggCall( (global void)

-0:66    Function Parameters: 

-0:?     Sequence

-0:69      Function Call: m(vf2; (global 3-component vector of float)

-0:69        Convert int to float (temp 2-component vector of float)

-0:69          Construct ivec2 (temp 2-component vector of int)

-0:69            Convert float to int (temp int)

-0:69              'F' (temp float)

-0:?   Linker Objects

-0:?     'u' (uniform float)

-

-

-Linked fragment stage:

-

-

-Shader version: 400

-0:? Sequence

-0:5  Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)

-0:5    Function Parameters: 

-0:5      'a' (in int)

-0:5      'b' (const (read only) int)

-0:5      'c' (in int)

-0:5      'd' (const (read only) int)

-0:5      'e' (out int)

-0:5      'f' (inout int)

-0:7    Sequence

-0:7      Sequence

-0:7        move second child to first child (temp int)

-0:7          'sum' (temp int)

-0:7          add (temp int)

-0:7            add (temp int)

-0:7              add (temp int)

-0:7                add (temp int)

-0:7                  'a' (in int)

-0:7                  'b' (const (read only) int)

-0:7                'c' (in int)

-0:7              'd' (const (read only) int)

-0:7            'f' (inout int)

-0:10      multiply second child into first child (temp int)

-0:10        'a' (in int)

-0:10        Constant:

-0:10          64 (const int)

-0:12      multiply second child into first child (temp int)

-0:12        'c' (in int)

-0:12        Constant:

-0:12          64 (const int)

-0:14      move second child to first child (temp int)

-0:14        'e' (out int)

-0:14        Constant:

-0:14          1024 (const int)

-0:15      multiply second child into first child (temp int)

-0:15        'f' (inout int)

-0:15        Constant:

-0:15          64 (const int)

-0:17      add second child into first child (temp int)

-0:17        'sum' (temp int)

-0:17        add (temp int)

-0:17          add (temp int)

-0:17            add (temp int)

-0:17              add (temp int)

-0:17                add (temp int)

-0:17                  'a' (in int)

-0:17                  component-wise multiply (temp int)

-0:17                    Constant:

-0:17                      64 (const int)

-0:17                    'b' (const (read only) int)

-0:17                'c' (in int)

-0:17              component-wise multiply (temp int)

-0:17                Constant:

-0:17                  64 (const int)

-0:17                'd' (const (read only) int)

-0:17            'e' (out int)

-0:17          'f' (inout int)

-0:20      Branch: Return with expression

-0:20        'sum' (temp int)

-0:23  Function Definition: foo2(f1;vf3;i1; (global int)

-0:23    Function Parameters: 

-0:23      'a' (in float)

-0:23      'b' (in 3-component vector of float)

-0:23      'r' (out int)

-0:25    Sequence

-0:25      move second child to first child (temp int)

-0:25        'r' (out int)

-0:25        Convert float to int (temp int)

-0:25          component-wise multiply (temp float)

-0:25            Constant:

-0:25              3.000000

-0:25            'a' (in float)

-0:26      Branch: Return with expression

-0:26        Convert float to int (temp int)

-0:26          component-wise multiply (temp float)

-0:26            Constant:

-0:26              5.000000

-0:26            direct index (temp float)

-0:26              'b' (in 3-component vector of float)

-0:26              Constant:

-0:26                1 (const int)

-0:29  Function Definition: foo3( (global int)

-0:29    Function Parameters: 

-0:31    Sequence

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Compare Greater Than (temp bool)

-0:31          'u' (uniform float)

-0:31          Constant:

-0:31            3.200000

-0:31        true case

-0:32        Sequence

-0:32          Branch: Kill

-0:33          Branch: Return with expression

-0:33            Constant:

-0:33              1000000 (const int)

-0:36      Branch: Return with expression

-0:36        Constant:

-0:36          2000000 (const int)

-0:39  Function Definition: main( (global void)

-0:39    Function Parameters: 

-0:?     Sequence

-0:42      Sequence

-0:42        move second child to first child (temp int)

-0:42          't' (temp int)

-0:42          Constant:

-0:42            2 (const int)

-0:46      move second child to first child (temp int)

-0:46        direct index (temp int)

-0:46          t: direct index for structure (temp 4-component vector of int)

-0:46            'f' (temp structure{temp 4-component vector of int t})

-0:46            Constant:

-0:46              0 (const int)

-0:46          Constant:

-0:46            1 (const int)

-0:46        Constant:

-0:46          32 (const int)

-0:49      Sequence

-0:49        move second child to first child (temp int)

-0:49          'color' (temp int)

-0:49          Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)

-0:49            Constant:

-0:49              1 (const int)

-0:49            Constant:

-0:49              2 (const int)

-0:49            add (temp int)

-0:49              't' (temp int)

-0:49              't' (temp int)

-0:49            Constant:

-0:49              8 (const int)

-0:49            'e' (temp int)

-0:49            direct index (temp int)

-0:49              t: direct index for structure (temp 4-component vector of int)

-0:49                'f' (temp structure{temp 4-component vector of int t})

-0:49                Constant:

-0:49                  0 (const int)

-0:49              Constant:

-0:49                1 (const int)

-0:51      add second child into first child (temp int)

-0:51        'color' (temp int)

-0:51        component-wise multiply (temp int)

-0:51          Constant:

-0:51            128 (const int)

-0:51          add (temp int)

-0:51            'e' (temp int)

-0:51            direct index (temp int)

-0:51              t: direct index for structure (temp 4-component vector of int)

-0:51                'f' (temp structure{temp 4-component vector of int t})

-0:51                Constant:

-0:51                  0 (const int)

-0:51              Constant:

-0:51                1 (const int)

-0:57      move second child to first child (temp float)

-0:57        'ret' (temp float)

-0:57        Convert int to float (temp float)

-0:57          Comma (global int)

-0:57            move second child to first child (temp int)

-0:57              'tempReturn' (global int)

-0:57              Function Call: foo2(f1;vf3;i1; (global int)

-0:57                Constant:

-0:57                  4.000000

-0:57                Constant:

-0:57                  1.000000

-0:57                  2.000000

-0:57                  3.000000

-0:57                'tempArg' (temp int)

-0:57            move second child to first child (temp float)

-0:57              'arg' (temp float)

-0:57              Convert int to float (temp float)

-0:57                'tempArg' (temp int)

-0:57            'tempReturn' (global int)

-0:58      add second child into first child (temp int)

-0:58        'color' (temp int)

-0:58        Convert float to int (temp int)

-0:58          add (temp float)

-0:58            'ret' (temp float)

-0:58            'arg' (temp float)

-0:60      add second child into first child (temp int)

-0:60        'color' (temp int)

-0:60        Function Call: foo3( (global int)

-0:62      move second child to first child (temp 4-component vector of float)

-0:62        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:62        Construct vec4 (temp 4-component vector of float)

-0:62          Convert int to float (temp float)

-0:62            'color' (temp int)

-0:66  Function Definition: aggCall( (global void)

-0:66    Function Parameters: 

-0:?     Sequence

-0:69      Function Call: m(vf2; (global 3-component vector of float)

-0:69        Convert int to float (temp 2-component vector of float)

-0:69          Construct ivec2 (temp 2-component vector of int)

-0:69            Convert float to int (temp int)

-0:69              'F' (temp float)

-0:?   Linker Objects

-0:?     'u' (uniform float)

-

+functionSemantics.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 400
+0:? Sequence
+0:5  Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:5    Function Parameters: 
+0:5      'a' (in int)
+0:5      'b' (const (read only) int)
+0:5      'c' (in int)
+0:5      'd' (const (read only) int)
+0:5      'e' (out int)
+0:5      'f' (inout int)
+0:7    Sequence
+0:7      Sequence
+0:7        move second child to first child (temp int)
+0:7          'sum' (temp int)
+0:7          add (temp int)
+0:7            add (temp int)
+0:7              add (temp int)
+0:7                add (temp int)
+0:7                  'a' (in int)
+0:7                  'b' (const (read only) int)
+0:7                'c' (in int)
+0:7              'd' (const (read only) int)
+0:7            'f' (inout int)
+0:10      multiply second child into first child (temp int)
+0:10        'a' (in int)
+0:10        Constant:
+0:10          64 (const int)
+0:12      multiply second child into first child (temp int)
+0:12        'c' (in int)
+0:12        Constant:
+0:12          64 (const int)
+0:14      move second child to first child (temp int)
+0:14        'e' (out int)
+0:14        Constant:
+0:14          1024 (const int)
+0:15      multiply second child into first child (temp int)
+0:15        'f' (inout int)
+0:15        Constant:
+0:15          64 (const int)
+0:17      add second child into first child (temp int)
+0:17        'sum' (temp int)
+0:17        add (temp int)
+0:17          add (temp int)
+0:17            add (temp int)
+0:17              add (temp int)
+0:17                add (temp int)
+0:17                  'a' (in int)
+0:17                  component-wise multiply (temp int)
+0:17                    Constant:
+0:17                      64 (const int)
+0:17                    'b' (const (read only) int)
+0:17                'c' (in int)
+0:17              component-wise multiply (temp int)
+0:17                Constant:
+0:17                  64 (const int)
+0:17                'd' (const (read only) int)
+0:17            'e' (out int)
+0:17          'f' (inout int)
+0:20      Branch: Return with expression
+0:20        'sum' (temp int)
+0:23  Function Definition: foo2(f1;vf3;i1; (global int)
+0:23    Function Parameters: 
+0:23      'a' (in float)
+0:23      'b' (in 3-component vector of float)
+0:23      'r' (out int)
+0:25    Sequence
+0:25      move second child to first child (temp int)
+0:25        'r' (out int)
+0:25        Convert float to int (temp int)
+0:25          component-wise multiply (temp float)
+0:25            Constant:
+0:25              3.000000
+0:25            'a' (in float)
+0:26      Branch: Return with expression
+0:26        Convert float to int (temp int)
+0:26          component-wise multiply (temp float)
+0:26            Constant:
+0:26              5.000000
+0:26            direct index (temp float)
+0:26              'b' (in 3-component vector of float)
+0:26              Constant:
+0:26                1 (const int)
+0:29  Function Definition: foo3( (global int)
+0:29    Function Parameters: 
+0:31    Sequence
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Greater Than (temp bool)
+0:31          'u' (uniform float)
+0:31          Constant:
+0:31            3.200000
+0:31        true case
+0:32        Sequence
+0:32          Branch: Kill
+0:33          Branch: Return with expression
+0:33            Constant:
+0:33              1000000 (const int)
+0:36      Branch: Return with expression
+0:36        Constant:
+0:36          2000000 (const int)
+0:39  Function Definition: main( (global void)
+0:39    Function Parameters: 
+0:?     Sequence
+0:42      Sequence
+0:42        move second child to first child (temp int)
+0:42          't' (temp int)
+0:42          Constant:
+0:42            2 (const int)
+0:46      move second child to first child (temp int)
+0:46        direct index (temp int)
+0:46          t: direct index for structure (temp 4-component vector of int)
+0:46            'f' (temp structure{temp 4-component vector of int t})
+0:46            Constant:
+0:46              0 (const int)
+0:46          Constant:
+0:46            1 (const int)
+0:46        Constant:
+0:46          32 (const int)
+0:49      Sequence
+0:49        move second child to first child (temp int)
+0:49          'color' (temp int)
+0:49          Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:49            Constant:
+0:49              1 (const int)
+0:49            Constant:
+0:49              2 (const int)
+0:49            add (temp int)
+0:49              't' (temp int)
+0:49              't' (temp int)
+0:49            Constant:
+0:49              8 (const int)
+0:49            'e' (temp int)
+0:49            direct index (temp int)
+0:49              t: direct index for structure (temp 4-component vector of int)
+0:49                'f' (temp structure{temp 4-component vector of int t})
+0:49                Constant:
+0:49                  0 (const int)
+0:49              Constant:
+0:49                1 (const int)
+0:51      add second child into first child (temp int)
+0:51        'color' (temp int)
+0:51        component-wise multiply (temp int)
+0:51          Constant:
+0:51            128 (const int)
+0:51          add (temp int)
+0:51            'e' (temp int)
+0:51            direct index (temp int)
+0:51              t: direct index for structure (temp 4-component vector of int)
+0:51                'f' (temp structure{temp 4-component vector of int t})
+0:51                Constant:
+0:51                  0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:57      move second child to first child (temp float)
+0:57        'ret' (temp float)
+0:57        Convert int to float (temp float)
+0:57          Comma (global int)
+0:57            move second child to first child (temp int)
+0:57              'tempReturn' (global int)
+0:57              Function Call: foo2(f1;vf3;i1; (global int)
+0:57                Constant:
+0:57                  4.000000
+0:57                Constant:
+0:57                  1.000000
+0:57                  2.000000
+0:57                  3.000000
+0:57                'tempArg' (temp int)
+0:57            move second child to first child (temp float)
+0:57              'arg' (temp float)
+0:57              Convert int to float (temp float)
+0:57                'tempArg' (temp int)
+0:57            'tempReturn' (global int)
+0:58      add second child into first child (temp int)
+0:58        'color' (temp int)
+0:58        Convert float to int (temp int)
+0:58          add (temp float)
+0:58            'ret' (temp float)
+0:58            'arg' (temp float)
+0:60      add second child into first child (temp int)
+0:60        'color' (temp int)
+0:60        Function Call: foo3( (global int)
+0:62      move second child to first child (temp 4-component vector of float)
+0:62        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:62        Construct vec4 (temp 4-component vector of float)
+0:62          Convert int to float (temp float)
+0:62            'color' (temp int)
+0:66  Function Definition: aggCall( (global void)
+0:66    Function Parameters: 
+0:?     Sequence
+0:69      Function Call: m(vf2; (global 3-component vector of float)
+0:69        Convert int to float (temp 2-component vector of float)
+0:69          Construct ivec2 (temp 2-component vector of int)
+0:69            Convert float to int (temp int)
+0:69              'F' (temp float)
+0:?   Linker Objects
+0:?     'u' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 400
+0:? Sequence
+0:5  Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:5    Function Parameters: 
+0:5      'a' (in int)
+0:5      'b' (const (read only) int)
+0:5      'c' (in int)
+0:5      'd' (const (read only) int)
+0:5      'e' (out int)
+0:5      'f' (inout int)
+0:7    Sequence
+0:7      Sequence
+0:7        move second child to first child (temp int)
+0:7          'sum' (temp int)
+0:7          add (temp int)
+0:7            add (temp int)
+0:7              add (temp int)
+0:7                add (temp int)
+0:7                  'a' (in int)
+0:7                  'b' (const (read only) int)
+0:7                'c' (in int)
+0:7              'd' (const (read only) int)
+0:7            'f' (inout int)
+0:10      multiply second child into first child (temp int)
+0:10        'a' (in int)
+0:10        Constant:
+0:10          64 (const int)
+0:12      multiply second child into first child (temp int)
+0:12        'c' (in int)
+0:12        Constant:
+0:12          64 (const int)
+0:14      move second child to first child (temp int)
+0:14        'e' (out int)
+0:14        Constant:
+0:14          1024 (const int)
+0:15      multiply second child into first child (temp int)
+0:15        'f' (inout int)
+0:15        Constant:
+0:15          64 (const int)
+0:17      add second child into first child (temp int)
+0:17        'sum' (temp int)
+0:17        add (temp int)
+0:17          add (temp int)
+0:17            add (temp int)
+0:17              add (temp int)
+0:17                add (temp int)
+0:17                  'a' (in int)
+0:17                  component-wise multiply (temp int)
+0:17                    Constant:
+0:17                      64 (const int)
+0:17                    'b' (const (read only) int)
+0:17                'c' (in int)
+0:17              component-wise multiply (temp int)
+0:17                Constant:
+0:17                  64 (const int)
+0:17                'd' (const (read only) int)
+0:17            'e' (out int)
+0:17          'f' (inout int)
+0:20      Branch: Return with expression
+0:20        'sum' (temp int)
+0:23  Function Definition: foo2(f1;vf3;i1; (global int)
+0:23    Function Parameters: 
+0:23      'a' (in float)
+0:23      'b' (in 3-component vector of float)
+0:23      'r' (out int)
+0:25    Sequence
+0:25      move second child to first child (temp int)
+0:25        'r' (out int)
+0:25        Convert float to int (temp int)
+0:25          component-wise multiply (temp float)
+0:25            Constant:
+0:25              3.000000
+0:25            'a' (in float)
+0:26      Branch: Return with expression
+0:26        Convert float to int (temp int)
+0:26          component-wise multiply (temp float)
+0:26            Constant:
+0:26              5.000000
+0:26            direct index (temp float)
+0:26              'b' (in 3-component vector of float)
+0:26              Constant:
+0:26                1 (const int)
+0:29  Function Definition: foo3( (global int)
+0:29    Function Parameters: 
+0:31    Sequence
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Compare Greater Than (temp bool)
+0:31          'u' (uniform float)
+0:31          Constant:
+0:31            3.200000
+0:31        true case
+0:32        Sequence
+0:32          Branch: Kill
+0:33          Branch: Return with expression
+0:33            Constant:
+0:33              1000000 (const int)
+0:36      Branch: Return with expression
+0:36        Constant:
+0:36          2000000 (const int)
+0:39  Function Definition: main( (global void)
+0:39    Function Parameters: 
+0:?     Sequence
+0:42      Sequence
+0:42        move second child to first child (temp int)
+0:42          't' (temp int)
+0:42          Constant:
+0:42            2 (const int)
+0:46      move second child to first child (temp int)
+0:46        direct index (temp int)
+0:46          t: direct index for structure (temp 4-component vector of int)
+0:46            'f' (temp structure{temp 4-component vector of int t})
+0:46            Constant:
+0:46              0 (const int)
+0:46          Constant:
+0:46            1 (const int)
+0:46        Constant:
+0:46          32 (const int)
+0:49      Sequence
+0:49        move second child to first child (temp int)
+0:49          'color' (temp int)
+0:49          Function Call: foo(i1;i1;i1;i1;i1;i1; (global int)
+0:49            Constant:
+0:49              1 (const int)
+0:49            Constant:
+0:49              2 (const int)
+0:49            add (temp int)
+0:49              't' (temp int)
+0:49              't' (temp int)
+0:49            Constant:
+0:49              8 (const int)
+0:49            'e' (temp int)
+0:49            direct index (temp int)
+0:49              t: direct index for structure (temp 4-component vector of int)
+0:49                'f' (temp structure{temp 4-component vector of int t})
+0:49                Constant:
+0:49                  0 (const int)
+0:49              Constant:
+0:49                1 (const int)
+0:51      add second child into first child (temp int)
+0:51        'color' (temp int)
+0:51        component-wise multiply (temp int)
+0:51          Constant:
+0:51            128 (const int)
+0:51          add (temp int)
+0:51            'e' (temp int)
+0:51            direct index (temp int)
+0:51              t: direct index for structure (temp 4-component vector of int)
+0:51                'f' (temp structure{temp 4-component vector of int t})
+0:51                Constant:
+0:51                  0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:57      move second child to first child (temp float)
+0:57        'ret' (temp float)
+0:57        Convert int to float (temp float)
+0:57          Comma (global int)
+0:57            move second child to first child (temp int)
+0:57              'tempReturn' (global int)
+0:57              Function Call: foo2(f1;vf3;i1; (global int)
+0:57                Constant:
+0:57                  4.000000
+0:57                Constant:
+0:57                  1.000000
+0:57                  2.000000
+0:57                  3.000000
+0:57                'tempArg' (temp int)
+0:57            move second child to first child (temp float)
+0:57              'arg' (temp float)
+0:57              Convert int to float (temp float)
+0:57                'tempArg' (temp int)
+0:57            'tempReturn' (global int)
+0:58      add second child into first child (temp int)
+0:58        'color' (temp int)
+0:58        Convert float to int (temp int)
+0:58          add (temp float)
+0:58            'ret' (temp float)
+0:58            'arg' (temp float)
+0:60      add second child into first child (temp int)
+0:60        'color' (temp int)
+0:60        Function Call: foo3( (global int)
+0:62      move second child to first child (temp 4-component vector of float)
+0:62        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:62        Construct vec4 (temp 4-component vector of float)
+0:62          Convert int to float (temp float)
+0:62            'color' (temp int)
+0:66  Function Definition: aggCall( (global void)
+0:66    Function Parameters: 
+0:?     Sequence
+0:69      Function Call: m(vf2; (global 3-component vector of float)
+0:69        Convert int to float (temp 2-component vector of float)
+0:69          Construct ivec2 (temp 2-component vector of int)
+0:69            Convert float to int (temp int)
+0:69              'F' (temp float)
+0:?   Linker Objects
+0:?     'u' (uniform float)
+
diff --git a/Test/baseResults/length.frag.out b/Test/baseResults/length.frag.out
index 8725a16..1c42560 100644
--- a/Test/baseResults/length.frag.out
+++ b/Test/baseResults/length.frag.out
@@ -1,61 +1,61 @@
-length.frag

-Shader version: 120

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:?     Sequence

-0:15      Sequence

-0:15        move second child to first child (temp 2-component vector of float)

-0:15          't' (temp 2-component vector of float)

-0:15          add (temp 2-component vector of float)

-0:15            direct index (smooth temp 2-component vector of float)

-0:15              'v' (smooth in 2-element array of 2-component vector of float)

-0:15              Constant:

-0:15                0 (const int)

-0:15            direct index (smooth temp 2-component vector of float)

-0:15              'v' (smooth in 2-element array of 2-component vector of float)

-0:15              Constant:

-0:15                1 (const int)

-0:17      move second child to first child (temp 4-component vector of float)

-0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:17        Constant:

-0:17          30.000000

-0:17          30.000000

-0:17          30.000000

-0:17          30.000000

-0:?   Linker Objects

-0:?     'u' (uniform 3-element array of 4-component vector of float)

-0:?     'v' (smooth in 2-element array of 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 120

-0:? Sequence

-0:11  Function Definition: main( (global void)

-0:11    Function Parameters: 

-0:?     Sequence

-0:15      Sequence

-0:15        move second child to first child (temp 2-component vector of float)

-0:15          't' (temp 2-component vector of float)

-0:15          add (temp 2-component vector of float)

-0:15            direct index (smooth temp 2-component vector of float)

-0:15              'v' (smooth in 2-element array of 2-component vector of float)

-0:15              Constant:

-0:15                0 (const int)

-0:15            direct index (smooth temp 2-component vector of float)

-0:15              'v' (smooth in 2-element array of 2-component vector of float)

-0:15              Constant:

-0:15                1 (const int)

-0:17      move second child to first child (temp 4-component vector of float)

-0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:17        Constant:

-0:17          30.000000

-0:17          30.000000

-0:17          30.000000

-0:17          30.000000

-0:?   Linker Objects

-0:?     'u' (uniform 3-element array of 4-component vector of float)

-0:?     'v' (smooth in 2-element array of 2-component vector of float)

-

+length.frag
+Shader version: 120
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:?     Sequence
+0:15      Sequence
+0:15        move second child to first child (temp 2-component vector of float)
+0:15          't' (temp 2-component vector of float)
+0:15          add (temp 2-component vector of float)
+0:15            direct index (smooth temp 2-component vector of float)
+0:15              'v' (smooth in 2-element array of 2-component vector of float)
+0:15              Constant:
+0:15                0 (const int)
+0:15            direct index (smooth temp 2-component vector of float)
+0:15              'v' (smooth in 2-element array of 2-component vector of float)
+0:15              Constant:
+0:15                1 (const int)
+0:17      move second child to first child (temp 4-component vector of float)
+0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17        Constant:
+0:17          30.000000
+0:17          30.000000
+0:17          30.000000
+0:17          30.000000
+0:?   Linker Objects
+0:?     'u' (uniform 3-element array of 4-component vector of float)
+0:?     'v' (smooth in 2-element array of 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:11  Function Definition: main( (global void)
+0:11    Function Parameters: 
+0:?     Sequence
+0:15      Sequence
+0:15        move second child to first child (temp 2-component vector of float)
+0:15          't' (temp 2-component vector of float)
+0:15          add (temp 2-component vector of float)
+0:15            direct index (smooth temp 2-component vector of float)
+0:15              'v' (smooth in 2-element array of 2-component vector of float)
+0:15              Constant:
+0:15                0 (const int)
+0:15            direct index (smooth temp 2-component vector of float)
+0:15              'v' (smooth in 2-element array of 2-component vector of float)
+0:15              Constant:
+0:15                1 (const int)
+0:17      move second child to first child (temp 4-component vector of float)
+0:17        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:17        Constant:
+0:17          30.000000
+0:17          30.000000
+0:17          30.000000
+0:17          30.000000
+0:?   Linker Objects
+0:?     'u' (uniform 3-element array of 4-component vector of float)
+0:?     'v' (smooth in 2-element array of 2-component vector of float)
+
diff --git a/Test/baseResults/lineContinuation.vert.out b/Test/baseResults/lineContinuation.vert.out
index b74c7a6..78e5c07 100644
--- a/Test/baseResults/lineContinuation.vert.out
+++ b/Test/baseResults/lineContinuation.vert.out
@@ -1,309 +1,309 @@
-lineContinuation.vert

-WARNING: 0:3: 'line continuation' : used at end of comment; the following line is still part of the comment 

-ERROR: 0:6: '#error' : e1  

-ERROR: 0:11: '#error' : e2  

-ERROR: 0:18: '#error' : e3  

-ERROR: 0:42: '\' : illegal use of escape character 

-ERROR: 0:43: '@' : unexpected token 

-ERROR: 0:44: '$' : unexpected token 

-ERROR: 0:45: '\' : illegal use of escape character 

-ERROR: 0:47: '\' : illegal use of escape character 

-ERROR: 0:48: '\' : illegal use of escape character 

-ERROR: 0:49: '$' : unexpected token 

-ERROR: 0:50: '@' : unexpected token 

-ERROR: 0:55: '#error' : good continuation  

-WARNING: 0:62: 'line continuation' : used at end of comment; the following line is still part of the comment 

-ERROR: 0:111: 'macro expansion' : End of line in macro substitution: FOOM

-ERROR: 0:112: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 0:112: '#if' : unexpected tokens following directive 

-ERROR: 0:117: 'macro expansion' : End of line in macro substitution: FOOM

-ERROR: 0:118: 'preprocessor evaluation' : can't evaluate expression 

-ERROR: 0:118: '#if' : unexpected tokens following directive 

-ERROR: 0:150: '' :  syntax error

-ERROR: 19 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      move second child to first child (temp highp 4-component vector of float)

-0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:20        Construct vec4 (temp highp 4-component vector of float)

-0:20          'foo' (global highp float)

-0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)

-0:22    Function Parameters: 

-0:22      'a' (in highp 4-component vector of float)

-0:24    Sequence

-0:24      Sequence

-0:24        move second child to first child (temp highp 4-component vector of float)

-0:24          'b' (temp highp 4-component vector of float)

-0:24          'a' (in highp 4-component vector of float)

-0:25      Branch: Return with expression

-0:25        'b' (temp highp 4-component vector of float)

-0:47  Sequence

-0:47    move second child to first child (temp highp int)

-0:47      'q1' (global highp int)

-0:47      Constant:

-0:47        1 (const int)

-0:48  Sequence

-0:48    move second child to first child (temp highp int)

-0:48      'q2' (global highp int)

-0:48      Constant:

-0:48        1 (const int)

-0:49  Sequence

-0:49    move second child to first child (temp highp int)

-0:49      'q3' (global highp int)

-0:49      Constant:

-0:49        1 (const int)

-0:50  Sequence

-0:50    move second child to first child (temp highp int)

-0:50      'q4' (global highp int)

-0:50      Constant:

-0:50        1 (const int)

-0:74  Sequence

-0:74    move second child to first child (temp highp float)

-0:74      'funkyf' (global highp float)

-0:75      Constant:

-0:75        12300000000000000.000000

-0:85  Sequence

-0:84    move second child to first child (temp highp int)

-0:84      'funkyh' (global highp int)

-0:86      Constant:

-0:86        244 (const int)

-0:91  Sequence

-0:91    move second child to first child (temp highp int)

-0:91      'funkyo' (global highp int)

-0:92      Constant:

-0:92        34 (const int)

-0:96  Sequence

-0:96    move second child to first child (temp highp int)

-0:96      'c' (global highp int)

-0:97      Constant:

-0:97        11 (const int)

-0:98  Sequence

-0:98    move second child to first child (temp highp int)

-0:98      'd' (global highp int)

-0:98      Constant:

-0:98        12 (const int)

-0:107  Sequence

-0:107    move second child to first child (temp highp int)

-0:107      'bar103' (global highp int)

-0:107      Constant:

-0:107        17 (const int)

-0:113  Sequence

-0:113    move second child to first child (temp highp int)

-0:113      'bar104' (global highp int)

-0:113      Constant:

-0:113        19 (const int)

-0:119  Sequence

-0:119    move second child to first child (temp highp int)

-0:119      'bar105' (global highp int)

-0:119      Constant:

-0:119        19 (const int)

-0:122  Sequence

-0:122    move second child to first child (temp highp int)

-0:122      'bar106' (global highp int)

-0:122      Constant:

-0:122        12 (const int)

-0:123  Sequence

-0:123    move second child to first child (temp highp int)

-0:123      'bar107' (global highp int)

-0:128      Constant:

-0:128        5 (const int)

-0:131  Function Definition: foo203209409( (global void)

-0:131    Function Parameters: 

-0:134    Sequence

-0:134      add second child into first child (temp highp int)

-0:133        'bar107' (global highp int)

-0:134        Constant:

-0:134          37 (const int)

-0:135      multiply second child into first child (temp highp int)

-0:135        'bar107' (global highp int)

-0:136        Constant:

-0:136          38 (const int)

-0:137      divide second child into first child (temp highp int)

-0:137        'bar107' (global highp int)

-0:138        Constant:

-0:138          39 (const int)

-0:139      add (temp highp int)

-0:139        'bar107' (global highp int)

-0:140        Constant:

-0:140          41 (const int)

-0:?   Linker Objects

-0:?     'foo' (global highp float)

-0:?     'goodDecl' (global highp int)

-0:?     'a1' (const highp int)

-0:?       4 (const int)

-0:?     'a2' (const highp int)

-0:?       3 (const int)

-0:?     'a3' (const highp int)

-0:?       4 (const int)

-0:?     'a4' (const highp int)

-0:?       3 (const int)

-0:?     'q1' (global highp int)

-0:?     'q2' (global highp int)

-0:?     'q3' (global highp int)

-0:?     'q4' (global highp int)

-0:?     'abdece' (const highp int)

-0:?       10 (const int)

-0:?     'aoeuntaoehu' (const highp int)

-0:?       10 (const int)

-0:?     'funkyf' (global highp float)

-0:?     'funkyh' (global highp int)

-0:?     'funkyo' (global highp int)

-0:?     'c' (global highp int)

-0:?     'd' (global highp int)

-0:?     'bar103' (global highp int)

-0:?     'bar104' (global highp int)

-0:?     'bar105' (global highp int)

-0:?     'bar106' (global highp int)

-0:?     'bar107' (global highp int)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      move second child to first child (temp highp 4-component vector of float)

-0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:20        Construct vec4 (temp highp 4-component vector of float)

-0:20          'foo' (global highp float)

-0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)

-0:22    Function Parameters: 

-0:22      'a' (in highp 4-component vector of float)

-0:24    Sequence

-0:24      Sequence

-0:24        move second child to first child (temp highp 4-component vector of float)

-0:24          'b' (temp highp 4-component vector of float)

-0:24          'a' (in highp 4-component vector of float)

-0:25      Branch: Return with expression

-0:25        'b' (temp highp 4-component vector of float)

-0:47  Sequence

-0:47    move second child to first child (temp highp int)

-0:47      'q1' (global highp int)

-0:47      Constant:

-0:47        1 (const int)

-0:48  Sequence

-0:48    move second child to first child (temp highp int)

-0:48      'q2' (global highp int)

-0:48      Constant:

-0:48        1 (const int)

-0:49  Sequence

-0:49    move second child to first child (temp highp int)

-0:49      'q3' (global highp int)

-0:49      Constant:

-0:49        1 (const int)

-0:50  Sequence

-0:50    move second child to first child (temp highp int)

-0:50      'q4' (global highp int)

-0:50      Constant:

-0:50        1 (const int)

-0:74  Sequence

-0:74    move second child to first child (temp highp float)

-0:74      'funkyf' (global highp float)

-0:75      Constant:

-0:75        12300000000000000.000000

-0:85  Sequence

-0:84    move second child to first child (temp highp int)

-0:84      'funkyh' (global highp int)

-0:86      Constant:

-0:86        244 (const int)

-0:91  Sequence

-0:91    move second child to first child (temp highp int)

-0:91      'funkyo' (global highp int)

-0:92      Constant:

-0:92        34 (const int)

-0:96  Sequence

-0:96    move second child to first child (temp highp int)

-0:96      'c' (global highp int)

-0:97      Constant:

-0:97        11 (const int)

-0:98  Sequence

-0:98    move second child to first child (temp highp int)

-0:98      'd' (global highp int)

-0:98      Constant:

-0:98        12 (const int)

-0:107  Sequence

-0:107    move second child to first child (temp highp int)

-0:107      'bar103' (global highp int)

-0:107      Constant:

-0:107        17 (const int)

-0:113  Sequence

-0:113    move second child to first child (temp highp int)

-0:113      'bar104' (global highp int)

-0:113      Constant:

-0:113        19 (const int)

-0:119  Sequence

-0:119    move second child to first child (temp highp int)

-0:119      'bar105' (global highp int)

-0:119      Constant:

-0:119        19 (const int)

-0:122  Sequence

-0:122    move second child to first child (temp highp int)

-0:122      'bar106' (global highp int)

-0:122      Constant:

-0:122        12 (const int)

-0:123  Sequence

-0:123    move second child to first child (temp highp int)

-0:123      'bar107' (global highp int)

-0:128      Constant:

-0:128        5 (const int)

-0:131  Function Definition: foo203209409( (global void)

-0:131    Function Parameters: 

-0:134    Sequence

-0:134      add second child into first child (temp highp int)

-0:133        'bar107' (global highp int)

-0:134        Constant:

-0:134          37 (const int)

-0:135      multiply second child into first child (temp highp int)

-0:135        'bar107' (global highp int)

-0:136        Constant:

-0:136          38 (const int)

-0:137      divide second child into first child (temp highp int)

-0:137        'bar107' (global highp int)

-0:138        Constant:

-0:138          39 (const int)

-0:139      add (temp highp int)

-0:139        'bar107' (global highp int)

-0:140        Constant:

-0:140          41 (const int)

-0:?   Linker Objects

-0:?     'foo' (global highp float)

-0:?     'goodDecl' (global highp int)

-0:?     'a1' (const highp int)

-0:?       4 (const int)

-0:?     'a2' (const highp int)

-0:?       3 (const int)

-0:?     'a3' (const highp int)

-0:?       4 (const int)

-0:?     'a4' (const highp int)

-0:?       3 (const int)

-0:?     'q1' (global highp int)

-0:?     'q2' (global highp int)

-0:?     'q3' (global highp int)

-0:?     'q4' (global highp int)

-0:?     'abdece' (const highp int)

-0:?       10 (const int)

-0:?     'aoeuntaoehu' (const highp int)

-0:?       10 (const int)

-0:?     'funkyf' (global highp float)

-0:?     'funkyh' (global highp int)

-0:?     'funkyo' (global highp int)

-0:?     'c' (global highp int)

-0:?     'd' (global highp int)

-0:?     'bar103' (global highp int)

-0:?     'bar104' (global highp int)

-0:?     'bar105' (global highp int)

-0:?     'bar106' (global highp int)

-0:?     'bar107' (global highp int)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+lineContinuation.vert
+WARNING: 0:3: 'line continuation' : used at end of comment; the following line is still part of the comment 
+ERROR: 0:6: '#error' : e1  
+ERROR: 0:11: '#error' : e2  
+ERROR: 0:18: '#error' : e3  
+ERROR: 0:42: '\' : illegal use of escape character 
+ERROR: 0:43: '@' : unexpected token 
+ERROR: 0:44: '$' : unexpected token 
+ERROR: 0:45: '\' : illegal use of escape character 
+ERROR: 0:47: '\' : illegal use of escape character 
+ERROR: 0:48: '\' : illegal use of escape character 
+ERROR: 0:49: '$' : unexpected token 
+ERROR: 0:50: '@' : unexpected token 
+ERROR: 0:55: '#error' : good continuation  
+WARNING: 0:62: 'line continuation' : used at end of comment; the following line is still part of the comment 
+ERROR: 0:111: 'macro expansion' : End of line in macro substitution: FOOM
+ERROR: 0:112: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 0:112: '#if' : unexpected tokens following directive 
+ERROR: 0:117: 'macro expansion' : End of line in macro substitution: FOOM
+ERROR: 0:118: 'preprocessor evaluation' : can't evaluate expression 
+ERROR: 0:118: '#if' : unexpected tokens following directive 
+ERROR: 0:150: '' :  syntax error
+ERROR: 19 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      move second child to first child (temp highp 4-component vector of float)
+0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20        Construct vec4 (temp highp 4-component vector of float)
+0:20          'foo' (global highp float)
+0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22    Function Parameters: 
+0:22      'a' (in highp 4-component vector of float)
+0:24    Sequence
+0:24      Sequence
+0:24        move second child to first child (temp highp 4-component vector of float)
+0:24          'b' (temp highp 4-component vector of float)
+0:24          'a' (in highp 4-component vector of float)
+0:25      Branch: Return with expression
+0:25        'b' (temp highp 4-component vector of float)
+0:47  Sequence
+0:47    move second child to first child (temp highp int)
+0:47      'q1' (global highp int)
+0:47      Constant:
+0:47        1 (const int)
+0:48  Sequence
+0:48    move second child to first child (temp highp int)
+0:48      'q2' (global highp int)
+0:48      Constant:
+0:48        1 (const int)
+0:49  Sequence
+0:49    move second child to first child (temp highp int)
+0:49      'q3' (global highp int)
+0:49      Constant:
+0:49        1 (const int)
+0:50  Sequence
+0:50    move second child to first child (temp highp int)
+0:50      'q4' (global highp int)
+0:50      Constant:
+0:50        1 (const int)
+0:74  Sequence
+0:74    move second child to first child (temp highp float)
+0:74      'funkyf' (global highp float)
+0:75      Constant:
+0:75        12300000000000000.000000
+0:85  Sequence
+0:84    move second child to first child (temp highp int)
+0:84      'funkyh' (global highp int)
+0:86      Constant:
+0:86        244 (const int)
+0:91  Sequence
+0:91    move second child to first child (temp highp int)
+0:91      'funkyo' (global highp int)
+0:92      Constant:
+0:92        34 (const int)
+0:96  Sequence
+0:96    move second child to first child (temp highp int)
+0:96      'c' (global highp int)
+0:97      Constant:
+0:97        11 (const int)
+0:98  Sequence
+0:98    move second child to first child (temp highp int)
+0:98      'd' (global highp int)
+0:98      Constant:
+0:98        12 (const int)
+0:107  Sequence
+0:107    move second child to first child (temp highp int)
+0:107      'bar103' (global highp int)
+0:107      Constant:
+0:107        17 (const int)
+0:113  Sequence
+0:113    move second child to first child (temp highp int)
+0:113      'bar104' (global highp int)
+0:113      Constant:
+0:113        19 (const int)
+0:119  Sequence
+0:119    move second child to first child (temp highp int)
+0:119      'bar105' (global highp int)
+0:119      Constant:
+0:119        19 (const int)
+0:122  Sequence
+0:122    move second child to first child (temp highp int)
+0:122      'bar106' (global highp int)
+0:122      Constant:
+0:122        12 (const int)
+0:123  Sequence
+0:123    move second child to first child (temp highp int)
+0:123      'bar107' (global highp int)
+0:128      Constant:
+0:128        5 (const int)
+0:131  Function Definition: foo203209409( (global void)
+0:131    Function Parameters: 
+0:134    Sequence
+0:134      add second child into first child (temp highp int)
+0:133        'bar107' (global highp int)
+0:134        Constant:
+0:134          37 (const int)
+0:135      multiply second child into first child (temp highp int)
+0:135        'bar107' (global highp int)
+0:136        Constant:
+0:136          38 (const int)
+0:137      divide second child into first child (temp highp int)
+0:137        'bar107' (global highp int)
+0:138        Constant:
+0:138          39 (const int)
+0:139      add (temp highp int)
+0:139        'bar107' (global highp int)
+0:140        Constant:
+0:140          41 (const int)
+0:?   Linker Objects
+0:?     'foo' (global highp float)
+0:?     'goodDecl' (global highp int)
+0:?     'a1' (const highp int)
+0:?       4 (const int)
+0:?     'a2' (const highp int)
+0:?       3 (const int)
+0:?     'a3' (const highp int)
+0:?       4 (const int)
+0:?     'a4' (const highp int)
+0:?       3 (const int)
+0:?     'q1' (global highp int)
+0:?     'q2' (global highp int)
+0:?     'q3' (global highp int)
+0:?     'q4' (global highp int)
+0:?     'abdece' (const highp int)
+0:?       10 (const int)
+0:?     'aoeuntaoehu' (const highp int)
+0:?       10 (const int)
+0:?     'funkyf' (global highp float)
+0:?     'funkyh' (global highp int)
+0:?     'funkyo' (global highp int)
+0:?     'c' (global highp int)
+0:?     'd' (global highp int)
+0:?     'bar103' (global highp int)
+0:?     'bar104' (global highp int)
+0:?     'bar105' (global highp int)
+0:?     'bar106' (global highp int)
+0:?     'bar107' (global highp int)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      move second child to first child (temp highp 4-component vector of float)
+0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20        Construct vec4 (temp highp 4-component vector of float)
+0:20          'foo' (global highp float)
+0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22    Function Parameters: 
+0:22      'a' (in highp 4-component vector of float)
+0:24    Sequence
+0:24      Sequence
+0:24        move second child to first child (temp highp 4-component vector of float)
+0:24          'b' (temp highp 4-component vector of float)
+0:24          'a' (in highp 4-component vector of float)
+0:25      Branch: Return with expression
+0:25        'b' (temp highp 4-component vector of float)
+0:47  Sequence
+0:47    move second child to first child (temp highp int)
+0:47      'q1' (global highp int)
+0:47      Constant:
+0:47        1 (const int)
+0:48  Sequence
+0:48    move second child to first child (temp highp int)
+0:48      'q2' (global highp int)
+0:48      Constant:
+0:48        1 (const int)
+0:49  Sequence
+0:49    move second child to first child (temp highp int)
+0:49      'q3' (global highp int)
+0:49      Constant:
+0:49        1 (const int)
+0:50  Sequence
+0:50    move second child to first child (temp highp int)
+0:50      'q4' (global highp int)
+0:50      Constant:
+0:50        1 (const int)
+0:74  Sequence
+0:74    move second child to first child (temp highp float)
+0:74      'funkyf' (global highp float)
+0:75      Constant:
+0:75        12300000000000000.000000
+0:85  Sequence
+0:84    move second child to first child (temp highp int)
+0:84      'funkyh' (global highp int)
+0:86      Constant:
+0:86        244 (const int)
+0:91  Sequence
+0:91    move second child to first child (temp highp int)
+0:91      'funkyo' (global highp int)
+0:92      Constant:
+0:92        34 (const int)
+0:96  Sequence
+0:96    move second child to first child (temp highp int)
+0:96      'c' (global highp int)
+0:97      Constant:
+0:97        11 (const int)
+0:98  Sequence
+0:98    move second child to first child (temp highp int)
+0:98      'd' (global highp int)
+0:98      Constant:
+0:98        12 (const int)
+0:107  Sequence
+0:107    move second child to first child (temp highp int)
+0:107      'bar103' (global highp int)
+0:107      Constant:
+0:107        17 (const int)
+0:113  Sequence
+0:113    move second child to first child (temp highp int)
+0:113      'bar104' (global highp int)
+0:113      Constant:
+0:113        19 (const int)
+0:119  Sequence
+0:119    move second child to first child (temp highp int)
+0:119      'bar105' (global highp int)
+0:119      Constant:
+0:119        19 (const int)
+0:122  Sequence
+0:122    move second child to first child (temp highp int)
+0:122      'bar106' (global highp int)
+0:122      Constant:
+0:122        12 (const int)
+0:123  Sequence
+0:123    move second child to first child (temp highp int)
+0:123      'bar107' (global highp int)
+0:128      Constant:
+0:128        5 (const int)
+0:131  Function Definition: foo203209409( (global void)
+0:131    Function Parameters: 
+0:134    Sequence
+0:134      add second child into first child (temp highp int)
+0:133        'bar107' (global highp int)
+0:134        Constant:
+0:134          37 (const int)
+0:135      multiply second child into first child (temp highp int)
+0:135        'bar107' (global highp int)
+0:136        Constant:
+0:136          38 (const int)
+0:137      divide second child into first child (temp highp int)
+0:137        'bar107' (global highp int)
+0:138        Constant:
+0:138          39 (const int)
+0:139      add (temp highp int)
+0:139        'bar107' (global highp int)
+0:140        Constant:
+0:140          41 (const int)
+0:?   Linker Objects
+0:?     'foo' (global highp float)
+0:?     'goodDecl' (global highp int)
+0:?     'a1' (const highp int)
+0:?       4 (const int)
+0:?     'a2' (const highp int)
+0:?       3 (const int)
+0:?     'a3' (const highp int)
+0:?       4 (const int)
+0:?     'a4' (const highp int)
+0:?       3 (const int)
+0:?     'q1' (global highp int)
+0:?     'q2' (global highp int)
+0:?     'q3' (global highp int)
+0:?     'q4' (global highp int)
+0:?     'abdece' (const highp int)
+0:?       10 (const int)
+0:?     'aoeuntaoehu' (const highp int)
+0:?       10 (const int)
+0:?     'funkyf' (global highp float)
+0:?     'funkyh' (global highp int)
+0:?     'funkyo' (global highp int)
+0:?     'c' (global highp int)
+0:?     'd' (global highp int)
+0:?     'bar103' (global highp int)
+0:?     'bar104' (global highp int)
+0:?     'bar105' (global highp int)
+0:?     'bar106' (global highp int)
+0:?     'bar107' (global highp int)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/lineContinuation100.vert.out b/Test/baseResults/lineContinuation100.vert.out
index 2dcdca6..003637d 100644
--- a/Test/baseResults/lineContinuation100.vert.out
+++ b/Test/baseResults/lineContinuation100.vert.out
@@ -1,137 +1,137 @@
-lineContinuation100.vert

-WARNING: 0:3: 'line continuation' : used at end of comment, but this version does not provide line continuation 

-ERROR: 0:4: '#error' : good error  

-ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:11: '#error' : e2  

-ERROR: 0:13: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:14: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:15: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:18: '#error' : e3  

-ERROR: 0:24: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:40: '\' : illegal use of escape character 

-ERROR: 0:41: '@' : unexpected token 

-ERROR: 0:42: '$' : unexpected token 

-ERROR: 0:43: '\' : illegal use of escape character 

-ERROR: 0:45: '\' : illegal use of escape character 

-ERROR: 0:46: '\' : illegal use of escape character 

-ERROR: 0:47: '$' : unexpected token 

-ERROR: 0:48: '@' : unexpected token 

-ERROR: 0:50: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:52: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 0:53: '#error' : bad continuation  

-ERROR: 0:55: 'line continuation' : not supported for this version or the enabled extensions 

-ERROR: 20 compilation errors.  No code generated.

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      move second child to first child (temp highp 4-component vector of float)

-0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:20        Construct vec4 (temp highp 4-component vector of float)

-0:20          'foo' (global highp float)

-0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)

-0:22    Function Parameters: 

-0:22      'a' (in highp 4-component vector of float)

-0:24    Sequence

-0:24      Sequence

-0:24        move second child to first child (temp highp 4-component vector of float)

-0:24          'b' (temp highp 4-component vector of float)

-0:24          'a' (in highp 4-component vector of float)

-0:25      Branch: Return with expression

-0:25        'b' (temp highp 4-component vector of float)

-0:45  Sequence

-0:45    move second child to first child (temp highp int)

-0:45      'q1' (global highp int)

-0:45      Constant:

-0:45        1 (const int)

-0:46  Sequence

-0:46    move second child to first child (temp highp int)

-0:46      'q2' (global highp int)

-0:46      Constant:

-0:46        1 (const int)

-0:47  Sequence

-0:47    move second child to first child (temp highp int)

-0:47      'q3' (global highp int)

-0:47      Constant:

-0:47        1 (const int)

-0:48  Sequence

-0:48    move second child to first child (temp highp int)

-0:48      'q4' (global highp int)

-0:48      Constant:

-0:48        1 (const int)

-0:?   Linker Objects

-0:?     'foo' (global highp float)

-0:?     'a1' (const highp int)

-0:?       4 (const int)

-0:?     'a2' (const highp int)

-0:?       3 (const int)

-0:?     'a3' (const highp int)

-0:?       4 (const int)

-0:?     'a4' (const highp int)

-0:?       3 (const int)

-0:?     'q1' (global highp int)

-0:?     'q2' (global highp int)

-0:?     'q3' (global highp int)

-0:?     'q4' (global highp int)

-

-

-Linked vertex stage:

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      move second child to first child (temp highp 4-component vector of float)

-0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:20        Construct vec4 (temp highp 4-component vector of float)

-0:20          'foo' (global highp float)

-0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)

-0:22    Function Parameters: 

-0:22      'a' (in highp 4-component vector of float)

-0:24    Sequence

-0:24      Sequence

-0:24        move second child to first child (temp highp 4-component vector of float)

-0:24          'b' (temp highp 4-component vector of float)

-0:24          'a' (in highp 4-component vector of float)

-0:25      Branch: Return with expression

-0:25        'b' (temp highp 4-component vector of float)

-0:45  Sequence

-0:45    move second child to first child (temp highp int)

-0:45      'q1' (global highp int)

-0:45      Constant:

-0:45        1 (const int)

-0:46  Sequence

-0:46    move second child to first child (temp highp int)

-0:46      'q2' (global highp int)

-0:46      Constant:

-0:46        1 (const int)

-0:47  Sequence

-0:47    move second child to first child (temp highp int)

-0:47      'q3' (global highp int)

-0:47      Constant:

-0:47        1 (const int)

-0:48  Sequence

-0:48    move second child to first child (temp highp int)

-0:48      'q4' (global highp int)

-0:48      Constant:

-0:48        1 (const int)

-0:?   Linker Objects

-0:?     'foo' (global highp float)

-0:?     'a1' (const highp int)

-0:?       4 (const int)

-0:?     'a2' (const highp int)

-0:?       3 (const int)

-0:?     'a3' (const highp int)

-0:?       4 (const int)

-0:?     'a4' (const highp int)

-0:?       3 (const int)

-0:?     'q1' (global highp int)

-0:?     'q2' (global highp int)

-0:?     'q3' (global highp int)

-0:?     'q4' (global highp int)

-

+lineContinuation100.vert
+WARNING: 0:3: 'line continuation' : used at end of comment, but this version does not provide line continuation 
+ERROR: 0:4: '#error' : good error  
+ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:11: '#error' : e2  
+ERROR: 0:13: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:14: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:15: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:18: '#error' : e3  
+ERROR: 0:24: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:40: '\' : illegal use of escape character 
+ERROR: 0:41: '@' : unexpected token 
+ERROR: 0:42: '$' : unexpected token 
+ERROR: 0:43: '\' : illegal use of escape character 
+ERROR: 0:45: '\' : illegal use of escape character 
+ERROR: 0:46: '\' : illegal use of escape character 
+ERROR: 0:47: '$' : unexpected token 
+ERROR: 0:48: '@' : unexpected token 
+ERROR: 0:50: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:52: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 0:53: '#error' : bad continuation  
+ERROR: 0:55: 'line continuation' : not supported for this version or the enabled extensions 
+ERROR: 20 compilation errors.  No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      move second child to first child (temp highp 4-component vector of float)
+0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20        Construct vec4 (temp highp 4-component vector of float)
+0:20          'foo' (global highp float)
+0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22    Function Parameters: 
+0:22      'a' (in highp 4-component vector of float)
+0:24    Sequence
+0:24      Sequence
+0:24        move second child to first child (temp highp 4-component vector of float)
+0:24          'b' (temp highp 4-component vector of float)
+0:24          'a' (in highp 4-component vector of float)
+0:25      Branch: Return with expression
+0:25        'b' (temp highp 4-component vector of float)
+0:45  Sequence
+0:45    move second child to first child (temp highp int)
+0:45      'q1' (global highp int)
+0:45      Constant:
+0:45        1 (const int)
+0:46  Sequence
+0:46    move second child to first child (temp highp int)
+0:46      'q2' (global highp int)
+0:46      Constant:
+0:46        1 (const int)
+0:47  Sequence
+0:47    move second child to first child (temp highp int)
+0:47      'q3' (global highp int)
+0:47      Constant:
+0:47        1 (const int)
+0:48  Sequence
+0:48    move second child to first child (temp highp int)
+0:48      'q4' (global highp int)
+0:48      Constant:
+0:48        1 (const int)
+0:?   Linker Objects
+0:?     'foo' (global highp float)
+0:?     'a1' (const highp int)
+0:?       4 (const int)
+0:?     'a2' (const highp int)
+0:?       3 (const int)
+0:?     'a3' (const highp int)
+0:?       4 (const int)
+0:?     'a4' (const highp int)
+0:?       3 (const int)
+0:?     'q1' (global highp int)
+0:?     'q2' (global highp int)
+0:?     'q3' (global highp int)
+0:?     'q4' (global highp int)
+
+
+Linked vertex stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      move second child to first child (temp highp 4-component vector of float)
+0:20        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:20        Construct vec4 (temp highp 4-component vector of float)
+0:20          'foo' (global highp float)
+0:22  Function Definition: foo2(vf4; (global highp 4-component vector of float)
+0:22    Function Parameters: 
+0:22      'a' (in highp 4-component vector of float)
+0:24    Sequence
+0:24      Sequence
+0:24        move second child to first child (temp highp 4-component vector of float)
+0:24          'b' (temp highp 4-component vector of float)
+0:24          'a' (in highp 4-component vector of float)
+0:25      Branch: Return with expression
+0:25        'b' (temp highp 4-component vector of float)
+0:45  Sequence
+0:45    move second child to first child (temp highp int)
+0:45      'q1' (global highp int)
+0:45      Constant:
+0:45        1 (const int)
+0:46  Sequence
+0:46    move second child to first child (temp highp int)
+0:46      'q2' (global highp int)
+0:46      Constant:
+0:46        1 (const int)
+0:47  Sequence
+0:47    move second child to first child (temp highp int)
+0:47      'q3' (global highp int)
+0:47      Constant:
+0:47        1 (const int)
+0:48  Sequence
+0:48    move second child to first child (temp highp int)
+0:48      'q4' (global highp int)
+0:48      Constant:
+0:48        1 (const int)
+0:?   Linker Objects
+0:?     'foo' (global highp float)
+0:?     'a1' (const highp int)
+0:?       4 (const int)
+0:?     'a2' (const highp int)
+0:?       3 (const int)
+0:?     'a3' (const highp int)
+0:?       4 (const int)
+0:?     'a4' (const highp int)
+0:?       3 (const int)
+0:?     'q1' (global highp int)
+0:?     'q2' (global highp int)
+0:?     'q3' (global highp int)
+0:?     'q4' (global highp int)
+
diff --git a/Test/baseResults/link1.frag.out b/Test/baseResults/link1.frag.out
index d585783..bc6cf5c 100644
--- a/Test/baseResults/link1.frag.out
+++ b/Test/baseResults/link1.frag.out
@@ -1,293 +1,293 @@
-link1.frag

-Shader version: 130

-0:? Sequence

-0:8  Sequence

-0:8    move second child to first child (temp 4-component vector of float)

-0:8      'a' (global 4-component vector of float)

-0:8      vector-scale (temp 4-component vector of float)

-0:8        Constant:

-0:8          8.000000

-0:8        'uv4' (uniform 4-component vector of float)

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:17  Sequence

-0:17    move second child to first child (temp 4-component vector of float)

-0:17      'b' (global 4-component vector of float)

-0:17      vector-scale (temp 4-component vector of float)

-0:17        Constant:

-0:17          8.000000

-0:17        'a' (global 4-component vector of float)

-0:19  Function Definition: foo(mf22; (global 2-component vector of int)

-0:19    Function Parameters: 

-0:19      'm' (in 2X2 matrix of float)

-0:21    Sequence

-0:21      Branch: Return with expression

-0:21        Convert float to int (temp 2-component vector of int)

-0:21          direct index (temp 2-component vector of float)

-0:21            'm' (in 2X2 matrix of float)

-0:21            Constant:

-0:21              0 (const int)

-0:24  Sequence

-0:24    move second child to first child (temp 4-component vector of float)

-0:24      'c' (global 4-component vector of float)

-0:24      component-wise multiply (temp 4-component vector of float)

-0:24        'b' (global 4-component vector of float)

-0:24        'b' (global 4-component vector of float)

-0:?   Linker Objects

-0:?     'uv4' (uniform 4-component vector of float)

-0:?     'glass' (uniform 3-component vector of float)

-0:?     'ci' (const int)

-0:?       8 (const int)

-0:?     'a' (global 4-component vector of float)

-0:?     'iv3' (smooth in 3-component vector of float)

-0:?     'cup' (smooth in 4-component vector of float)

-0:?     'b' (global 4-component vector of float)

-0:?     'c' (global 4-component vector of float)

-0:?     'cv3' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'cv3n' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'cv3e' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'um2' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     'um2n' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     'um2e' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     's' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-0:?     'sn' (uniform structure{global int a, global float b})

-0:?     'se' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-

-link2.frag

-Shader version: 130

-Requested GL_OES_standard_derivatives

-Requested GL_OES_texture_3D

-0:? Sequence

-0:8  Sequence

-0:8    move second child to first child (temp 4-component vector of float)

-0:8      'd' (global 4-component vector of float)

-0:8      vector-scale (temp 4-component vector of float)

-0:8        Constant:

-0:8          8.000000

-0:8        'uv4' (uniform 4-component vector of float)

-0:13  Sequence

-0:13    move second child to first child (temp 4-component vector of float)

-0:13      'e' (global 4-component vector of float)

-0:13      vector-scale (temp 4-component vector of float)

-0:13        Constant:

-0:13          8.000000

-0:13        'd' (global 4-component vector of float)

-0:15  Function Definition: foo( (global 2-component vector of int)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Branch: Return with expression

-0:17        Constant:

-0:17          2 (const int)

-0:17          2 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp 4-component vector of float)

-0:20      'f' (global 4-component vector of float)

-0:20      component-wise multiply (temp 4-component vector of float)

-0:20        'e' (global 4-component vector of float)

-0:20        'e' (global 4-component vector of float)

-0:?   Linker Objects

-0:?     'uv4' (uniform 4-component vector of float)

-0:?     'glass' (uniform 2-component vector of float)

-0:?     'ci' (const int)

-0:?       8 (const int)

-0:?     'd' (global 4-component vector of float)

-0:?     'iv3' (smooth in 3-component vector of float)

-0:?     'cup' (flat in 4-component vector of float)

-0:?     'e' (global 4-component vector of float)

-0:?     'f' (global 4-component vector of float)

-0:?     'cv3' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'cv3e' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       2.900000

-0:?     'um2' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     'um2n' (uniform 2X2 matrix of float)

-0:?     'um2e' (uniform 2X2 matrix of float)

-0:?       3.000000

-0:?       0.000000

-0:?       0.000000

-0:?       3.000000

-0:?     's' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-0:?     'sn' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-0:?     'se' (uniform structure{global int a, global float b})

-0:?       81 (const int)

-0:?       3.900000

-

-link3.frag

-Shader version: 300

-Requested GL_OES_EGL_image_external

-Requested GL_OES_standard_derivatives

-Requested GL_OES_texture_3D

-0:? Sequence

-0:?   Linker Objects

-0:?     'iv3' (smooth in highp 2-component vector of float)

-

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Types must match:

-    glass: "uniform 3-component vector of float" versus "uniform 2-component vector of float"

-ERROR: Linking fragment stage: Interpolation and auxiliary storage qualifiers must match:

-    cup: "smooth in 4-component vector of float" versus "flat in 4-component vector of float"

-ERROR: Linking fragment stage: Initializers must match:

-    cv3e

-ERROR: Linking fragment stage: Initializers must match:

-    um2e

-ERROR: Linking fragment stage: Initializers must match:

-    se

-ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders

-

-ERROR: Linking fragment stage: Types must match:

-ERROR: Linking fragment stage: Precision qualifiers must match:

-    iv3: "smooth in 3-component vector of float" versus "smooth in highp 2-component vector of float"

-

-Shader version: 300

-Requested GL_OES_EGL_image_external

-Requested GL_OES_standard_derivatives

-Requested GL_OES_texture_3D

-0:? Sequence

-0:8  Sequence

-0:8    move second child to first child (temp 4-component vector of float)

-0:8      'a' (global 4-component vector of float)

-0:8      vector-scale (temp 4-component vector of float)

-0:8        Constant:

-0:8          8.000000

-0:8        'uv4' (uniform 4-component vector of float)

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:17  Sequence

-0:17    move second child to first child (temp 4-component vector of float)

-0:17      'b' (global 4-component vector of float)

-0:17      vector-scale (temp 4-component vector of float)

-0:17        Constant:

-0:17          8.000000

-0:17        'a' (global 4-component vector of float)

-0:19  Function Definition: foo(mf22; (global 2-component vector of int)

-0:19    Function Parameters: 

-0:19      'm' (in 2X2 matrix of float)

-0:21    Sequence

-0:21      Branch: Return with expression

-0:21        Convert float to int (temp 2-component vector of int)

-0:21          direct index (temp 2-component vector of float)

-0:21            'm' (in 2X2 matrix of float)

-0:21            Constant:

-0:21              0 (const int)

-0:24  Sequence

-0:24    move second child to first child (temp 4-component vector of float)

-0:24      'c' (global 4-component vector of float)

-0:24      component-wise multiply (temp 4-component vector of float)

-0:24        'b' (global 4-component vector of float)

-0:24        'b' (global 4-component vector of float)

-0:8  Sequence

-0:8    move second child to first child (temp 4-component vector of float)

-0:8      'd' (global 4-component vector of float)

-0:8      vector-scale (temp 4-component vector of float)

-0:8        Constant:

-0:8          8.000000

-0:8        'uv4' (uniform 4-component vector of float)

-0:13  Sequence

-0:13    move second child to first child (temp 4-component vector of float)

-0:13      'e' (global 4-component vector of float)

-0:13      vector-scale (temp 4-component vector of float)

-0:13        Constant:

-0:13          8.000000

-0:13        'd' (global 4-component vector of float)

-0:15  Function Definition: foo( (global 2-component vector of int)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Branch: Return with expression

-0:17        Constant:

-0:17          2 (const int)

-0:17          2 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp 4-component vector of float)

-0:20      'f' (global 4-component vector of float)

-0:20      component-wise multiply (temp 4-component vector of float)

-0:20        'e' (global 4-component vector of float)

-0:20        'e' (global 4-component vector of float)

-0:?   Linker Objects

-0:?     'uv4' (uniform 4-component vector of float)

-0:?     'glass' (uniform 3-component vector of float)

-0:?     'ci' (const int)

-0:?       8 (const int)

-0:?     'a' (global 4-component vector of float)

-0:?     'iv3' (smooth in 3-component vector of float)

-0:?     'cup' (smooth in 4-component vector of float)

-0:?     'b' (global 4-component vector of float)

-0:?     'c' (global 4-component vector of float)

-0:?     'cv3' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'cv3n' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'cv3e' (const 3-component vector of float)

-0:?       43.000000

-0:?       0.340000

-0:?       9.900000

-0:?     'um2' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     'um2n' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     'um2e' (uniform 2X2 matrix of float)

-0:?       4.000000

-0:?       0.000000

-0:?       0.000000

-0:?       4.000000

-0:?     's' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-0:?     'sn' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-0:?     'se' (uniform structure{global int a, global float b})

-0:?       82 (const int)

-0:?       3.900000

-0:?     'd' (global 4-component vector of float)

-0:?     'e' (global 4-component vector of float)

-0:?     'f' (global 4-component vector of float)

-

+link1.frag
+Shader version: 130
+0:? Sequence
+0:8  Sequence
+0:8    move second child to first child (temp 4-component vector of float)
+0:8      'a' (global 4-component vector of float)
+0:8      vector-scale (temp 4-component vector of float)
+0:8        Constant:
+0:8          8.000000
+0:8        'uv4' (uniform 4-component vector of float)
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:17  Sequence
+0:17    move second child to first child (temp 4-component vector of float)
+0:17      'b' (global 4-component vector of float)
+0:17      vector-scale (temp 4-component vector of float)
+0:17        Constant:
+0:17          8.000000
+0:17        'a' (global 4-component vector of float)
+0:19  Function Definition: foo(mf22; (global 2-component vector of int)
+0:19    Function Parameters: 
+0:19      'm' (in 2X2 matrix of float)
+0:21    Sequence
+0:21      Branch: Return with expression
+0:21        Convert float to int (temp 2-component vector of int)
+0:21          direct index (temp 2-component vector of float)
+0:21            'm' (in 2X2 matrix of float)
+0:21            Constant:
+0:21              0 (const int)
+0:24  Sequence
+0:24    move second child to first child (temp 4-component vector of float)
+0:24      'c' (global 4-component vector of float)
+0:24      component-wise multiply (temp 4-component vector of float)
+0:24        'b' (global 4-component vector of float)
+0:24        'b' (global 4-component vector of float)
+0:?   Linker Objects
+0:?     'uv4' (uniform 4-component vector of float)
+0:?     'glass' (uniform 3-component vector of float)
+0:?     'ci' (const int)
+0:?       8 (const int)
+0:?     'a' (global 4-component vector of float)
+0:?     'iv3' (smooth in 3-component vector of float)
+0:?     'cup' (smooth in 4-component vector of float)
+0:?     'b' (global 4-component vector of float)
+0:?     'c' (global 4-component vector of float)
+0:?     'cv3' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'cv3n' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'cv3e' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'um2' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     'um2n' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     'um2e' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     's' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+0:?     'sn' (uniform structure{global int a, global float b})
+0:?     'se' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+
+link2.frag
+Shader version: 130
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+0:? Sequence
+0:8  Sequence
+0:8    move second child to first child (temp 4-component vector of float)
+0:8      'd' (global 4-component vector of float)
+0:8      vector-scale (temp 4-component vector of float)
+0:8        Constant:
+0:8          8.000000
+0:8        'uv4' (uniform 4-component vector of float)
+0:13  Sequence
+0:13    move second child to first child (temp 4-component vector of float)
+0:13      'e' (global 4-component vector of float)
+0:13      vector-scale (temp 4-component vector of float)
+0:13        Constant:
+0:13          8.000000
+0:13        'd' (global 4-component vector of float)
+0:15  Function Definition: foo( (global 2-component vector of int)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Branch: Return with expression
+0:17        Constant:
+0:17          2 (const int)
+0:17          2 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp 4-component vector of float)
+0:20      'f' (global 4-component vector of float)
+0:20      component-wise multiply (temp 4-component vector of float)
+0:20        'e' (global 4-component vector of float)
+0:20        'e' (global 4-component vector of float)
+0:?   Linker Objects
+0:?     'uv4' (uniform 4-component vector of float)
+0:?     'glass' (uniform 2-component vector of float)
+0:?     'ci' (const int)
+0:?       8 (const int)
+0:?     'd' (global 4-component vector of float)
+0:?     'iv3' (smooth in 3-component vector of float)
+0:?     'cup' (flat in 4-component vector of float)
+0:?     'e' (global 4-component vector of float)
+0:?     'f' (global 4-component vector of float)
+0:?     'cv3' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'cv3e' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       2.900000
+0:?     'um2' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     'um2n' (uniform 2X2 matrix of float)
+0:?     'um2e' (uniform 2X2 matrix of float)
+0:?       3.000000
+0:?       0.000000
+0:?       0.000000
+0:?       3.000000
+0:?     's' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+0:?     'sn' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+0:?     'se' (uniform structure{global int a, global float b})
+0:?       81 (const int)
+0:?       3.900000
+
+link3.frag
+Shader version: 300
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+0:? Sequence
+0:?   Linker Objects
+0:?     'iv3' (smooth in highp 2-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Types must match:
+    glass: "uniform 3-component vector of float" versus "uniform 2-component vector of float"
+ERROR: Linking fragment stage: Interpolation and auxiliary storage qualifiers must match:
+    cup: "smooth in 4-component vector of float" versus "flat in 4-component vector of float"
+ERROR: Linking fragment stage: Initializers must match:
+    cv3e
+ERROR: Linking fragment stage: Initializers must match:
+    um2e
+ERROR: Linking fragment stage: Initializers must match:
+    se
+ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders
+
+ERROR: Linking fragment stage: Types must match:
+ERROR: Linking fragment stage: Precision qualifiers must match:
+    iv3: "smooth in 3-component vector of float" versus "smooth in highp 2-component vector of float"
+
+Shader version: 300
+Requested GL_OES_EGL_image_external
+Requested GL_OES_standard_derivatives
+Requested GL_OES_texture_3D
+0:? Sequence
+0:8  Sequence
+0:8    move second child to first child (temp 4-component vector of float)
+0:8      'a' (global 4-component vector of float)
+0:8      vector-scale (temp 4-component vector of float)
+0:8        Constant:
+0:8          8.000000
+0:8        'uv4' (uniform 4-component vector of float)
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:17  Sequence
+0:17    move second child to first child (temp 4-component vector of float)
+0:17      'b' (global 4-component vector of float)
+0:17      vector-scale (temp 4-component vector of float)
+0:17        Constant:
+0:17          8.000000
+0:17        'a' (global 4-component vector of float)
+0:19  Function Definition: foo(mf22; (global 2-component vector of int)
+0:19    Function Parameters: 
+0:19      'm' (in 2X2 matrix of float)
+0:21    Sequence
+0:21      Branch: Return with expression
+0:21        Convert float to int (temp 2-component vector of int)
+0:21          direct index (temp 2-component vector of float)
+0:21            'm' (in 2X2 matrix of float)
+0:21            Constant:
+0:21              0 (const int)
+0:24  Sequence
+0:24    move second child to first child (temp 4-component vector of float)
+0:24      'c' (global 4-component vector of float)
+0:24      component-wise multiply (temp 4-component vector of float)
+0:24        'b' (global 4-component vector of float)
+0:24        'b' (global 4-component vector of float)
+0:8  Sequence
+0:8    move second child to first child (temp 4-component vector of float)
+0:8      'd' (global 4-component vector of float)
+0:8      vector-scale (temp 4-component vector of float)
+0:8        Constant:
+0:8          8.000000
+0:8        'uv4' (uniform 4-component vector of float)
+0:13  Sequence
+0:13    move second child to first child (temp 4-component vector of float)
+0:13      'e' (global 4-component vector of float)
+0:13      vector-scale (temp 4-component vector of float)
+0:13        Constant:
+0:13          8.000000
+0:13        'd' (global 4-component vector of float)
+0:15  Function Definition: foo( (global 2-component vector of int)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Branch: Return with expression
+0:17        Constant:
+0:17          2 (const int)
+0:17          2 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp 4-component vector of float)
+0:20      'f' (global 4-component vector of float)
+0:20      component-wise multiply (temp 4-component vector of float)
+0:20        'e' (global 4-component vector of float)
+0:20        'e' (global 4-component vector of float)
+0:?   Linker Objects
+0:?     'uv4' (uniform 4-component vector of float)
+0:?     'glass' (uniform 3-component vector of float)
+0:?     'ci' (const int)
+0:?       8 (const int)
+0:?     'a' (global 4-component vector of float)
+0:?     'iv3' (smooth in 3-component vector of float)
+0:?     'cup' (smooth in 4-component vector of float)
+0:?     'b' (global 4-component vector of float)
+0:?     'c' (global 4-component vector of float)
+0:?     'cv3' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'cv3n' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'cv3e' (const 3-component vector of float)
+0:?       43.000000
+0:?       0.340000
+0:?       9.900000
+0:?     'um2' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     'um2n' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     'um2e' (uniform 2X2 matrix of float)
+0:?       4.000000
+0:?       0.000000
+0:?       0.000000
+0:?       4.000000
+0:?     's' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+0:?     'sn' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+0:?     'se' (uniform structure{global int a, global float b})
+0:?       82 (const int)
+0:?       3.900000
+0:?     'd' (global 4-component vector of float)
+0:?     'e' (global 4-component vector of float)
+0:?     'f' (global 4-component vector of float)
+
diff --git a/Test/baseResults/localAggregates.frag.out b/Test/baseResults/localAggregates.frag.out
index ad47744..2e8ae76 100644
--- a/Test/baseResults/localAggregates.frag.out
+++ b/Test/baseResults/localAggregates.frag.out
@@ -1,414 +1,414 @@
-localAggregates.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:5: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:34  Function Definition: main( (global void)

-0:34    Function Parameters: 

-0:?     Sequence

-0:41      move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:41        'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:41        s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:41          'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:41          Constant:

-0:41            0 (const int)

-0:43      Test condition and select (temp void)

-0:43        Condition

-0:43        Compare Greater Than (temp bool)

-0:43          i: direct index for structure (global int)

-0:43            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:43              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:43              Constant:

-0:43                0 (const int)

-0:43            Constant:

-0:43              0 (const int)

-0:43          Constant:

-0:43            0 (const int)

-0:43        true case

-0:44        Sequence

-0:44          move second child to first child (temp float)

-0:44            f: direct index for structure (global float)

-0:44              s1_1: direct index for structure (global structure{global int i, global float f})

-0:44                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:44                Constant:

-0:44                  2 (const int)

-0:44              Constant:

-0:44                1 (const int)

-0:44            Constant:

-0:44              1.000000

-0:45          move second child to first child (temp float)

-0:45            direct index (temp float)

-0:45              'localFArray' (temp 16-element array of float)

-0:45              Constant:

-0:45                4 (const int)

-0:45            direct index (temp float)

-0:45              'coord' (smooth in 2-component vector of float)

-0:45              Constant:

-0:45                0 (const int)

-0:46          move second child to first child (temp int)

-0:46            direct index (temp int)

-0:46              'localIArray' (temp 8-element array of int)

-0:46              Constant:

-0:46                2 (const int)

-0:46            i: direct index for structure (global int)

-0:46              s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:46                'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:46                Constant:

-0:46                  0 (const int)

-0:46              Constant:

-0:46                0 (const int)

-0:43        false case

-0:48        Sequence

-0:48          move second child to first child (temp float)

-0:48            f: direct index for structure (global float)

-0:48              s1_1: direct index for structure (global structure{global int i, global float f})

-0:48                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:48                Constant:

-0:48                  2 (const int)

-0:48              Constant:

-0:48                1 (const int)

-0:48            direct index (temp float)

-0:48              'coord' (smooth in 2-component vector of float)

-0:48              Constant:

-0:48                0 (const int)

-0:49          move second child to first child (temp float)

-0:49            direct index (temp float)

-0:49              'localFArray' (temp 16-element array of float)

-0:49              Constant:

-0:49                4 (const int)

-0:49            Constant:

-0:49              1.000000

-0:50          move second child to first child (temp int)

-0:50            direct index (temp int)

-0:50              'localIArray' (temp 8-element array of int)

-0:50              Constant:

-0:50                2 (const int)

-0:50            Constant:

-0:50              0 (const int)

-0:53      Test condition and select (temp void)

-0:53        Condition

-0:53        Compare Equal (temp bool)

-0:53          direct index (temp int)

-0:53            'localIArray' (temp 8-element array of int)

-0:53            Constant:

-0:53              2 (const int)

-0:53          Constant:

-0:53            0 (const int)

-0:53        true case

-0:54        Pre-Increment (temp float)

-0:54          direct index (temp float)

-0:54            'localFArray' (temp 16-element array of float)

-0:54            Constant:

-0:54              4 (const int)

-0:57      Sequence

-0:57        move second child to first child (temp int)

-0:57          'x' (temp int)

-0:57          Constant:

-0:57            5 (const int)

-0:58      move second child to first child (temp float)

-0:58        indirect index (temp float)

-0:58          'localArray' (temp 16-element array of float)

-0:58          'x' (temp int)

-0:58        direct index (temp float)

-0:58          'coord' (smooth in 2-component vector of float)

-0:58          Constant:

-0:58            0 (const int)

-0:62      Sequence

-0:62        Sequence

-0:62          move second child to first child (temp int)

-0:62            'i' (temp int)

-0:62            Constant:

-0:62              0 (const int)

-0:62        Loop with condition tested first

-0:62          Loop Condition

-0:62          Compare Less Than (temp bool)

-0:62            'i' (temp int)

-0:62            Constant:

-0:62              16 (const int)

-0:62          Loop Body

-0:63          move second child to first child (temp float)

-0:63            indirect index (temp float)

-0:63              'a' (temp 16-element array of float)

-0:63              'i' (temp int)

-0:63            Constant:

-0:63              0.000000

-0:62          Loop Terminal Expression

-0:62          Post-Increment (temp int)

-0:62            'i' (temp int)

-0:65      Test condition and select (temp void)

-0:65        Condition

-0:65        Compare Equal (temp bool)

-0:65          'condition' (uniform int)

-0:65          Constant:

-0:65            1 (const int)

-0:65        true case

-0:66        move second child to first child (temp 16-element array of float)

-0:66          'a' (temp 16-element array of float)

-0:66          'localArray' (temp 16-element array of float)

-0:68      move second child to first child (temp 4-component vector of float)

-0:68        bleh: direct index for structure (global 4-component vector of float)

-0:68          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:68          Constant:

-0:68            3 (const int)

-0:68        'color' (smooth in 4-component vector of float)

-0:69      move second child to first child (temp float)

-0:69        direct index (temp float)

-0:69          bleh: direct index for structure (global 4-component vector of float)

-0:69            'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:69            Constant:

-0:69              3 (const int)

-0:69          Constant:

-0:69            2 (const int)

-0:69        direct index (temp float)

-0:69          'coord' (smooth in 2-component vector of float)

-0:69          Constant:

-0:69            1 (const int)

-0:71      move second child to first child (temp 4-component vector of float)

-0:71        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:71        component-wise multiply (temp 4-component vector of float)

-0:71          vector-scale (temp 4-component vector of float)

-0:71            bleh: direct index for structure (global 4-component vector of float)

-0:71              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:71              Constant:

-0:71                3 (const int)

-0:71            add (temp float)

-0:71              add (temp float)

-0:71                add (temp float)

-0:71                  direct index (temp float)

-0:71                    'localFArray' (temp 16-element array of float)

-0:71                    Constant:

-0:71                      4 (const int)

-0:71                  f: direct index for structure (global float)

-0:71                    s1_1: direct index for structure (global structure{global int i, global float f})

-0:71                      'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:71                      Constant:

-0:71                        2 (const int)

-0:71                    Constant:

-0:71                      1 (const int)

-0:71                indirect index (temp float)

-0:71                  'localArray' (temp 16-element array of float)

-0:71                  'x' (temp int)

-0:71              indirect index (temp float)

-0:71                'a' (temp 16-element array of float)

-0:71                'x' (temp int)

-0:71          texture (global 4-component vector of float)

-0:71            'sampler' (uniform sampler2D)

-0:71            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'color' (smooth in 4-component vector of float)

-0:?     'foo' (uniform structure{global int i, global float f})

-0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'uFloatArray' (uniform 16-element array of float)

-0:?     'condition' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:34  Function Definition: main( (global void)

-0:34    Function Parameters: 

-0:?     Sequence

-0:41      move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:41        'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:41        s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:41          'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:41          Constant:

-0:41            0 (const int)

-0:43      Test condition and select (temp void)

-0:43        Condition

-0:43        Compare Greater Than (temp bool)

-0:43          i: direct index for structure (global int)

-0:43            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:43              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:43              Constant:

-0:43                0 (const int)

-0:43            Constant:

-0:43              0 (const int)

-0:43          Constant:

-0:43            0 (const int)

-0:43        true case

-0:44        Sequence

-0:44          move second child to first child (temp float)

-0:44            f: direct index for structure (global float)

-0:44              s1_1: direct index for structure (global structure{global int i, global float f})

-0:44                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:44                Constant:

-0:44                  2 (const int)

-0:44              Constant:

-0:44                1 (const int)

-0:44            Constant:

-0:44              1.000000

-0:45          move second child to first child (temp float)

-0:45            direct index (temp float)

-0:45              'localFArray' (temp 16-element array of float)

-0:45              Constant:

-0:45                4 (const int)

-0:45            direct index (temp float)

-0:45              'coord' (smooth in 2-component vector of float)

-0:45              Constant:

-0:45                0 (const int)

-0:46          move second child to first child (temp int)

-0:46            direct index (temp int)

-0:46              'localIArray' (temp 8-element array of int)

-0:46              Constant:

-0:46                2 (const int)

-0:46            i: direct index for structure (global int)

-0:46              s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:46                'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:46                Constant:

-0:46                  0 (const int)

-0:46              Constant:

-0:46                0 (const int)

-0:43        false case

-0:48        Sequence

-0:48          move second child to first child (temp float)

-0:48            f: direct index for structure (global float)

-0:48              s1_1: direct index for structure (global structure{global int i, global float f})

-0:48                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:48                Constant:

-0:48                  2 (const int)

-0:48              Constant:

-0:48                1 (const int)

-0:48            direct index (temp float)

-0:48              'coord' (smooth in 2-component vector of float)

-0:48              Constant:

-0:48                0 (const int)

-0:49          move second child to first child (temp float)

-0:49            direct index (temp float)

-0:49              'localFArray' (temp 16-element array of float)

-0:49              Constant:

-0:49                4 (const int)

-0:49            Constant:

-0:49              1.000000

-0:50          move second child to first child (temp int)

-0:50            direct index (temp int)

-0:50              'localIArray' (temp 8-element array of int)

-0:50              Constant:

-0:50                2 (const int)

-0:50            Constant:

-0:50              0 (const int)

-0:53      Test condition and select (temp void)

-0:53        Condition

-0:53        Compare Equal (temp bool)

-0:53          direct index (temp int)

-0:53            'localIArray' (temp 8-element array of int)

-0:53            Constant:

-0:53              2 (const int)

-0:53          Constant:

-0:53            0 (const int)

-0:53        true case

-0:54        Pre-Increment (temp float)

-0:54          direct index (temp float)

-0:54            'localFArray' (temp 16-element array of float)

-0:54            Constant:

-0:54              4 (const int)

-0:57      Sequence

-0:57        move second child to first child (temp int)

-0:57          'x' (temp int)

-0:57          Constant:

-0:57            5 (const int)

-0:58      move second child to first child (temp float)

-0:58        indirect index (temp float)

-0:58          'localArray' (temp 16-element array of float)

-0:58          'x' (temp int)

-0:58        direct index (temp float)

-0:58          'coord' (smooth in 2-component vector of float)

-0:58          Constant:

-0:58            0 (const int)

-0:62      Sequence

-0:62        Sequence

-0:62          move second child to first child (temp int)

-0:62            'i' (temp int)

-0:62            Constant:

-0:62              0 (const int)

-0:62        Loop with condition tested first

-0:62          Loop Condition

-0:62          Compare Less Than (temp bool)

-0:62            'i' (temp int)

-0:62            Constant:

-0:62              16 (const int)

-0:62          Loop Body

-0:63          move second child to first child (temp float)

-0:63            indirect index (temp float)

-0:63              'a' (temp 16-element array of float)

-0:63              'i' (temp int)

-0:63            Constant:

-0:63              0.000000

-0:62          Loop Terminal Expression

-0:62          Post-Increment (temp int)

-0:62            'i' (temp int)

-0:65      Test condition and select (temp void)

-0:65        Condition

-0:65        Compare Equal (temp bool)

-0:65          'condition' (uniform int)

-0:65          Constant:

-0:65            1 (const int)

-0:65        true case

-0:66        move second child to first child (temp 16-element array of float)

-0:66          'a' (temp 16-element array of float)

-0:66          'localArray' (temp 16-element array of float)

-0:68      move second child to first child (temp 4-component vector of float)

-0:68        bleh: direct index for structure (global 4-component vector of float)

-0:68          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:68          Constant:

-0:68            3 (const int)

-0:68        'color' (smooth in 4-component vector of float)

-0:69      move second child to first child (temp float)

-0:69        direct index (temp float)

-0:69          bleh: direct index for structure (global 4-component vector of float)

-0:69            'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:69            Constant:

-0:69              3 (const int)

-0:69          Constant:

-0:69            2 (const int)

-0:69        direct index (temp float)

-0:69          'coord' (smooth in 2-component vector of float)

-0:69          Constant:

-0:69            1 (const int)

-0:71      move second child to first child (temp 4-component vector of float)

-0:71        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:71        component-wise multiply (temp 4-component vector of float)

-0:71          vector-scale (temp 4-component vector of float)

-0:71            bleh: direct index for structure (global 4-component vector of float)

-0:71              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:71              Constant:

-0:71                3 (const int)

-0:71            add (temp float)

-0:71              add (temp float)

-0:71                add (temp float)

-0:71                  direct index (temp float)

-0:71                    'localFArray' (temp 16-element array of float)

-0:71                    Constant:

-0:71                      4 (const int)

-0:71                  f: direct index for structure (global float)

-0:71                    s1_1: direct index for structure (global structure{global int i, global float f})

-0:71                      'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:71                      Constant:

-0:71                        2 (const int)

-0:71                    Constant:

-0:71                      1 (const int)

-0:71                indirect index (temp float)

-0:71                  'localArray' (temp 16-element array of float)

-0:71                  'x' (temp int)

-0:71              indirect index (temp float)

-0:71                'a' (temp 16-element array of float)

-0:71                'x' (temp int)

-0:71          texture (global 4-component vector of float)

-0:71            'sampler' (uniform sampler2D)

-0:71            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'color' (smooth in 4-component vector of float)

-0:?     'foo' (uniform structure{global int i, global float f})

-0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})

-0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'uFloatArray' (uniform 16-element array of float)

-0:?     'condition' (uniform int)

-

+localAggregates.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:5: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:34  Function Definition: main( (global void)
+0:34    Function Parameters: 
+0:?     Sequence
+0:41      move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41        'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41        s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41          'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:41          Constant:
+0:41            0 (const int)
+0:43      Test condition and select (temp void)
+0:43        Condition
+0:43        Compare Greater Than (temp bool)
+0:43          i: direct index for structure (global int)
+0:43            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:43              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:43              Constant:
+0:43                0 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            0 (const int)
+0:43        true case
+0:44        Sequence
+0:44          move second child to first child (temp float)
+0:44            f: direct index for structure (global float)
+0:44              s1_1: direct index for structure (global structure{global int i, global float f})
+0:44                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:44                Constant:
+0:44                  2 (const int)
+0:44              Constant:
+0:44                1 (const int)
+0:44            Constant:
+0:44              1.000000
+0:45          move second child to first child (temp float)
+0:45            direct index (temp float)
+0:45              'localFArray' (temp 16-element array of float)
+0:45              Constant:
+0:45                4 (const int)
+0:45            direct index (temp float)
+0:45              'coord' (smooth in 2-component vector of float)
+0:45              Constant:
+0:45                0 (const int)
+0:46          move second child to first child (temp int)
+0:46            direct index (temp int)
+0:46              'localIArray' (temp 8-element array of int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            i: direct index for structure (global int)
+0:46              s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:46                'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:46                Constant:
+0:46                  0 (const int)
+0:46              Constant:
+0:46                0 (const int)
+0:43        false case
+0:48        Sequence
+0:48          move second child to first child (temp float)
+0:48            f: direct index for structure (global float)
+0:48              s1_1: direct index for structure (global structure{global int i, global float f})
+0:48                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:48                Constant:
+0:48                  2 (const int)
+0:48              Constant:
+0:48                1 (const int)
+0:48            direct index (temp float)
+0:48              'coord' (smooth in 2-component vector of float)
+0:48              Constant:
+0:48                0 (const int)
+0:49          move second child to first child (temp float)
+0:49            direct index (temp float)
+0:49              'localFArray' (temp 16-element array of float)
+0:49              Constant:
+0:49                4 (const int)
+0:49            Constant:
+0:49              1.000000
+0:50          move second child to first child (temp int)
+0:50            direct index (temp int)
+0:50              'localIArray' (temp 8-element array of int)
+0:50              Constant:
+0:50                2 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:53      Test condition and select (temp void)
+0:53        Condition
+0:53        Compare Equal (temp bool)
+0:53          direct index (temp int)
+0:53            'localIArray' (temp 8-element array of int)
+0:53            Constant:
+0:53              2 (const int)
+0:53          Constant:
+0:53            0 (const int)
+0:53        true case
+0:54        Pre-Increment (temp float)
+0:54          direct index (temp float)
+0:54            'localFArray' (temp 16-element array of float)
+0:54            Constant:
+0:54              4 (const int)
+0:57      Sequence
+0:57        move second child to first child (temp int)
+0:57          'x' (temp int)
+0:57          Constant:
+0:57            5 (const int)
+0:58      move second child to first child (temp float)
+0:58        indirect index (temp float)
+0:58          'localArray' (temp 16-element array of float)
+0:58          'x' (temp int)
+0:58        direct index (temp float)
+0:58          'coord' (smooth in 2-component vector of float)
+0:58          Constant:
+0:58            0 (const int)
+0:62      Sequence
+0:62        Sequence
+0:62          move second child to first child (temp int)
+0:62            'i' (temp int)
+0:62            Constant:
+0:62              0 (const int)
+0:62        Loop with condition tested first
+0:62          Loop Condition
+0:62          Compare Less Than (temp bool)
+0:62            'i' (temp int)
+0:62            Constant:
+0:62              16 (const int)
+0:62          Loop Body
+0:63          move second child to first child (temp float)
+0:63            indirect index (temp float)
+0:63              'a' (temp 16-element array of float)
+0:63              'i' (temp int)
+0:63            Constant:
+0:63              0.000000
+0:62          Loop Terminal Expression
+0:62          Post-Increment (temp int)
+0:62            'i' (temp int)
+0:65      Test condition and select (temp void)
+0:65        Condition
+0:65        Compare Equal (temp bool)
+0:65          'condition' (uniform int)
+0:65          Constant:
+0:65            1 (const int)
+0:65        true case
+0:66        move second child to first child (temp 16-element array of float)
+0:66          'a' (temp 16-element array of float)
+0:66          'localArray' (temp 16-element array of float)
+0:68      move second child to first child (temp 4-component vector of float)
+0:68        bleh: direct index for structure (global 4-component vector of float)
+0:68          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:68          Constant:
+0:68            3 (const int)
+0:68        'color' (smooth in 4-component vector of float)
+0:69      move second child to first child (temp float)
+0:69        direct index (temp float)
+0:69          bleh: direct index for structure (global 4-component vector of float)
+0:69            'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:69            Constant:
+0:69              3 (const int)
+0:69          Constant:
+0:69            2 (const int)
+0:69        direct index (temp float)
+0:69          'coord' (smooth in 2-component vector of float)
+0:69          Constant:
+0:69            1 (const int)
+0:71      move second child to first child (temp 4-component vector of float)
+0:71        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:71        component-wise multiply (temp 4-component vector of float)
+0:71          vector-scale (temp 4-component vector of float)
+0:71            bleh: direct index for structure (global 4-component vector of float)
+0:71              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71              Constant:
+0:71                3 (const int)
+0:71            add (temp float)
+0:71              add (temp float)
+0:71                add (temp float)
+0:71                  direct index (temp float)
+0:71                    'localFArray' (temp 16-element array of float)
+0:71                    Constant:
+0:71                      4 (const int)
+0:71                  f: direct index for structure (global float)
+0:71                    s1_1: direct index for structure (global structure{global int i, global float f})
+0:71                      'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71                      Constant:
+0:71                        2 (const int)
+0:71                    Constant:
+0:71                      1 (const int)
+0:71                indirect index (temp float)
+0:71                  'localArray' (temp 16-element array of float)
+0:71                  'x' (temp int)
+0:71              indirect index (temp float)
+0:71                'a' (temp 16-element array of float)
+0:71                'x' (temp int)
+0:71          texture (global 4-component vector of float)
+0:71            'sampler' (uniform sampler2D)
+0:71            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'color' (smooth in 4-component vector of float)
+0:?     'foo' (uniform structure{global int i, global float f})
+0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'uFloatArray' (uniform 16-element array of float)
+0:?     'condition' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:34  Function Definition: main( (global void)
+0:34    Function Parameters: 
+0:?     Sequence
+0:41      move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41        'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41        s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:41          'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:41          Constant:
+0:41            0 (const int)
+0:43      Test condition and select (temp void)
+0:43        Condition
+0:43        Compare Greater Than (temp bool)
+0:43          i: direct index for structure (global int)
+0:43            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:43              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:43              Constant:
+0:43                0 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            0 (const int)
+0:43        true case
+0:44        Sequence
+0:44          move second child to first child (temp float)
+0:44            f: direct index for structure (global float)
+0:44              s1_1: direct index for structure (global structure{global int i, global float f})
+0:44                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:44                Constant:
+0:44                  2 (const int)
+0:44              Constant:
+0:44                1 (const int)
+0:44            Constant:
+0:44              1.000000
+0:45          move second child to first child (temp float)
+0:45            direct index (temp float)
+0:45              'localFArray' (temp 16-element array of float)
+0:45              Constant:
+0:45                4 (const int)
+0:45            direct index (temp float)
+0:45              'coord' (smooth in 2-component vector of float)
+0:45              Constant:
+0:45                0 (const int)
+0:46          move second child to first child (temp int)
+0:46            direct index (temp int)
+0:46              'localIArray' (temp 8-element array of int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            i: direct index for structure (global int)
+0:46              s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:46                'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:46                Constant:
+0:46                  0 (const int)
+0:46              Constant:
+0:46                0 (const int)
+0:43        false case
+0:48        Sequence
+0:48          move second child to first child (temp float)
+0:48            f: direct index for structure (global float)
+0:48              s1_1: direct index for structure (global structure{global int i, global float f})
+0:48                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:48                Constant:
+0:48                  2 (const int)
+0:48              Constant:
+0:48                1 (const int)
+0:48            direct index (temp float)
+0:48              'coord' (smooth in 2-component vector of float)
+0:48              Constant:
+0:48                0 (const int)
+0:49          move second child to first child (temp float)
+0:49            direct index (temp float)
+0:49              'localFArray' (temp 16-element array of float)
+0:49              Constant:
+0:49                4 (const int)
+0:49            Constant:
+0:49              1.000000
+0:50          move second child to first child (temp int)
+0:50            direct index (temp int)
+0:50              'localIArray' (temp 8-element array of int)
+0:50              Constant:
+0:50                2 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:53      Test condition and select (temp void)
+0:53        Condition
+0:53        Compare Equal (temp bool)
+0:53          direct index (temp int)
+0:53            'localIArray' (temp 8-element array of int)
+0:53            Constant:
+0:53              2 (const int)
+0:53          Constant:
+0:53            0 (const int)
+0:53        true case
+0:54        Pre-Increment (temp float)
+0:54          direct index (temp float)
+0:54            'localFArray' (temp 16-element array of float)
+0:54            Constant:
+0:54              4 (const int)
+0:57      Sequence
+0:57        move second child to first child (temp int)
+0:57          'x' (temp int)
+0:57          Constant:
+0:57            5 (const int)
+0:58      move second child to first child (temp float)
+0:58        indirect index (temp float)
+0:58          'localArray' (temp 16-element array of float)
+0:58          'x' (temp int)
+0:58        direct index (temp float)
+0:58          'coord' (smooth in 2-component vector of float)
+0:58          Constant:
+0:58            0 (const int)
+0:62      Sequence
+0:62        Sequence
+0:62          move second child to first child (temp int)
+0:62            'i' (temp int)
+0:62            Constant:
+0:62              0 (const int)
+0:62        Loop with condition tested first
+0:62          Loop Condition
+0:62          Compare Less Than (temp bool)
+0:62            'i' (temp int)
+0:62            Constant:
+0:62              16 (const int)
+0:62          Loop Body
+0:63          move second child to first child (temp float)
+0:63            indirect index (temp float)
+0:63              'a' (temp 16-element array of float)
+0:63              'i' (temp int)
+0:63            Constant:
+0:63              0.000000
+0:62          Loop Terminal Expression
+0:62          Post-Increment (temp int)
+0:62            'i' (temp int)
+0:65      Test condition and select (temp void)
+0:65        Condition
+0:65        Compare Equal (temp bool)
+0:65          'condition' (uniform int)
+0:65          Constant:
+0:65            1 (const int)
+0:65        true case
+0:66        move second child to first child (temp 16-element array of float)
+0:66          'a' (temp 16-element array of float)
+0:66          'localArray' (temp 16-element array of float)
+0:68      move second child to first child (temp 4-component vector of float)
+0:68        bleh: direct index for structure (global 4-component vector of float)
+0:68          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:68          Constant:
+0:68            3 (const int)
+0:68        'color' (smooth in 4-component vector of float)
+0:69      move second child to first child (temp float)
+0:69        direct index (temp float)
+0:69          bleh: direct index for structure (global 4-component vector of float)
+0:69            'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:69            Constant:
+0:69              3 (const int)
+0:69          Constant:
+0:69            2 (const int)
+0:69        direct index (temp float)
+0:69          'coord' (smooth in 2-component vector of float)
+0:69          Constant:
+0:69            1 (const int)
+0:71      move second child to first child (temp 4-component vector of float)
+0:71        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:71        component-wise multiply (temp 4-component vector of float)
+0:71          vector-scale (temp 4-component vector of float)
+0:71            bleh: direct index for structure (global 4-component vector of float)
+0:71              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71              Constant:
+0:71                3 (const int)
+0:71            add (temp float)
+0:71              add (temp float)
+0:71                add (temp float)
+0:71                  direct index (temp float)
+0:71                    'localFArray' (temp 16-element array of float)
+0:71                    Constant:
+0:71                      4 (const int)
+0:71                  f: direct index for structure (global float)
+0:71                    s1_1: direct index for structure (global structure{global int i, global float f})
+0:71                      'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:71                      Constant:
+0:71                        2 (const int)
+0:71                    Constant:
+0:71                      1 (const int)
+0:71                indirect index (temp float)
+0:71                  'localArray' (temp 16-element array of float)
+0:71                  'x' (temp int)
+0:71              indirect index (temp float)
+0:71                'a' (temp 16-element array of float)
+0:71                'x' (temp int)
+0:71          texture (global 4-component vector of float)
+0:71            'sampler' (uniform sampler2D)
+0:71            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'color' (smooth in 4-component vector of float)
+0:?     'foo' (uniform structure{global int i, global float f})
+0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh})
+0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'uFloatArray' (uniform 16-element array of float)
+0:?     'condition' (uniform int)
+
diff --git a/Test/baseResults/loops.frag.out b/Test/baseResults/loops.frag.out
index 36e8e5a..b592dbd 100644
--- a/Test/baseResults/loops.frag.out
+++ b/Test/baseResults/loops.frag.out
@@ -1,1935 +1,1935 @@
-loops.frag

-WARNING: 0:14: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:53  Function Definition: main( (global void)

-0:53    Function Parameters: 

-0:55    Sequence

-0:55      Sequence

-0:55        move second child to first child (temp 4-component vector of float)

-0:55          'color' (temp 4-component vector of float)

-0:55          'BaseColor' (smooth in 4-component vector of float)

-0:58      Loop with condition tested first

-0:58        Loop Condition

-0:58        Constant:

-0:58          true (const bool)

-0:58        Loop Body

-0:59        Sequence

-0:59          Test condition and select (temp void)

-0:59            Condition

-0:59            Compare Less Than (temp bool)

-0:59              direct index (temp float)

-0:59                'color' (temp 4-component vector of float)

-0:59                Constant:

-0:59                  0 (const int)

-0:59              Constant:

-0:59                0.330000

-0:59            true case

-0:60            Sequence

-0:60              add second child into first child (temp 4-component vector of float)

-0:60                'color' (temp 4-component vector of float)

-0:60                Constant:

-0:60                  0.330000

-0:60                  0.330000

-0:60                  0.330000

-0:60                  0.330000

-0:61              Branch: Break

-0:63          Test condition and select (temp void)

-0:63            Condition

-0:63            Compare Less Than (temp bool)

-0:63              direct index (temp float)

-0:63                'color' (temp 4-component vector of float)

-0:63                Constant:

-0:63                  0 (const int)

-0:63              Constant:

-0:63                0.660000

-0:63            true case

-0:64            Sequence

-0:64              add second child into first child (temp 4-component vector of float)

-0:64                'color' (temp 4-component vector of float)

-0:64                Constant:

-0:64                  0.660000

-0:64                  0.660000

-0:64                  0.660000

-0:64                  0.660000

-0:65              Branch: Break

-0:68          add second child into first child (temp 4-component vector of float)

-0:68            'color' (temp 4-component vector of float)

-0:68            Constant:

-0:68              0.330000

-0:68              0.330000

-0:68              0.330000

-0:68              0.330000

-0:69          Branch: Break

-0:73      Loop with condition tested first

-0:73        Loop Condition

-0:73        Compare Less Than (temp bool)

-0:73          direct index (temp float)

-0:73            'color' (temp 4-component vector of float)

-0:73            Constant:

-0:73              0 (const int)

-0:73          'd' (uniform float)

-0:73        Loop Body

-0:74        Sequence

-0:74          add second child into first child (temp 4-component vector of float)

-0:74            'color' (temp 4-component vector of float)

-0:74            'bigColor' (uniform 4-component vector of float)

-0:78      Loop with condition tested first

-0:78        Loop Condition

-0:78        Compare Less Than (temp bool)

-0:78          direct index (temp float)

-0:78            'color' (temp 4-component vector of float)

-0:78            Constant:

-0:78              2 (const int)

-0:78          'd' (uniform float)

-0:78        Loop Body

-0:79        Sequence

-0:79          add second child into first child (temp 4-component vector of float)

-0:79            'color' (temp 4-component vector of float)

-0:79            'bigColor1_1' (uniform 4-component vector of float)

-0:80          Test condition and select (temp void)

-0:80            Condition

-0:80            Compare Less Than (temp bool)

-0:80              direct index (temp float)

-0:80                'color' (temp 4-component vector of float)

-0:80                Constant:

-0:80                  3 (const int)

-0:80              'd' (uniform float)

-0:80            true case

-0:81            Branch: Continue

-0:83          add second child into first child (temp 4-component vector of float)

-0:83            'color' (temp 4-component vector of float)

-0:83            'bigColor1_1' (uniform 4-component vector of float)

-0:87      Loop with condition tested first

-0:87        Loop Condition

-0:87        Compare Less Than (temp bool)

-0:87          direct index (temp float)

-0:87            'color' (temp 4-component vector of float)

-0:87            Constant:

-0:87              0 (const int)

-0:87          Constant:

-0:87            42.000000

-0:87        Loop Body

-0:88        Sequence

-0:88          Pre-Increment (temp 4-component vector of float)

-0:88            'color' (temp 4-component vector of float)

-0:92      Loop with condition tested first

-0:92        Loop Condition

-0:92        logical-and (temp bool)

-0:92          Compare Less Than (temp bool)

-0:92            direct index (temp float)

-0:92              'color' (temp 4-component vector of float)

-0:92              Constant:

-0:92                3 (const int)

-0:92            'd2' (uniform float)

-0:92          Compare Less Than (temp bool)

-0:92            direct index (temp float)

-0:92              'color' (temp 4-component vector of float)

-0:92              Constant:

-0:92                1 (const int)

-0:92            'd3' (uniform float)

-0:92        Loop Body

-0:93        Sequence

-0:93          add second child into first child (temp 4-component vector of float)

-0:93            'color' (temp 4-component vector of float)

-0:93            'bigColor1_2' (uniform 4-component vector of float)

-0:97      Loop with condition tested first

-0:97        Loop Condition

-0:97        Compare Less Than (temp bool)

-0:97          direct index (temp float)

-0:97            'color' (temp 4-component vector of float)

-0:97            Constant:

-0:97              2 (const int)

-0:97          'd3' (uniform float)

-0:97        Loop Body

-0:98        Sequence

-0:98          add second child into first child (temp 4-component vector of float)

-0:98            'color' (temp 4-component vector of float)

-0:98            'bigColor1_3' (uniform 4-component vector of float)

-0:99          Test condition and select (temp void)

-0:99            Condition

-0:99            Compare Less Than (temp bool)

-0:99              direct index (temp float)

-0:99                'color' (temp 4-component vector of float)

-0:99                Constant:

-0:99                  1 (const int)

-0:99              'd4' (uniform float)

-0:99            true case

-0:100            Branch: Break

-0:101          add second child into first child (temp 4-component vector of float)

-0:101            'color' (temp 4-component vector of float)

-0:101            'bigColor1_3' (uniform 4-component vector of float)

-0:105      Sequence

-0:105        Sequence

-0:105          move second child to first child (temp int)

-0:105            'i' (temp int)

-0:105            Constant:

-0:105              0 (const int)

-0:105        Loop with condition tested first

-0:105          Loop Condition

-0:105          Compare Less Than (temp bool)

-0:105            'i' (temp int)

-0:105            'Count' (uniform int)

-0:105          Loop Body

-0:106          Sequence

-0:106            add second child into first child (temp 4-component vector of float)

-0:106              'color' (temp 4-component vector of float)

-0:106              'bigColor2' (uniform 4-component vector of float)

-0:105          Loop Terminal Expression

-0:105          Pre-Increment (temp int)

-0:105            'i' (temp int)

-0:112      Loop with condition not tested first

-0:112        Loop Condition

-0:112        Compare Less Than (temp bool)

-0:112          direct index (temp float)

-0:112            'color' (temp 4-component vector of float)

-0:112            Constant:

-0:112              0 (const int)

-0:112          'd2' (uniform float)

-0:112        Loop Body

-0:111        Sequence

-0:111          add second child into first child (temp 4-component vector of float)

-0:111            'color' (temp 4-component vector of float)

-0:111            'bigColor3' (uniform 4-component vector of float)

-0:115      Sequence

-0:115        Sequence

-0:115          move second child to first child (temp int)

-0:115            'i' (temp int)

-0:115            Constant:

-0:115              0 (const int)

-0:115        Loop with condition tested first

-0:115          Loop Condition

-0:115          Compare Less Than (temp bool)

-0:115            'i' (temp int)

-0:115            Constant:

-0:115              42 (const int)

-0:115          Loop Body

-0:116          Sequence

-0:116            add second child into first child (temp float)

-0:116              direct index (temp float)

-0:116                'color' (temp 4-component vector of float)

-0:116                Constant:

-0:116                  2 (const int)

-0:116              'd3' (uniform float)

-0:115          Loop Terminal Expression

-0:115          Pre-Increment (temp int)

-0:115            'i' (temp int)

-0:120      Sequence

-0:120        Sequence

-0:120          move second child to first child (temp int)

-0:120            'i' (temp int)

-0:120            Constant:

-0:120              0 (const int)

-0:120        Loop with condition tested first

-0:120          Loop Condition

-0:120          Compare Less Than (temp bool)

-0:120            'i' (temp int)

-0:120            Constant:

-0:120              100 (const int)

-0:120          Loop Body

-0:121          Sequence

-0:121            Test condition and select (temp void)

-0:121              Condition

-0:121              Compare Less Than (temp bool)

-0:121                direct index (temp float)

-0:121                  'color' (temp 4-component vector of float)

-0:121                  Constant:

-0:121                    2 (const int)

-0:121                Constant:

-0:121                  20.000000

-0:121              true case

-0:122              Post-Increment (temp float)

-0:122                direct index (temp float)

-0:122                  'color' (temp 4-component vector of float)

-0:122                  Constant:

-0:122                    0 (const int)

-0:121              false case

-0:124              Post-Increment (temp float)

-0:124                direct index (temp float)

-0:124                  'color' (temp 4-component vector of float)

-0:124                  Constant:

-0:124                    1 (const int)

-0:125            Test condition and select (temp void)

-0:125              Condition

-0:125              Compare Less Than (temp bool)

-0:125                direct index (temp float)

-0:125                  'color' (temp 4-component vector of float)

-0:125                  Constant:

-0:125                    3 (const int)

-0:125                Constant:

-0:125                  20.000000

-0:125              true case

-0:126              Test condition and select (temp void)

-0:126                Condition

-0:126                Compare Greater Than (temp bool)

-0:126                  direct index (temp float)

-0:126                    'color' (temp 4-component vector of float)

-0:126                    Constant:

-0:126                      2 (const int)

-0:126                  direct index (temp float)

-0:126                    'color' (temp 4-component vector of float)

-0:126                    Constant:

-0:126                      1 (const int)

-0:126                true case

-0:127                Constant:

-0:127                  0 (const int)

-0:120          Loop Terminal Expression

-0:120          Pre-Increment (temp int)

-0:120            'i' (temp int)

-0:131      Sequence

-0:131        Sequence

-0:131          move second child to first child (temp int)

-0:131            'i' (temp int)

-0:131            Constant:

-0:131              0 (const int)

-0:131        Loop with condition tested first

-0:131          Loop Condition

-0:131          Compare Less Than (temp bool)

-0:131            'i' (temp int)

-0:131            Constant:

-0:131              120 (const int)

-0:131          Loop Body

-0:132          Sequence

-0:132            Test condition and select (temp void)

-0:132              Condition

-0:132              Compare Less Than (temp bool)

-0:132                direct index (temp float)

-0:132                  'color' (temp 4-component vector of float)

-0:132                  Constant:

-0:132                    2 (const int)

-0:132                Constant:

-0:132                  20.000000

-0:132              true case

-0:133              Post-Increment (temp float)

-0:133                direct index (temp float)

-0:133                  'color' (temp 4-component vector of float)

-0:133                  Constant:

-0:133                    0 (const int)

-0:132              false case

-0:135              Post-Increment (temp float)

-0:135                direct index (temp float)

-0:135                  'color' (temp 4-component vector of float)

-0:135                  Constant:

-0:135                    1 (const int)

-0:131          Loop Terminal Expression

-0:131          Pre-Increment (temp int)

-0:131            'i' (temp int)

-0:139      Sequence

-0:139        Sequence

-0:139          move second child to first child (temp int)

-0:139            'i' (temp int)

-0:139            Constant:

-0:139              0 (const int)

-0:139        Loop with condition tested first

-0:139          Loop Condition

-0:139          Compare Less Than (temp bool)

-0:139            'i' (temp int)

-0:139            Constant:

-0:139              42 (const int)

-0:139          Loop Body

-0:140          Sequence

-0:140            add second child into first child (temp float)

-0:140              direct index (temp float)

-0:140                'color' (temp 4-component vector of float)

-0:140                Constant:

-0:140                  2 (const int)

-0:140              'd3' (uniform float)

-0:141            Test condition and select (temp void)

-0:141              Condition

-0:141              Compare Less Than (temp bool)

-0:141                direct index (temp float)

-0:141                  'color' (temp 4-component vector of float)

-0:141                  Constant:

-0:141                    0 (const int)

-0:141                'd4' (uniform float)

-0:141              true case

-0:142              Branch: Continue

-0:143            Pre-Increment (temp float)

-0:143              direct index (temp float)

-0:143                'color' (temp 4-component vector of float)

-0:143                Constant:

-0:143                  3 (const int)

-0:139          Loop Terminal Expression

-0:139          Pre-Increment (temp int)

-0:139            'i' (temp int)

-0:147      Sequence

-0:147        Sequence

-0:147          move second child to first child (temp int)

-0:147            'i' (temp int)

-0:147            Constant:

-0:147              0 (const int)

-0:147        Loop with condition tested first

-0:147          Loop Condition

-0:147          Compare Less Than (temp bool)

-0:147            'i' (temp int)

-0:147            Constant:

-0:147              42 (const int)

-0:147          Loop Body

-0:148          Sequence

-0:148            add second child into first child (temp float)

-0:148              direct index (temp float)

-0:148                'color' (temp 4-component vector of float)

-0:148                Constant:

-0:148                  2 (const int)

-0:148              'd3' (uniform float)

-0:149            Test condition and select (temp void)

-0:149              Condition

-0:149              Compare Less Than (temp bool)

-0:149                direct index (temp float)

-0:149                  'color' (temp 4-component vector of float)

-0:149                  Constant:

-0:149                    0 (const int)

-0:149                'd4' (uniform float)

-0:149              true case

-0:150              Branch: Break

-0:151            Pre-Increment (temp float)

-0:151              direct index (temp float)

-0:151                'color' (temp 4-component vector of float)

-0:151                Constant:

-0:151                  3 (const int)

-0:147          Loop Terminal Expression

-0:147          Pre-Increment (temp int)

-0:147            'i' (temp int)

-0:163      Loop with condition not tested first

-0:163        Loop Condition

-0:163        Compare Less Than (temp bool)

-0:163          direct index (temp float)

-0:163            'color' (temp 4-component vector of float)

-0:163            Constant:

-0:163              2 (const int)

-0:163          'd4' (uniform float)

-0:163        Loop Body

-0:156        Sequence

-0:156          add second child into first child (temp 4-component vector of float)

-0:156            'color' (temp 4-component vector of float)

-0:156            'bigColor4' (uniform 4-component vector of float)

-0:157          Test condition and select (temp void)

-0:157            Condition

-0:157            Compare Less Than (temp bool)

-0:157              direct index (temp float)

-0:157                'color' (temp 4-component vector of float)

-0:157                Constant:

-0:157                  0 (const int)

-0:157              'd4' (uniform float)

-0:157            true case

-0:158            Branch: Continue

-0:159          Test condition and select (temp void)

-0:159            Condition

-0:159            Compare Less Than (temp bool)

-0:159              direct index (temp float)

-0:159                'color' (temp 4-component vector of float)

-0:159                Constant:

-0:159                  1 (const int)

-0:159              'd4' (uniform float)

-0:159            true case

-0:160            add second child into first child (temp float)

-0:160              direct index (temp float)

-0:160                'color' (temp 4-component vector of float)

-0:160                Constant:

-0:160                  1 (const int)

-0:160              'd4' (uniform float)

-0:159            false case

-0:162            add second child into first child (temp float)

-0:162              direct index (temp float)

-0:162                'color' (temp 4-component vector of float)

-0:162                Constant:

-0:162                  0 (const int)

-0:162              'd4' (uniform float)

-0:170      Loop with condition not tested first

-0:170        Loop Condition

-0:170        Compare Less Than (temp bool)

-0:170          direct index (temp float)

-0:170            'color' (temp 4-component vector of float)

-0:170            Constant:

-0:170              0 (const int)

-0:170          'd5' (uniform float)

-0:170        Loop Body

-0:167        Sequence

-0:167          add second child into first child (temp 4-component vector of float)

-0:167            'color' (temp 4-component vector of float)

-0:167            'bigColor5' (uniform 4-component vector of float)

-0:168          Test condition and select (temp void)

-0:168            Condition

-0:168            Compare Less Than (temp bool)

-0:168              direct index (temp float)

-0:168                'color' (temp 4-component vector of float)

-0:168                Constant:

-0:168                  1 (const int)

-0:168              'd5' (uniform float)

-0:168            true case

-0:169            add second child into first child (temp float)

-0:169              direct index (temp float)

-0:169                'color' (temp 4-component vector of float)

-0:169                Constant:

-0:169                  1 (const int)

-0:169              'd5' (uniform float)

-0:173      Test condition and select (temp void)

-0:173        Condition

-0:173        Compare Less Than (temp bool)

-0:173          direct index (temp float)

-0:173            'color' (temp 4-component vector of float)

-0:173            Constant:

-0:173              0 (const int)

-0:173          'd6' (uniform float)

-0:173        true case

-0:174        Sequence

-0:174          Loop with condition tested first

-0:174            Loop Condition

-0:174            Compare Less Than (temp bool)

-0:174              direct index (temp float)

-0:174                'color' (temp 4-component vector of float)

-0:174                Constant:

-0:174                  1 (const int)

-0:174              'd6' (uniform float)

-0:174            Loop Body

-0:175            add second child into first child (temp 4-component vector of float)

-0:175              'color' (temp 4-component vector of float)

-0:175              'bigColor6' (uniform 4-component vector of float)

-0:173        false case

-0:177        Sequence

-0:177          Loop with condition tested first

-0:177            Loop Condition

-0:177            Compare Less Than (temp bool)

-0:177              direct index (temp float)

-0:177                'color' (temp 4-component vector of float)

-0:177                Constant:

-0:177                  2 (const int)

-0:177              'd6' (uniform float)

-0:177            Loop Body

-0:178            add second child into first child (temp float)

-0:178              direct index (temp float)

-0:178                'color' (temp 4-component vector of float)

-0:178                Constant:

-0:178                  2 (const int)

-0:178              direct index (temp float)

-0:178                'bigColor6' (uniform 4-component vector of float)

-0:178                Constant:

-0:178                  2 (const int)

-0:182      Test condition and select (temp void)

-0:182        Condition

-0:182        Compare Less Than (temp bool)

-0:182          direct index (temp float)

-0:182            'color' (temp 4-component vector of float)

-0:182            Constant:

-0:182              0 (const int)

-0:182          'd6' (uniform float)

-0:182        true case

-0:183        Sequence

-0:183          Loop with condition tested first

-0:183            Loop Condition

-0:183            Compare Less Than (temp bool)

-0:183              direct index (temp float)

-0:183                'color' (temp 4-component vector of float)

-0:183                Constant:

-0:183                  1 (const int)

-0:183              'd6' (uniform float)

-0:183            Loop Body

-0:184            Sequence

-0:184              add second child into first child (temp 4-component vector of float)

-0:184                'color' (temp 4-component vector of float)

-0:184                'bigColor6' (uniform 4-component vector of float)

-0:185              Test condition and select (temp void)

-0:185                Condition

-0:185                Compare Less Than (temp bool)

-0:185                  'd7' (uniform float)

-0:185                  Constant:

-0:185                    1.000000

-0:185                true case

-0:186                Branch: Break

-0:182        false case

-0:190        Sequence

-0:190          Loop with condition tested first

-0:190            Loop Condition

-0:190            Compare Less Than (temp bool)

-0:190              direct index (temp float)

-0:190                'color' (temp 4-component vector of float)

-0:190                Constant:

-0:190                  2 (const int)

-0:190              'd6' (uniform float)

-0:190            Loop Body

-0:191            add second child into first child (temp float)

-0:191              direct index (temp float)

-0:191                'color' (temp 4-component vector of float)

-0:191                Constant:

-0:191                  2 (const int)

-0:191              direct index (temp float)

-0:191                'bigColor6' (uniform 4-component vector of float)

-0:191                Constant:

-0:191                  2 (const int)

-0:209      Loop with condition not tested first

-0:209        Loop Condition

-0:209        Constant:

-0:209          true (const bool)

-0:209        Loop Body

-0:197        Sequence

-0:197          Test condition and select (temp void)

-0:197            Condition

-0:197            Compare Less Than (temp bool)

-0:197              'd7' (uniform float)

-0:197              Constant:

-0:197                0.000000

-0:197            true case

-0:198            Branch: Break

-0:200          add second child into first child (temp 4-component vector of float)

-0:200            'color' (temp 4-component vector of float)

-0:200            'bigColor7' (uniform 4-component vector of float)

-0:202          Test condition and select (temp void)

-0:202            Condition

-0:202            Compare Less Than (temp bool)

-0:202              'd7' (uniform float)

-0:202              Constant:

-0:202                1.000000

-0:202            true case

-0:203            Sequence

-0:203              Post-Increment (temp float)

-0:203                direct index (temp float)

-0:203                  'color' (temp 4-component vector of float)

-0:203                  Constant:

-0:203                    2 (const int)

-0:204              Branch: Break

-0:207          add second child into first child (temp 4-component vector of float)

-0:207            'color' (temp 4-component vector of float)

-0:207            'BaseColor' (smooth in 4-component vector of float)

-0:234      Loop with condition not tested first

-0:234        Loop Condition

-0:234        Compare Less Than (temp bool)

-0:234          direct index (temp float)

-0:234            'color' (temp 4-component vector of float)

-0:234            Constant:

-0:234              2 (const int)

-0:234          'd8' (uniform float)

-0:234        Loop Body

-0:217        Sequence

-0:217          Test condition and select (temp void)

-0:217            Condition

-0:217            Compare Less Than (temp bool)

-0:217              'd8' (uniform float)

-0:217              Constant:

-0:217                0.000000

-0:217            true case

-0:218            Branch: Break

-0:220          add second child into first child (temp 4-component vector of float)

-0:220            'color' (temp 4-component vector of float)

-0:220            'bigColor7' (uniform 4-component vector of float)

-0:222          Test condition and select (temp void)

-0:222            Condition

-0:222            Compare Less Than (temp bool)

-0:222              'd8' (uniform float)

-0:222              Constant:

-0:222                1.000000

-0:222            true case

-0:223            Sequence

-0:223              Post-Increment (temp float)

-0:223                direct index (temp float)

-0:223                  'color' (temp 4-component vector of float)

-0:223                  Constant:

-0:223                    2 (const int)

-0:224              Test condition and select (temp void)

-0:224                Condition

-0:224                Compare Less Than (temp bool)

-0:224                  'd8' (uniform float)

-0:224                  Constant:

-0:224                    2.000000

-0:224                true case

-0:225                Sequence

-0:225                  Post-Increment (temp float)

-0:225                    direct index (temp float)

-0:225                      'color' (temp 4-component vector of float)

-0:225                      Constant:

-0:225                        1 (const int)

-0:224                false case

-0:227                Sequence

-0:227                  Post-Increment (temp float)

-0:227                    direct index (temp float)

-0:227                      'color' (temp 4-component vector of float)

-0:227                      Constant:

-0:227                        0 (const int)

-0:229              Branch: Break

-0:232          add second child into first child (temp 4-component vector of float)

-0:232            'color' (temp 4-component vector of float)

-0:232            'BaseColor' (smooth in 4-component vector of float)

-0:237      Loop with condition tested first

-0:237        Loop Condition

-0:237        Compare Less Than (temp bool)

-0:237          direct index (temp float)

-0:237            'color' (temp 4-component vector of float)

-0:237            Constant:

-0:237              3 (const int)

-0:237          'd9' (uniform float)

-0:237        Loop Body

-0:238        Sequence

-0:238          Test condition and select (temp void)

-0:238            Condition

-0:238            Compare Greater Than (temp bool)

-0:238              'd9' (uniform float)

-0:238              'd8' (uniform float)

-0:238            true case

-0:239            Sequence

-0:239              Test condition and select (temp void)

-0:239                Condition

-0:239                Compare Less Than or Equal (temp bool)

-0:239                  direct index (temp float)

-0:239                    'color' (temp 4-component vector of float)

-0:239                    Constant:

-0:239                      0 (const int)

-0:239                  'd7' (uniform float)

-0:239                true case

-0:240                Sequence

-0:240                  Test condition and select (temp void)

-0:240                    Condition

-0:240                    Compare Equal (temp bool)

-0:240                      direct index (temp float)

-0:240                        'color' (temp 4-component vector of float)

-0:240                        Constant:

-0:240                          2 (const int)

-0:240                      Constant:

-0:240                        5.000000

-0:240                    true case

-0:241                    Post-Increment (temp float)

-0:241                      direct index (temp float)

-0:241                        'color' (temp 4-component vector of float)

-0:241                        Constant:

-0:241                          3 (const int)

-0:240                    false case

-0:243                    Branch: Break

-0:250      Loop with condition tested first

-0:250        Loop Condition

-0:250        Compare Less Than (temp bool)

-0:250          direct index (temp float)

-0:250            'color' (temp 4-component vector of float)

-0:250            Constant:

-0:250              2 (const int)

-0:250          'd10' (uniform float)

-0:250        Loop Body

-0:251        Sequence

-0:251          Post-Increment (temp float)

-0:251            direct index (temp float)

-0:251              'color' (temp 4-component vector of float)

-0:251              Constant:

-0:251                1 (const int)

-0:252          Test condition and select (temp void)

-0:252            Condition

-0:252            Compare Less Than (temp bool)

-0:252              direct index (temp float)

-0:252                'color' (temp 4-component vector of float)

-0:252                Constant:

-0:252                  1 (const int)

-0:252              'd11' (uniform float)

-0:252            true case

-0:253            Sequence

-0:253              Post-Increment (temp float)

-0:253                direct index (temp float)

-0:253                  'color' (temp 4-component vector of float)

-0:253                  Constant:

-0:253                    2 (const int)

-0:254              Test condition and select (temp void)

-0:254                Condition

-0:254                Compare Less Than (temp bool)

-0:254                  direct index (temp float)

-0:254                    'color' (temp 4-component vector of float)

-0:254                    Constant:

-0:254                      3 (const int)

-0:254                  'd12' (uniform float)

-0:254                true case

-0:255                Post-Increment (temp float)

-0:255                  direct index (temp float)

-0:255                    'color' (temp 4-component vector of float)

-0:255                    Constant:

-0:255                      3 (const int)

-0:254                false case

-0:257                Post-Increment (temp float)

-0:257                  direct index (temp float)

-0:257                    'color' (temp 4-component vector of float)

-0:257                    Constant:

-0:257                      0 (const int)

-0:258              Branch: Continue

-0:261          Post-Increment (temp 4-component vector of float)

-0:261            'color' (temp 4-component vector of float)

-0:262          Branch: Break

-0:266      Loop with condition tested first

-0:266        Loop Condition

-0:266        Compare Less Than (temp bool)

-0:266          direct index (temp float)

-0:266            'color' (temp 4-component vector of float)

-0:266            Constant:

-0:266              0 (const int)

-0:266          Constant:

-0:266            10.000000

-0:266        Loop Body

-0:267        Sequence

-0:267          add second child into first child (temp 4-component vector of float)

-0:267            'color' (temp 4-component vector of float)

-0:267            'bigColor8' (uniform 4-component vector of float)

-0:269          Test condition and select (temp void)

-0:269            Condition

-0:269            Compare Less Than (temp bool)

-0:269              direct index (temp float)

-0:269                'color' (temp 4-component vector of float)

-0:269                Constant:

-0:269                  2 (const int)

-0:269              'd8' (uniform float)

-0:269            true case

-0:270            Test condition and select (temp void)

-0:270              Condition

-0:270              Compare Less Than (temp bool)

-0:270                direct index (temp float)

-0:270                  'color' (temp 4-component vector of float)

-0:270                  Constant:

-0:270                    3 (const int)

-0:270                'd6' (uniform float)

-0:270              true case

-0:271              Branch: Continue

-0:273          add second child into first child (temp float)

-0:273            direct index (temp float)

-0:273              'color' (temp 4-component vector of float)

-0:273              Constant:

-0:273                1 (const int)

-0:273            direct index (temp float)

-0:273              'bigColor8' (uniform 4-component vector of float)

-0:273              Constant:

-0:273                0 (const int)

-0:276      Post-Increment (temp 4-component vector of float)

-0:276        'color' (temp 4-component vector of float)

-0:277      move second child to first child (temp 4-component vector of float)

-0:277        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:277        'color' (temp 4-component vector of float)

-0:280      Loop with condition tested first

-0:280        Loop Condition

-0:280        Compare Less Than (temp bool)

-0:280          direct index (temp float)

-0:280            'color' (temp 4-component vector of float)

-0:280            Constant:

-0:280              0 (const int)

-0:280          'd14' (uniform float)

-0:280        Loop Body

-0:281        Sequence

-0:281          Test condition and select (temp void)

-0:281            Condition

-0:281            Compare Less Than (temp bool)

-0:281              direct index (temp float)

-0:281                'color' (temp 4-component vector of float)

-0:281                Constant:

-0:281                  1 (const int)

-0:281              'd15' (uniform float)

-0:281            true case

-0:282            Sequence

-0:282              Branch: Return

-0:281            false case

-0:285            Post-Increment (temp 4-component vector of float)

-0:285              'color' (temp 4-component vector of float)

-0:288      Post-Increment (temp 4-component vector of float)

-0:288        'color' (temp 4-component vector of float)

-0:290      Loop with condition tested first

-0:290        Loop Condition

-0:290        Compare Less Than (temp bool)

-0:290          direct index (temp float)

-0:290            'color' (temp 4-component vector of float)

-0:290            Constant:

-0:290              3 (const int)

-0:290          'd16' (uniform float)

-0:290        Loop Body

-0:291        Sequence

-0:291          Post-Increment (temp float)

-0:291            direct index (temp float)

-0:291              'color' (temp 4-component vector of float)

-0:291              Constant:

-0:291                3 (const int)

-0:296      Loop with condition tested first

-0:296        Loop Condition

-0:296        logical-and (temp bool)

-0:296          Compare Less Than (temp bool)

-0:296            direct index (temp float)

-0:296              'color' (temp 4-component vector of float)

-0:296              Constant:

-0:296                3 (const int)

-0:296            'd2' (uniform float)

-0:296          Compare Less Than (temp bool)

-0:296            direct index (temp float)

-0:296              'color' (temp 4-component vector of float)

-0:296              Constant:

-0:296                1 (const int)

-0:296            'd3' (uniform float)

-0:296        Loop Body

-0:297        Sequence

-0:297          add second child into first child (temp 4-component vector of float)

-0:297            'color' (temp 4-component vector of float)

-0:297            'bigColor1_2' (uniform 4-component vector of float)

-0:298          Test condition and select (temp void)

-0:298            Condition

-0:298            Compare Less Than (temp bool)

-0:298              direct index (temp float)

-0:298                'color' (temp 4-component vector of float)

-0:298                Constant:

-0:298                  2 (const int)

-0:298              'd3' (uniform float)

-0:298            true case

-0:299            Branch: Return

-0:307      Loop with condition not tested first

-0:307        Loop Condition

-0:307        Compare Less Than (temp bool)

-0:307          direct index (temp float)

-0:307            'color' (temp 4-component vector of float)

-0:307            Constant:

-0:307              0 (const int)

-0:307          'd17' (uniform float)

-0:307        Loop Body

-0:304        Sequence

-0:304          Test condition and select (temp void)

-0:304            Condition

-0:304            Compare Less Than (temp bool)

-0:304              direct index (temp float)

-0:304                'color' (temp 4-component vector of float)

-0:304                Constant:

-0:304                  1 (const int)

-0:304              'd18' (uniform float)

-0:304            true case

-0:305            Branch: Return

-0:306          Post-Increment (temp 4-component vector of float)

-0:306            'color' (temp 4-component vector of float)

-0:310      Loop with condition tested first

-0:310        Loop Condition

-0:310        Compare Less Than (temp bool)

-0:310          direct index (temp float)

-0:310            'color' (temp 4-component vector of float)

-0:310            Constant:

-0:310              1 (const int)

-0:310          'd16' (uniform float)

-0:310        Loop Body

-0:311        Sequence

-0:311          Test condition and select (temp void)

-0:311            Condition

-0:311            Compare Less Than (temp bool)

-0:311              direct index (temp float)

-0:311                'color' (temp 4-component vector of float)

-0:311                Constant:

-0:311                  3 (const int)

-0:311              'd16' (uniform float)

-0:311            true case

-0:312            Sequence

-0:312              Branch: Kill

-0:311            false case

-0:314            Post-Increment (temp 4-component vector of float)

-0:314              'color' (temp 4-component vector of float)

-0:317      Post-Increment (temp 4-component vector of float)

-0:317        'color' (temp 4-component vector of float)

-0:319      move second child to first child (temp 4-component vector of float)

-0:319        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:319        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'bigColor1_1' (uniform 4-component vector of float)

-0:?     'bigColor1_2' (uniform 4-component vector of float)

-0:?     'bigColor1_3' (uniform 4-component vector of float)

-0:?     'bigColor2' (uniform 4-component vector of float)

-0:?     'bigColor3' (uniform 4-component vector of float)

-0:?     'bigColor4' (uniform 4-component vector of float)

-0:?     'bigColor5' (uniform 4-component vector of float)

-0:?     'bigColor6' (uniform 4-component vector of float)

-0:?     'bigColor7' (uniform 4-component vector of float)

-0:?     'bigColor8' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'd2' (uniform float)

-0:?     'd3' (uniform float)

-0:?     'd4' (uniform float)

-0:?     'd5' (uniform float)

-0:?     'd6' (uniform float)

-0:?     'd7' (uniform float)

-0:?     'd8' (uniform float)

-0:?     'd9' (uniform float)

-0:?     'd10' (uniform float)

-0:?     'd11' (uniform float)

-0:?     'd12' (uniform float)

-0:?     'd13' (uniform float)

-0:?     'd14' (uniform float)

-0:?     'd15' (uniform float)

-0:?     'd16' (uniform float)

-0:?     'd17' (uniform float)

-0:?     'd18' (uniform float)

-0:?     'd19' (uniform float)

-0:?     'd20' (uniform float)

-0:?     'd21' (uniform float)

-0:?     'd22' (uniform float)

-0:?     'd23' (uniform float)

-0:?     'd24' (uniform float)

-0:?     'd25' (uniform float)

-0:?     'd26' (uniform float)

-0:?     'd27' (uniform float)

-0:?     'd28' (uniform float)

-0:?     'd29' (uniform float)

-0:?     'd30' (uniform float)

-0:?     'd31' (uniform float)

-0:?     'd32' (uniform float)

-0:?     'd33' (uniform float)

-0:?     'd34' (uniform float)

-0:?     'Count' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:53  Function Definition: main( (global void)

-0:53    Function Parameters: 

-0:55    Sequence

-0:55      Sequence

-0:55        move second child to first child (temp 4-component vector of float)

-0:55          'color' (temp 4-component vector of float)

-0:55          'BaseColor' (smooth in 4-component vector of float)

-0:58      Loop with condition tested first

-0:58        Loop Condition

-0:58        Constant:

-0:58          true (const bool)

-0:58        Loop Body

-0:59        Sequence

-0:59          Test condition and select (temp void)

-0:59            Condition

-0:59            Compare Less Than (temp bool)

-0:59              direct index (temp float)

-0:59                'color' (temp 4-component vector of float)

-0:59                Constant:

-0:59                  0 (const int)

-0:59              Constant:

-0:59                0.330000

-0:59            true case

-0:60            Sequence

-0:60              add second child into first child (temp 4-component vector of float)

-0:60                'color' (temp 4-component vector of float)

-0:60                Constant:

-0:60                  0.330000

-0:60                  0.330000

-0:60                  0.330000

-0:60                  0.330000

-0:61              Branch: Break

-0:63          Test condition and select (temp void)

-0:63            Condition

-0:63            Compare Less Than (temp bool)

-0:63              direct index (temp float)

-0:63                'color' (temp 4-component vector of float)

-0:63                Constant:

-0:63                  0 (const int)

-0:63              Constant:

-0:63                0.660000

-0:63            true case

-0:64            Sequence

-0:64              add second child into first child (temp 4-component vector of float)

-0:64                'color' (temp 4-component vector of float)

-0:64                Constant:

-0:64                  0.660000

-0:64                  0.660000

-0:64                  0.660000

-0:64                  0.660000

-0:65              Branch: Break

-0:68          add second child into first child (temp 4-component vector of float)

-0:68            'color' (temp 4-component vector of float)

-0:68            Constant:

-0:68              0.330000

-0:68              0.330000

-0:68              0.330000

-0:68              0.330000

-0:69          Branch: Break

-0:73      Loop with condition tested first

-0:73        Loop Condition

-0:73        Compare Less Than (temp bool)

-0:73          direct index (temp float)

-0:73            'color' (temp 4-component vector of float)

-0:73            Constant:

-0:73              0 (const int)

-0:73          'd' (uniform float)

-0:73        Loop Body

-0:74        Sequence

-0:74          add second child into first child (temp 4-component vector of float)

-0:74            'color' (temp 4-component vector of float)

-0:74            'bigColor' (uniform 4-component vector of float)

-0:78      Loop with condition tested first

-0:78        Loop Condition

-0:78        Compare Less Than (temp bool)

-0:78          direct index (temp float)

-0:78            'color' (temp 4-component vector of float)

-0:78            Constant:

-0:78              2 (const int)

-0:78          'd' (uniform float)

-0:78        Loop Body

-0:79        Sequence

-0:79          add second child into first child (temp 4-component vector of float)

-0:79            'color' (temp 4-component vector of float)

-0:79            'bigColor1_1' (uniform 4-component vector of float)

-0:80          Test condition and select (temp void)

-0:80            Condition

-0:80            Compare Less Than (temp bool)

-0:80              direct index (temp float)

-0:80                'color' (temp 4-component vector of float)

-0:80                Constant:

-0:80                  3 (const int)

-0:80              'd' (uniform float)

-0:80            true case

-0:81            Branch: Continue

-0:83          add second child into first child (temp 4-component vector of float)

-0:83            'color' (temp 4-component vector of float)

-0:83            'bigColor1_1' (uniform 4-component vector of float)

-0:87      Loop with condition tested first

-0:87        Loop Condition

-0:87        Compare Less Than (temp bool)

-0:87          direct index (temp float)

-0:87            'color' (temp 4-component vector of float)

-0:87            Constant:

-0:87              0 (const int)

-0:87          Constant:

-0:87            42.000000

-0:87        Loop Body

-0:88        Sequence

-0:88          Pre-Increment (temp 4-component vector of float)

-0:88            'color' (temp 4-component vector of float)

-0:92      Loop with condition tested first

-0:92        Loop Condition

-0:92        logical-and (temp bool)

-0:92          Compare Less Than (temp bool)

-0:92            direct index (temp float)

-0:92              'color' (temp 4-component vector of float)

-0:92              Constant:

-0:92                3 (const int)

-0:92            'd2' (uniform float)

-0:92          Compare Less Than (temp bool)

-0:92            direct index (temp float)

-0:92              'color' (temp 4-component vector of float)

-0:92              Constant:

-0:92                1 (const int)

-0:92            'd3' (uniform float)

-0:92        Loop Body

-0:93        Sequence

-0:93          add second child into first child (temp 4-component vector of float)

-0:93            'color' (temp 4-component vector of float)

-0:93            'bigColor1_2' (uniform 4-component vector of float)

-0:97      Loop with condition tested first

-0:97        Loop Condition

-0:97        Compare Less Than (temp bool)

-0:97          direct index (temp float)

-0:97            'color' (temp 4-component vector of float)

-0:97            Constant:

-0:97              2 (const int)

-0:97          'd3' (uniform float)

-0:97        Loop Body

-0:98        Sequence

-0:98          add second child into first child (temp 4-component vector of float)

-0:98            'color' (temp 4-component vector of float)

-0:98            'bigColor1_3' (uniform 4-component vector of float)

-0:99          Test condition and select (temp void)

-0:99            Condition

-0:99            Compare Less Than (temp bool)

-0:99              direct index (temp float)

-0:99                'color' (temp 4-component vector of float)

-0:99                Constant:

-0:99                  1 (const int)

-0:99              'd4' (uniform float)

-0:99            true case

-0:100            Branch: Break

-0:101          add second child into first child (temp 4-component vector of float)

-0:101            'color' (temp 4-component vector of float)

-0:101            'bigColor1_3' (uniform 4-component vector of float)

-0:105      Sequence

-0:105        Sequence

-0:105          move second child to first child (temp int)

-0:105            'i' (temp int)

-0:105            Constant:

-0:105              0 (const int)

-0:105        Loop with condition tested first

-0:105          Loop Condition

-0:105          Compare Less Than (temp bool)

-0:105            'i' (temp int)

-0:105            'Count' (uniform int)

-0:105          Loop Body

-0:106          Sequence

-0:106            add second child into first child (temp 4-component vector of float)

-0:106              'color' (temp 4-component vector of float)

-0:106              'bigColor2' (uniform 4-component vector of float)

-0:105          Loop Terminal Expression

-0:105          Pre-Increment (temp int)

-0:105            'i' (temp int)

-0:112      Loop with condition not tested first

-0:112        Loop Condition

-0:112        Compare Less Than (temp bool)

-0:112          direct index (temp float)

-0:112            'color' (temp 4-component vector of float)

-0:112            Constant:

-0:112              0 (const int)

-0:112          'd2' (uniform float)

-0:112        Loop Body

-0:111        Sequence

-0:111          add second child into first child (temp 4-component vector of float)

-0:111            'color' (temp 4-component vector of float)

-0:111            'bigColor3' (uniform 4-component vector of float)

-0:115      Sequence

-0:115        Sequence

-0:115          move second child to first child (temp int)

-0:115            'i' (temp int)

-0:115            Constant:

-0:115              0 (const int)

-0:115        Loop with condition tested first

-0:115          Loop Condition

-0:115          Compare Less Than (temp bool)

-0:115            'i' (temp int)

-0:115            Constant:

-0:115              42 (const int)

-0:115          Loop Body

-0:116          Sequence

-0:116            add second child into first child (temp float)

-0:116              direct index (temp float)

-0:116                'color' (temp 4-component vector of float)

-0:116                Constant:

-0:116                  2 (const int)

-0:116              'd3' (uniform float)

-0:115          Loop Terminal Expression

-0:115          Pre-Increment (temp int)

-0:115            'i' (temp int)

-0:120      Sequence

-0:120        Sequence

-0:120          move second child to first child (temp int)

-0:120            'i' (temp int)

-0:120            Constant:

-0:120              0 (const int)

-0:120        Loop with condition tested first

-0:120          Loop Condition

-0:120          Compare Less Than (temp bool)

-0:120            'i' (temp int)

-0:120            Constant:

-0:120              100 (const int)

-0:120          Loop Body

-0:121          Sequence

-0:121            Test condition and select (temp void)

-0:121              Condition

-0:121              Compare Less Than (temp bool)

-0:121                direct index (temp float)

-0:121                  'color' (temp 4-component vector of float)

-0:121                  Constant:

-0:121                    2 (const int)

-0:121                Constant:

-0:121                  20.000000

-0:121              true case

-0:122              Post-Increment (temp float)

-0:122                direct index (temp float)

-0:122                  'color' (temp 4-component vector of float)

-0:122                  Constant:

-0:122                    0 (const int)

-0:121              false case

-0:124              Post-Increment (temp float)

-0:124                direct index (temp float)

-0:124                  'color' (temp 4-component vector of float)

-0:124                  Constant:

-0:124                    1 (const int)

-0:125            Test condition and select (temp void)

-0:125              Condition

-0:125              Compare Less Than (temp bool)

-0:125                direct index (temp float)

-0:125                  'color' (temp 4-component vector of float)

-0:125                  Constant:

-0:125                    3 (const int)

-0:125                Constant:

-0:125                  20.000000

-0:125              true case

-0:126              Test condition and select (temp void)

-0:126                Condition

-0:126                Compare Greater Than (temp bool)

-0:126                  direct index (temp float)

-0:126                    'color' (temp 4-component vector of float)

-0:126                    Constant:

-0:126                      2 (const int)

-0:126                  direct index (temp float)

-0:126                    'color' (temp 4-component vector of float)

-0:126                    Constant:

-0:126                      1 (const int)

-0:126                true case

-0:127                Constant:

-0:127                  0 (const int)

-0:120          Loop Terminal Expression

-0:120          Pre-Increment (temp int)

-0:120            'i' (temp int)

-0:131      Sequence

-0:131        Sequence

-0:131          move second child to first child (temp int)

-0:131            'i' (temp int)

-0:131            Constant:

-0:131              0 (const int)

-0:131        Loop with condition tested first

-0:131          Loop Condition

-0:131          Compare Less Than (temp bool)

-0:131            'i' (temp int)

-0:131            Constant:

-0:131              120 (const int)

-0:131          Loop Body

-0:132          Sequence

-0:132            Test condition and select (temp void)

-0:132              Condition

-0:132              Compare Less Than (temp bool)

-0:132                direct index (temp float)

-0:132                  'color' (temp 4-component vector of float)

-0:132                  Constant:

-0:132                    2 (const int)

-0:132                Constant:

-0:132                  20.000000

-0:132              true case

-0:133              Post-Increment (temp float)

-0:133                direct index (temp float)

-0:133                  'color' (temp 4-component vector of float)

-0:133                  Constant:

-0:133                    0 (const int)

-0:132              false case

-0:135              Post-Increment (temp float)

-0:135                direct index (temp float)

-0:135                  'color' (temp 4-component vector of float)

-0:135                  Constant:

-0:135                    1 (const int)

-0:131          Loop Terminal Expression

-0:131          Pre-Increment (temp int)

-0:131            'i' (temp int)

-0:139      Sequence

-0:139        Sequence

-0:139          move second child to first child (temp int)

-0:139            'i' (temp int)

-0:139            Constant:

-0:139              0 (const int)

-0:139        Loop with condition tested first

-0:139          Loop Condition

-0:139          Compare Less Than (temp bool)

-0:139            'i' (temp int)

-0:139            Constant:

-0:139              42 (const int)

-0:139          Loop Body

-0:140          Sequence

-0:140            add second child into first child (temp float)

-0:140              direct index (temp float)

-0:140                'color' (temp 4-component vector of float)

-0:140                Constant:

-0:140                  2 (const int)

-0:140              'd3' (uniform float)

-0:141            Test condition and select (temp void)

-0:141              Condition

-0:141              Compare Less Than (temp bool)

-0:141                direct index (temp float)

-0:141                  'color' (temp 4-component vector of float)

-0:141                  Constant:

-0:141                    0 (const int)

-0:141                'd4' (uniform float)

-0:141              true case

-0:142              Branch: Continue

-0:143            Pre-Increment (temp float)

-0:143              direct index (temp float)

-0:143                'color' (temp 4-component vector of float)

-0:143                Constant:

-0:143                  3 (const int)

-0:139          Loop Terminal Expression

-0:139          Pre-Increment (temp int)

-0:139            'i' (temp int)

-0:147      Sequence

-0:147        Sequence

-0:147          move second child to first child (temp int)

-0:147            'i' (temp int)

-0:147            Constant:

-0:147              0 (const int)

-0:147        Loop with condition tested first

-0:147          Loop Condition

-0:147          Compare Less Than (temp bool)

-0:147            'i' (temp int)

-0:147            Constant:

-0:147              42 (const int)

-0:147          Loop Body

-0:148          Sequence

-0:148            add second child into first child (temp float)

-0:148              direct index (temp float)

-0:148                'color' (temp 4-component vector of float)

-0:148                Constant:

-0:148                  2 (const int)

-0:148              'd3' (uniform float)

-0:149            Test condition and select (temp void)

-0:149              Condition

-0:149              Compare Less Than (temp bool)

-0:149                direct index (temp float)

-0:149                  'color' (temp 4-component vector of float)

-0:149                  Constant:

-0:149                    0 (const int)

-0:149                'd4' (uniform float)

-0:149              true case

-0:150              Branch: Break

-0:151            Pre-Increment (temp float)

-0:151              direct index (temp float)

-0:151                'color' (temp 4-component vector of float)

-0:151                Constant:

-0:151                  3 (const int)

-0:147          Loop Terminal Expression

-0:147          Pre-Increment (temp int)

-0:147            'i' (temp int)

-0:163      Loop with condition not tested first

-0:163        Loop Condition

-0:163        Compare Less Than (temp bool)

-0:163          direct index (temp float)

-0:163            'color' (temp 4-component vector of float)

-0:163            Constant:

-0:163              2 (const int)

-0:163          'd4' (uniform float)

-0:163        Loop Body

-0:156        Sequence

-0:156          add second child into first child (temp 4-component vector of float)

-0:156            'color' (temp 4-component vector of float)

-0:156            'bigColor4' (uniform 4-component vector of float)

-0:157          Test condition and select (temp void)

-0:157            Condition

-0:157            Compare Less Than (temp bool)

-0:157              direct index (temp float)

-0:157                'color' (temp 4-component vector of float)

-0:157                Constant:

-0:157                  0 (const int)

-0:157              'd4' (uniform float)

-0:157            true case

-0:158            Branch: Continue

-0:159          Test condition and select (temp void)

-0:159            Condition

-0:159            Compare Less Than (temp bool)

-0:159              direct index (temp float)

-0:159                'color' (temp 4-component vector of float)

-0:159                Constant:

-0:159                  1 (const int)

-0:159              'd4' (uniform float)

-0:159            true case

-0:160            add second child into first child (temp float)

-0:160              direct index (temp float)

-0:160                'color' (temp 4-component vector of float)

-0:160                Constant:

-0:160                  1 (const int)

-0:160              'd4' (uniform float)

-0:159            false case

-0:162            add second child into first child (temp float)

-0:162              direct index (temp float)

-0:162                'color' (temp 4-component vector of float)

-0:162                Constant:

-0:162                  0 (const int)

-0:162              'd4' (uniform float)

-0:170      Loop with condition not tested first

-0:170        Loop Condition

-0:170        Compare Less Than (temp bool)

-0:170          direct index (temp float)

-0:170            'color' (temp 4-component vector of float)

-0:170            Constant:

-0:170              0 (const int)

-0:170          'd5' (uniform float)

-0:170        Loop Body

-0:167        Sequence

-0:167          add second child into first child (temp 4-component vector of float)

-0:167            'color' (temp 4-component vector of float)

-0:167            'bigColor5' (uniform 4-component vector of float)

-0:168          Test condition and select (temp void)

-0:168            Condition

-0:168            Compare Less Than (temp bool)

-0:168              direct index (temp float)

-0:168                'color' (temp 4-component vector of float)

-0:168                Constant:

-0:168                  1 (const int)

-0:168              'd5' (uniform float)

-0:168            true case

-0:169            add second child into first child (temp float)

-0:169              direct index (temp float)

-0:169                'color' (temp 4-component vector of float)

-0:169                Constant:

-0:169                  1 (const int)

-0:169              'd5' (uniform float)

-0:173      Test condition and select (temp void)

-0:173        Condition

-0:173        Compare Less Than (temp bool)

-0:173          direct index (temp float)

-0:173            'color' (temp 4-component vector of float)

-0:173            Constant:

-0:173              0 (const int)

-0:173          'd6' (uniform float)

-0:173        true case

-0:174        Sequence

-0:174          Loop with condition tested first

-0:174            Loop Condition

-0:174            Compare Less Than (temp bool)

-0:174              direct index (temp float)

-0:174                'color' (temp 4-component vector of float)

-0:174                Constant:

-0:174                  1 (const int)

-0:174              'd6' (uniform float)

-0:174            Loop Body

-0:175            add second child into first child (temp 4-component vector of float)

-0:175              'color' (temp 4-component vector of float)

-0:175              'bigColor6' (uniform 4-component vector of float)

-0:173        false case

-0:177        Sequence

-0:177          Loop with condition tested first

-0:177            Loop Condition

-0:177            Compare Less Than (temp bool)

-0:177              direct index (temp float)

-0:177                'color' (temp 4-component vector of float)

-0:177                Constant:

-0:177                  2 (const int)

-0:177              'd6' (uniform float)

-0:177            Loop Body

-0:178            add second child into first child (temp float)

-0:178              direct index (temp float)

-0:178                'color' (temp 4-component vector of float)

-0:178                Constant:

-0:178                  2 (const int)

-0:178              direct index (temp float)

-0:178                'bigColor6' (uniform 4-component vector of float)

-0:178                Constant:

-0:178                  2 (const int)

-0:182      Test condition and select (temp void)

-0:182        Condition

-0:182        Compare Less Than (temp bool)

-0:182          direct index (temp float)

-0:182            'color' (temp 4-component vector of float)

-0:182            Constant:

-0:182              0 (const int)

-0:182          'd6' (uniform float)

-0:182        true case

-0:183        Sequence

-0:183          Loop with condition tested first

-0:183            Loop Condition

-0:183            Compare Less Than (temp bool)

-0:183              direct index (temp float)

-0:183                'color' (temp 4-component vector of float)

-0:183                Constant:

-0:183                  1 (const int)

-0:183              'd6' (uniform float)

-0:183            Loop Body

-0:184            Sequence

-0:184              add second child into first child (temp 4-component vector of float)

-0:184                'color' (temp 4-component vector of float)

-0:184                'bigColor6' (uniform 4-component vector of float)

-0:185              Test condition and select (temp void)

-0:185                Condition

-0:185                Compare Less Than (temp bool)

-0:185                  'd7' (uniform float)

-0:185                  Constant:

-0:185                    1.000000

-0:185                true case

-0:186                Branch: Break

-0:182        false case

-0:190        Sequence

-0:190          Loop with condition tested first

-0:190            Loop Condition

-0:190            Compare Less Than (temp bool)

-0:190              direct index (temp float)

-0:190                'color' (temp 4-component vector of float)

-0:190                Constant:

-0:190                  2 (const int)

-0:190              'd6' (uniform float)

-0:190            Loop Body

-0:191            add second child into first child (temp float)

-0:191              direct index (temp float)

-0:191                'color' (temp 4-component vector of float)

-0:191                Constant:

-0:191                  2 (const int)

-0:191              direct index (temp float)

-0:191                'bigColor6' (uniform 4-component vector of float)

-0:191                Constant:

-0:191                  2 (const int)

-0:209      Loop with condition not tested first

-0:209        Loop Condition

-0:209        Constant:

-0:209          true (const bool)

-0:209        Loop Body

-0:197        Sequence

-0:197          Test condition and select (temp void)

-0:197            Condition

-0:197            Compare Less Than (temp bool)

-0:197              'd7' (uniform float)

-0:197              Constant:

-0:197                0.000000

-0:197            true case

-0:198            Branch: Break

-0:200          add second child into first child (temp 4-component vector of float)

-0:200            'color' (temp 4-component vector of float)

-0:200            'bigColor7' (uniform 4-component vector of float)

-0:202          Test condition and select (temp void)

-0:202            Condition

-0:202            Compare Less Than (temp bool)

-0:202              'd7' (uniform float)

-0:202              Constant:

-0:202                1.000000

-0:202            true case

-0:203            Sequence

-0:203              Post-Increment (temp float)

-0:203                direct index (temp float)

-0:203                  'color' (temp 4-component vector of float)

-0:203                  Constant:

-0:203                    2 (const int)

-0:204              Branch: Break

-0:207          add second child into first child (temp 4-component vector of float)

-0:207            'color' (temp 4-component vector of float)

-0:207            'BaseColor' (smooth in 4-component vector of float)

-0:234      Loop with condition not tested first

-0:234        Loop Condition

-0:234        Compare Less Than (temp bool)

-0:234          direct index (temp float)

-0:234            'color' (temp 4-component vector of float)

-0:234            Constant:

-0:234              2 (const int)

-0:234          'd8' (uniform float)

-0:234        Loop Body

-0:217        Sequence

-0:217          Test condition and select (temp void)

-0:217            Condition

-0:217            Compare Less Than (temp bool)

-0:217              'd8' (uniform float)

-0:217              Constant:

-0:217                0.000000

-0:217            true case

-0:218            Branch: Break

-0:220          add second child into first child (temp 4-component vector of float)

-0:220            'color' (temp 4-component vector of float)

-0:220            'bigColor7' (uniform 4-component vector of float)

-0:222          Test condition and select (temp void)

-0:222            Condition

-0:222            Compare Less Than (temp bool)

-0:222              'd8' (uniform float)

-0:222              Constant:

-0:222                1.000000

-0:222            true case

-0:223            Sequence

-0:223              Post-Increment (temp float)

-0:223                direct index (temp float)

-0:223                  'color' (temp 4-component vector of float)

-0:223                  Constant:

-0:223                    2 (const int)

-0:224              Test condition and select (temp void)

-0:224                Condition

-0:224                Compare Less Than (temp bool)

-0:224                  'd8' (uniform float)

-0:224                  Constant:

-0:224                    2.000000

-0:224                true case

-0:225                Sequence

-0:225                  Post-Increment (temp float)

-0:225                    direct index (temp float)

-0:225                      'color' (temp 4-component vector of float)

-0:225                      Constant:

-0:225                        1 (const int)

-0:224                false case

-0:227                Sequence

-0:227                  Post-Increment (temp float)

-0:227                    direct index (temp float)

-0:227                      'color' (temp 4-component vector of float)

-0:227                      Constant:

-0:227                        0 (const int)

-0:229              Branch: Break

-0:232          add second child into first child (temp 4-component vector of float)

-0:232            'color' (temp 4-component vector of float)

-0:232            'BaseColor' (smooth in 4-component vector of float)

-0:237      Loop with condition tested first

-0:237        Loop Condition

-0:237        Compare Less Than (temp bool)

-0:237          direct index (temp float)

-0:237            'color' (temp 4-component vector of float)

-0:237            Constant:

-0:237              3 (const int)

-0:237          'd9' (uniform float)

-0:237        Loop Body

-0:238        Sequence

-0:238          Test condition and select (temp void)

-0:238            Condition

-0:238            Compare Greater Than (temp bool)

-0:238              'd9' (uniform float)

-0:238              'd8' (uniform float)

-0:238            true case

-0:239            Sequence

-0:239              Test condition and select (temp void)

-0:239                Condition

-0:239                Compare Less Than or Equal (temp bool)

-0:239                  direct index (temp float)

-0:239                    'color' (temp 4-component vector of float)

-0:239                    Constant:

-0:239                      0 (const int)

-0:239                  'd7' (uniform float)

-0:239                true case

-0:240                Sequence

-0:240                  Test condition and select (temp void)

-0:240                    Condition

-0:240                    Compare Equal (temp bool)

-0:240                      direct index (temp float)

-0:240                        'color' (temp 4-component vector of float)

-0:240                        Constant:

-0:240                          2 (const int)

-0:240                      Constant:

-0:240                        5.000000

-0:240                    true case

-0:241                    Post-Increment (temp float)

-0:241                      direct index (temp float)

-0:241                        'color' (temp 4-component vector of float)

-0:241                        Constant:

-0:241                          3 (const int)

-0:240                    false case

-0:243                    Branch: Break

-0:250      Loop with condition tested first

-0:250        Loop Condition

-0:250        Compare Less Than (temp bool)

-0:250          direct index (temp float)

-0:250            'color' (temp 4-component vector of float)

-0:250            Constant:

-0:250              2 (const int)

-0:250          'd10' (uniform float)

-0:250        Loop Body

-0:251        Sequence

-0:251          Post-Increment (temp float)

-0:251            direct index (temp float)

-0:251              'color' (temp 4-component vector of float)

-0:251              Constant:

-0:251                1 (const int)

-0:252          Test condition and select (temp void)

-0:252            Condition

-0:252            Compare Less Than (temp bool)

-0:252              direct index (temp float)

-0:252                'color' (temp 4-component vector of float)

-0:252                Constant:

-0:252                  1 (const int)

-0:252              'd11' (uniform float)

-0:252            true case

-0:253            Sequence

-0:253              Post-Increment (temp float)

-0:253                direct index (temp float)

-0:253                  'color' (temp 4-component vector of float)

-0:253                  Constant:

-0:253                    2 (const int)

-0:254              Test condition and select (temp void)

-0:254                Condition

-0:254                Compare Less Than (temp bool)

-0:254                  direct index (temp float)

-0:254                    'color' (temp 4-component vector of float)

-0:254                    Constant:

-0:254                      3 (const int)

-0:254                  'd12' (uniform float)

-0:254                true case

-0:255                Post-Increment (temp float)

-0:255                  direct index (temp float)

-0:255                    'color' (temp 4-component vector of float)

-0:255                    Constant:

-0:255                      3 (const int)

-0:254                false case

-0:257                Post-Increment (temp float)

-0:257                  direct index (temp float)

-0:257                    'color' (temp 4-component vector of float)

-0:257                    Constant:

-0:257                      0 (const int)

-0:258              Branch: Continue

-0:261          Post-Increment (temp 4-component vector of float)

-0:261            'color' (temp 4-component vector of float)

-0:262          Branch: Break

-0:266      Loop with condition tested first

-0:266        Loop Condition

-0:266        Compare Less Than (temp bool)

-0:266          direct index (temp float)

-0:266            'color' (temp 4-component vector of float)

-0:266            Constant:

-0:266              0 (const int)

-0:266          Constant:

-0:266            10.000000

-0:266        Loop Body

-0:267        Sequence

-0:267          add second child into first child (temp 4-component vector of float)

-0:267            'color' (temp 4-component vector of float)

-0:267            'bigColor8' (uniform 4-component vector of float)

-0:269          Test condition and select (temp void)

-0:269            Condition

-0:269            Compare Less Than (temp bool)

-0:269              direct index (temp float)

-0:269                'color' (temp 4-component vector of float)

-0:269                Constant:

-0:269                  2 (const int)

-0:269              'd8' (uniform float)

-0:269            true case

-0:270            Test condition and select (temp void)

-0:270              Condition

-0:270              Compare Less Than (temp bool)

-0:270                direct index (temp float)

-0:270                  'color' (temp 4-component vector of float)

-0:270                  Constant:

-0:270                    3 (const int)

-0:270                'd6' (uniform float)

-0:270              true case

-0:271              Branch: Continue

-0:273          add second child into first child (temp float)

-0:273            direct index (temp float)

-0:273              'color' (temp 4-component vector of float)

-0:273              Constant:

-0:273                1 (const int)

-0:273            direct index (temp float)

-0:273              'bigColor8' (uniform 4-component vector of float)

-0:273              Constant:

-0:273                0 (const int)

-0:276      Post-Increment (temp 4-component vector of float)

-0:276        'color' (temp 4-component vector of float)

-0:277      move second child to first child (temp 4-component vector of float)

-0:277        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:277        'color' (temp 4-component vector of float)

-0:280      Loop with condition tested first

-0:280        Loop Condition

-0:280        Compare Less Than (temp bool)

-0:280          direct index (temp float)

-0:280            'color' (temp 4-component vector of float)

-0:280            Constant:

-0:280              0 (const int)

-0:280          'd14' (uniform float)

-0:280        Loop Body

-0:281        Sequence

-0:281          Test condition and select (temp void)

-0:281            Condition

-0:281            Compare Less Than (temp bool)

-0:281              direct index (temp float)

-0:281                'color' (temp 4-component vector of float)

-0:281                Constant:

-0:281                  1 (const int)

-0:281              'd15' (uniform float)

-0:281            true case

-0:282            Sequence

-0:282              Branch: Return

-0:281            false case

-0:285            Post-Increment (temp 4-component vector of float)

-0:285              'color' (temp 4-component vector of float)

-0:288      Post-Increment (temp 4-component vector of float)

-0:288        'color' (temp 4-component vector of float)

-0:290      Loop with condition tested first

-0:290        Loop Condition

-0:290        Compare Less Than (temp bool)

-0:290          direct index (temp float)

-0:290            'color' (temp 4-component vector of float)

-0:290            Constant:

-0:290              3 (const int)

-0:290          'd16' (uniform float)

-0:290        Loop Body

-0:291        Sequence

-0:291          Post-Increment (temp float)

-0:291            direct index (temp float)

-0:291              'color' (temp 4-component vector of float)

-0:291              Constant:

-0:291                3 (const int)

-0:296      Loop with condition tested first

-0:296        Loop Condition

-0:296        logical-and (temp bool)

-0:296          Compare Less Than (temp bool)

-0:296            direct index (temp float)

-0:296              'color' (temp 4-component vector of float)

-0:296              Constant:

-0:296                3 (const int)

-0:296            'd2' (uniform float)

-0:296          Compare Less Than (temp bool)

-0:296            direct index (temp float)

-0:296              'color' (temp 4-component vector of float)

-0:296              Constant:

-0:296                1 (const int)

-0:296            'd3' (uniform float)

-0:296        Loop Body

-0:297        Sequence

-0:297          add second child into first child (temp 4-component vector of float)

-0:297            'color' (temp 4-component vector of float)

-0:297            'bigColor1_2' (uniform 4-component vector of float)

-0:298          Test condition and select (temp void)

-0:298            Condition

-0:298            Compare Less Than (temp bool)

-0:298              direct index (temp float)

-0:298                'color' (temp 4-component vector of float)

-0:298                Constant:

-0:298                  2 (const int)

-0:298              'd3' (uniform float)

-0:298            true case

-0:299            Branch: Return

-0:307      Loop with condition not tested first

-0:307        Loop Condition

-0:307        Compare Less Than (temp bool)

-0:307          direct index (temp float)

-0:307            'color' (temp 4-component vector of float)

-0:307            Constant:

-0:307              0 (const int)

-0:307          'd17' (uniform float)

-0:307        Loop Body

-0:304        Sequence

-0:304          Test condition and select (temp void)

-0:304            Condition

-0:304            Compare Less Than (temp bool)

-0:304              direct index (temp float)

-0:304                'color' (temp 4-component vector of float)

-0:304                Constant:

-0:304                  1 (const int)

-0:304              'd18' (uniform float)

-0:304            true case

-0:305            Branch: Return

-0:306          Post-Increment (temp 4-component vector of float)

-0:306            'color' (temp 4-component vector of float)

-0:310      Loop with condition tested first

-0:310        Loop Condition

-0:310        Compare Less Than (temp bool)

-0:310          direct index (temp float)

-0:310            'color' (temp 4-component vector of float)

-0:310            Constant:

-0:310              1 (const int)

-0:310          'd16' (uniform float)

-0:310        Loop Body

-0:311        Sequence

-0:311          Test condition and select (temp void)

-0:311            Condition

-0:311            Compare Less Than (temp bool)

-0:311              direct index (temp float)

-0:311                'color' (temp 4-component vector of float)

-0:311                Constant:

-0:311                  3 (const int)

-0:311              'd16' (uniform float)

-0:311            true case

-0:312            Sequence

-0:312              Branch: Kill

-0:311            false case

-0:314            Post-Increment (temp 4-component vector of float)

-0:314              'color' (temp 4-component vector of float)

-0:317      Post-Increment (temp 4-component vector of float)

-0:317        'color' (temp 4-component vector of float)

-0:319      move second child to first child (temp 4-component vector of float)

-0:319        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:319        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'bigColor1_1' (uniform 4-component vector of float)

-0:?     'bigColor1_2' (uniform 4-component vector of float)

-0:?     'bigColor1_3' (uniform 4-component vector of float)

-0:?     'bigColor2' (uniform 4-component vector of float)

-0:?     'bigColor3' (uniform 4-component vector of float)

-0:?     'bigColor4' (uniform 4-component vector of float)

-0:?     'bigColor5' (uniform 4-component vector of float)

-0:?     'bigColor6' (uniform 4-component vector of float)

-0:?     'bigColor7' (uniform 4-component vector of float)

-0:?     'bigColor8' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'd2' (uniform float)

-0:?     'd3' (uniform float)

-0:?     'd4' (uniform float)

-0:?     'd5' (uniform float)

-0:?     'd6' (uniform float)

-0:?     'd7' (uniform float)

-0:?     'd8' (uniform float)

-0:?     'd9' (uniform float)

-0:?     'd10' (uniform float)

-0:?     'd11' (uniform float)

-0:?     'd12' (uniform float)

-0:?     'd13' (uniform float)

-0:?     'd14' (uniform float)

-0:?     'd15' (uniform float)

-0:?     'd16' (uniform float)

-0:?     'd17' (uniform float)

-0:?     'd18' (uniform float)

-0:?     'd19' (uniform float)

-0:?     'd20' (uniform float)

-0:?     'd21' (uniform float)

-0:?     'd22' (uniform float)

-0:?     'd23' (uniform float)

-0:?     'd24' (uniform float)

-0:?     'd25' (uniform float)

-0:?     'd26' (uniform float)

-0:?     'd27' (uniform float)

-0:?     'd28' (uniform float)

-0:?     'd29' (uniform float)

-0:?     'd30' (uniform float)

-0:?     'd31' (uniform float)

-0:?     'd32' (uniform float)

-0:?     'd33' (uniform float)

-0:?     'd34' (uniform float)

-0:?     'Count' (uniform int)

-

+loops.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:53  Function Definition: main( (global void)
+0:53    Function Parameters: 
+0:55    Sequence
+0:55      Sequence
+0:55        move second child to first child (temp 4-component vector of float)
+0:55          'color' (temp 4-component vector of float)
+0:55          'BaseColor' (smooth in 4-component vector of float)
+0:58      Loop with condition tested first
+0:58        Loop Condition
+0:58        Constant:
+0:58          true (const bool)
+0:58        Loop Body
+0:59        Sequence
+0:59          Test condition and select (temp void)
+0:59            Condition
+0:59            Compare Less Than (temp bool)
+0:59              direct index (temp float)
+0:59                'color' (temp 4-component vector of float)
+0:59                Constant:
+0:59                  0 (const int)
+0:59              Constant:
+0:59                0.330000
+0:59            true case
+0:60            Sequence
+0:60              add second child into first child (temp 4-component vector of float)
+0:60                'color' (temp 4-component vector of float)
+0:60                Constant:
+0:60                  0.330000
+0:60                  0.330000
+0:60                  0.330000
+0:60                  0.330000
+0:61              Branch: Break
+0:63          Test condition and select (temp void)
+0:63            Condition
+0:63            Compare Less Than (temp bool)
+0:63              direct index (temp float)
+0:63                'color' (temp 4-component vector of float)
+0:63                Constant:
+0:63                  0 (const int)
+0:63              Constant:
+0:63                0.660000
+0:63            true case
+0:64            Sequence
+0:64              add second child into first child (temp 4-component vector of float)
+0:64                'color' (temp 4-component vector of float)
+0:64                Constant:
+0:64                  0.660000
+0:64                  0.660000
+0:64                  0.660000
+0:64                  0.660000
+0:65              Branch: Break
+0:68          add second child into first child (temp 4-component vector of float)
+0:68            'color' (temp 4-component vector of float)
+0:68            Constant:
+0:68              0.330000
+0:68              0.330000
+0:68              0.330000
+0:68              0.330000
+0:69          Branch: Break
+0:73      Loop with condition tested first
+0:73        Loop Condition
+0:73        Compare Less Than (temp bool)
+0:73          direct index (temp float)
+0:73            'color' (temp 4-component vector of float)
+0:73            Constant:
+0:73              0 (const int)
+0:73          'd' (uniform float)
+0:73        Loop Body
+0:74        Sequence
+0:74          add second child into first child (temp 4-component vector of float)
+0:74            'color' (temp 4-component vector of float)
+0:74            'bigColor' (uniform 4-component vector of float)
+0:78      Loop with condition tested first
+0:78        Loop Condition
+0:78        Compare Less Than (temp bool)
+0:78          direct index (temp float)
+0:78            'color' (temp 4-component vector of float)
+0:78            Constant:
+0:78              2 (const int)
+0:78          'd' (uniform float)
+0:78        Loop Body
+0:79        Sequence
+0:79          add second child into first child (temp 4-component vector of float)
+0:79            'color' (temp 4-component vector of float)
+0:79            'bigColor1_1' (uniform 4-component vector of float)
+0:80          Test condition and select (temp void)
+0:80            Condition
+0:80            Compare Less Than (temp bool)
+0:80              direct index (temp float)
+0:80                'color' (temp 4-component vector of float)
+0:80                Constant:
+0:80                  3 (const int)
+0:80              'd' (uniform float)
+0:80            true case
+0:81            Branch: Continue
+0:83          add second child into first child (temp 4-component vector of float)
+0:83            'color' (temp 4-component vector of float)
+0:83            'bigColor1_1' (uniform 4-component vector of float)
+0:87      Loop with condition tested first
+0:87        Loop Condition
+0:87        Compare Less Than (temp bool)
+0:87          direct index (temp float)
+0:87            'color' (temp 4-component vector of float)
+0:87            Constant:
+0:87              0 (const int)
+0:87          Constant:
+0:87            42.000000
+0:87        Loop Body
+0:88        Sequence
+0:88          Pre-Increment (temp 4-component vector of float)
+0:88            'color' (temp 4-component vector of float)
+0:92      Loop with condition tested first
+0:92        Loop Condition
+0:92        logical-and (temp bool)
+0:92          Compare Less Than (temp bool)
+0:92            direct index (temp float)
+0:92              'color' (temp 4-component vector of float)
+0:92              Constant:
+0:92                3 (const int)
+0:92            'd2' (uniform float)
+0:92          Compare Less Than (temp bool)
+0:92            direct index (temp float)
+0:92              'color' (temp 4-component vector of float)
+0:92              Constant:
+0:92                1 (const int)
+0:92            'd3' (uniform float)
+0:92        Loop Body
+0:93        Sequence
+0:93          add second child into first child (temp 4-component vector of float)
+0:93            'color' (temp 4-component vector of float)
+0:93            'bigColor1_2' (uniform 4-component vector of float)
+0:97      Loop with condition tested first
+0:97        Loop Condition
+0:97        Compare Less Than (temp bool)
+0:97          direct index (temp float)
+0:97            'color' (temp 4-component vector of float)
+0:97            Constant:
+0:97              2 (const int)
+0:97          'd3' (uniform float)
+0:97        Loop Body
+0:98        Sequence
+0:98          add second child into first child (temp 4-component vector of float)
+0:98            'color' (temp 4-component vector of float)
+0:98            'bigColor1_3' (uniform 4-component vector of float)
+0:99          Test condition and select (temp void)
+0:99            Condition
+0:99            Compare Less Than (temp bool)
+0:99              direct index (temp float)
+0:99                'color' (temp 4-component vector of float)
+0:99                Constant:
+0:99                  1 (const int)
+0:99              'd4' (uniform float)
+0:99            true case
+0:100            Branch: Break
+0:101          add second child into first child (temp 4-component vector of float)
+0:101            'color' (temp 4-component vector of float)
+0:101            'bigColor1_3' (uniform 4-component vector of float)
+0:105      Sequence
+0:105        Sequence
+0:105          move second child to first child (temp int)
+0:105            'i' (temp int)
+0:105            Constant:
+0:105              0 (const int)
+0:105        Loop with condition tested first
+0:105          Loop Condition
+0:105          Compare Less Than (temp bool)
+0:105            'i' (temp int)
+0:105            'Count' (uniform int)
+0:105          Loop Body
+0:106          Sequence
+0:106            add second child into first child (temp 4-component vector of float)
+0:106              'color' (temp 4-component vector of float)
+0:106              'bigColor2' (uniform 4-component vector of float)
+0:105          Loop Terminal Expression
+0:105          Pre-Increment (temp int)
+0:105            'i' (temp int)
+0:112      Loop with condition not tested first
+0:112        Loop Condition
+0:112        Compare Less Than (temp bool)
+0:112          direct index (temp float)
+0:112            'color' (temp 4-component vector of float)
+0:112            Constant:
+0:112              0 (const int)
+0:112          'd2' (uniform float)
+0:112        Loop Body
+0:111        Sequence
+0:111          add second child into first child (temp 4-component vector of float)
+0:111            'color' (temp 4-component vector of float)
+0:111            'bigColor3' (uniform 4-component vector of float)
+0:115      Sequence
+0:115        Sequence
+0:115          move second child to first child (temp int)
+0:115            'i' (temp int)
+0:115            Constant:
+0:115              0 (const int)
+0:115        Loop with condition tested first
+0:115          Loop Condition
+0:115          Compare Less Than (temp bool)
+0:115            'i' (temp int)
+0:115            Constant:
+0:115              42 (const int)
+0:115          Loop Body
+0:116          Sequence
+0:116            add second child into first child (temp float)
+0:116              direct index (temp float)
+0:116                'color' (temp 4-component vector of float)
+0:116                Constant:
+0:116                  2 (const int)
+0:116              'd3' (uniform float)
+0:115          Loop Terminal Expression
+0:115          Pre-Increment (temp int)
+0:115            'i' (temp int)
+0:120      Sequence
+0:120        Sequence
+0:120          move second child to first child (temp int)
+0:120            'i' (temp int)
+0:120            Constant:
+0:120              0 (const int)
+0:120        Loop with condition tested first
+0:120          Loop Condition
+0:120          Compare Less Than (temp bool)
+0:120            'i' (temp int)
+0:120            Constant:
+0:120              100 (const int)
+0:120          Loop Body
+0:121          Sequence
+0:121            Test condition and select (temp void)
+0:121              Condition
+0:121              Compare Less Than (temp bool)
+0:121                direct index (temp float)
+0:121                  'color' (temp 4-component vector of float)
+0:121                  Constant:
+0:121                    2 (const int)
+0:121                Constant:
+0:121                  20.000000
+0:121              true case
+0:122              Post-Increment (temp float)
+0:122                direct index (temp float)
+0:122                  'color' (temp 4-component vector of float)
+0:122                  Constant:
+0:122                    0 (const int)
+0:121              false case
+0:124              Post-Increment (temp float)
+0:124                direct index (temp float)
+0:124                  'color' (temp 4-component vector of float)
+0:124                  Constant:
+0:124                    1 (const int)
+0:125            Test condition and select (temp void)
+0:125              Condition
+0:125              Compare Less Than (temp bool)
+0:125                direct index (temp float)
+0:125                  'color' (temp 4-component vector of float)
+0:125                  Constant:
+0:125                    3 (const int)
+0:125                Constant:
+0:125                  20.000000
+0:125              true case
+0:126              Test condition and select (temp void)
+0:126                Condition
+0:126                Compare Greater Than (temp bool)
+0:126                  direct index (temp float)
+0:126                    'color' (temp 4-component vector of float)
+0:126                    Constant:
+0:126                      2 (const int)
+0:126                  direct index (temp float)
+0:126                    'color' (temp 4-component vector of float)
+0:126                    Constant:
+0:126                      1 (const int)
+0:126                true case
+0:127                Constant:
+0:127                  0 (const int)
+0:120          Loop Terminal Expression
+0:120          Pre-Increment (temp int)
+0:120            'i' (temp int)
+0:131      Sequence
+0:131        Sequence
+0:131          move second child to first child (temp int)
+0:131            'i' (temp int)
+0:131            Constant:
+0:131              0 (const int)
+0:131        Loop with condition tested first
+0:131          Loop Condition
+0:131          Compare Less Than (temp bool)
+0:131            'i' (temp int)
+0:131            Constant:
+0:131              120 (const int)
+0:131          Loop Body
+0:132          Sequence
+0:132            Test condition and select (temp void)
+0:132              Condition
+0:132              Compare Less Than (temp bool)
+0:132                direct index (temp float)
+0:132                  'color' (temp 4-component vector of float)
+0:132                  Constant:
+0:132                    2 (const int)
+0:132                Constant:
+0:132                  20.000000
+0:132              true case
+0:133              Post-Increment (temp float)
+0:133                direct index (temp float)
+0:133                  'color' (temp 4-component vector of float)
+0:133                  Constant:
+0:133                    0 (const int)
+0:132              false case
+0:135              Post-Increment (temp float)
+0:135                direct index (temp float)
+0:135                  'color' (temp 4-component vector of float)
+0:135                  Constant:
+0:135                    1 (const int)
+0:131          Loop Terminal Expression
+0:131          Pre-Increment (temp int)
+0:131            'i' (temp int)
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp int)
+0:139            'i' (temp int)
+0:139            Constant:
+0:139              0 (const int)
+0:139        Loop with condition tested first
+0:139          Loop Condition
+0:139          Compare Less Than (temp bool)
+0:139            'i' (temp int)
+0:139            Constant:
+0:139              42 (const int)
+0:139          Loop Body
+0:140          Sequence
+0:140            add second child into first child (temp float)
+0:140              direct index (temp float)
+0:140                'color' (temp 4-component vector of float)
+0:140                Constant:
+0:140                  2 (const int)
+0:140              'd3' (uniform float)
+0:141            Test condition and select (temp void)
+0:141              Condition
+0:141              Compare Less Than (temp bool)
+0:141                direct index (temp float)
+0:141                  'color' (temp 4-component vector of float)
+0:141                  Constant:
+0:141                    0 (const int)
+0:141                'd4' (uniform float)
+0:141              true case
+0:142              Branch: Continue
+0:143            Pre-Increment (temp float)
+0:143              direct index (temp float)
+0:143                'color' (temp 4-component vector of float)
+0:143                Constant:
+0:143                  3 (const int)
+0:139          Loop Terminal Expression
+0:139          Pre-Increment (temp int)
+0:139            'i' (temp int)
+0:147      Sequence
+0:147        Sequence
+0:147          move second child to first child (temp int)
+0:147            'i' (temp int)
+0:147            Constant:
+0:147              0 (const int)
+0:147        Loop with condition tested first
+0:147          Loop Condition
+0:147          Compare Less Than (temp bool)
+0:147            'i' (temp int)
+0:147            Constant:
+0:147              42 (const int)
+0:147          Loop Body
+0:148          Sequence
+0:148            add second child into first child (temp float)
+0:148              direct index (temp float)
+0:148                'color' (temp 4-component vector of float)
+0:148                Constant:
+0:148                  2 (const int)
+0:148              'd3' (uniform float)
+0:149            Test condition and select (temp void)
+0:149              Condition
+0:149              Compare Less Than (temp bool)
+0:149                direct index (temp float)
+0:149                  'color' (temp 4-component vector of float)
+0:149                  Constant:
+0:149                    0 (const int)
+0:149                'd4' (uniform float)
+0:149              true case
+0:150              Branch: Break
+0:151            Pre-Increment (temp float)
+0:151              direct index (temp float)
+0:151                'color' (temp 4-component vector of float)
+0:151                Constant:
+0:151                  3 (const int)
+0:147          Loop Terminal Expression
+0:147          Pre-Increment (temp int)
+0:147            'i' (temp int)
+0:163      Loop with condition not tested first
+0:163        Loop Condition
+0:163        Compare Less Than (temp bool)
+0:163          direct index (temp float)
+0:163            'color' (temp 4-component vector of float)
+0:163            Constant:
+0:163              2 (const int)
+0:163          'd4' (uniform float)
+0:163        Loop Body
+0:156        Sequence
+0:156          add second child into first child (temp 4-component vector of float)
+0:156            'color' (temp 4-component vector of float)
+0:156            'bigColor4' (uniform 4-component vector of float)
+0:157          Test condition and select (temp void)
+0:157            Condition
+0:157            Compare Less Than (temp bool)
+0:157              direct index (temp float)
+0:157                'color' (temp 4-component vector of float)
+0:157                Constant:
+0:157                  0 (const int)
+0:157              'd4' (uniform float)
+0:157            true case
+0:158            Branch: Continue
+0:159          Test condition and select (temp void)
+0:159            Condition
+0:159            Compare Less Than (temp bool)
+0:159              direct index (temp float)
+0:159                'color' (temp 4-component vector of float)
+0:159                Constant:
+0:159                  1 (const int)
+0:159              'd4' (uniform float)
+0:159            true case
+0:160            add second child into first child (temp float)
+0:160              direct index (temp float)
+0:160                'color' (temp 4-component vector of float)
+0:160                Constant:
+0:160                  1 (const int)
+0:160              'd4' (uniform float)
+0:159            false case
+0:162            add second child into first child (temp float)
+0:162              direct index (temp float)
+0:162                'color' (temp 4-component vector of float)
+0:162                Constant:
+0:162                  0 (const int)
+0:162              'd4' (uniform float)
+0:170      Loop with condition not tested first
+0:170        Loop Condition
+0:170        Compare Less Than (temp bool)
+0:170          direct index (temp float)
+0:170            'color' (temp 4-component vector of float)
+0:170            Constant:
+0:170              0 (const int)
+0:170          'd5' (uniform float)
+0:170        Loop Body
+0:167        Sequence
+0:167          add second child into first child (temp 4-component vector of float)
+0:167            'color' (temp 4-component vector of float)
+0:167            'bigColor5' (uniform 4-component vector of float)
+0:168          Test condition and select (temp void)
+0:168            Condition
+0:168            Compare Less Than (temp bool)
+0:168              direct index (temp float)
+0:168                'color' (temp 4-component vector of float)
+0:168                Constant:
+0:168                  1 (const int)
+0:168              'd5' (uniform float)
+0:168            true case
+0:169            add second child into first child (temp float)
+0:169              direct index (temp float)
+0:169                'color' (temp 4-component vector of float)
+0:169                Constant:
+0:169                  1 (const int)
+0:169              'd5' (uniform float)
+0:173      Test condition and select (temp void)
+0:173        Condition
+0:173        Compare Less Than (temp bool)
+0:173          direct index (temp float)
+0:173            'color' (temp 4-component vector of float)
+0:173            Constant:
+0:173              0 (const int)
+0:173          'd6' (uniform float)
+0:173        true case
+0:174        Sequence
+0:174          Loop with condition tested first
+0:174            Loop Condition
+0:174            Compare Less Than (temp bool)
+0:174              direct index (temp float)
+0:174                'color' (temp 4-component vector of float)
+0:174                Constant:
+0:174                  1 (const int)
+0:174              'd6' (uniform float)
+0:174            Loop Body
+0:175            add second child into first child (temp 4-component vector of float)
+0:175              'color' (temp 4-component vector of float)
+0:175              'bigColor6' (uniform 4-component vector of float)
+0:173        false case
+0:177        Sequence
+0:177          Loop with condition tested first
+0:177            Loop Condition
+0:177            Compare Less Than (temp bool)
+0:177              direct index (temp float)
+0:177                'color' (temp 4-component vector of float)
+0:177                Constant:
+0:177                  2 (const int)
+0:177              'd6' (uniform float)
+0:177            Loop Body
+0:178            add second child into first child (temp float)
+0:178              direct index (temp float)
+0:178                'color' (temp 4-component vector of float)
+0:178                Constant:
+0:178                  2 (const int)
+0:178              direct index (temp float)
+0:178                'bigColor6' (uniform 4-component vector of float)
+0:178                Constant:
+0:178                  2 (const int)
+0:182      Test condition and select (temp void)
+0:182        Condition
+0:182        Compare Less Than (temp bool)
+0:182          direct index (temp float)
+0:182            'color' (temp 4-component vector of float)
+0:182            Constant:
+0:182              0 (const int)
+0:182          'd6' (uniform float)
+0:182        true case
+0:183        Sequence
+0:183          Loop with condition tested first
+0:183            Loop Condition
+0:183            Compare Less Than (temp bool)
+0:183              direct index (temp float)
+0:183                'color' (temp 4-component vector of float)
+0:183                Constant:
+0:183                  1 (const int)
+0:183              'd6' (uniform float)
+0:183            Loop Body
+0:184            Sequence
+0:184              add second child into first child (temp 4-component vector of float)
+0:184                'color' (temp 4-component vector of float)
+0:184                'bigColor6' (uniform 4-component vector of float)
+0:185              Test condition and select (temp void)
+0:185                Condition
+0:185                Compare Less Than (temp bool)
+0:185                  'd7' (uniform float)
+0:185                  Constant:
+0:185                    1.000000
+0:185                true case
+0:186                Branch: Break
+0:182        false case
+0:190        Sequence
+0:190          Loop with condition tested first
+0:190            Loop Condition
+0:190            Compare Less Than (temp bool)
+0:190              direct index (temp float)
+0:190                'color' (temp 4-component vector of float)
+0:190                Constant:
+0:190                  2 (const int)
+0:190              'd6' (uniform float)
+0:190            Loop Body
+0:191            add second child into first child (temp float)
+0:191              direct index (temp float)
+0:191                'color' (temp 4-component vector of float)
+0:191                Constant:
+0:191                  2 (const int)
+0:191              direct index (temp float)
+0:191                'bigColor6' (uniform 4-component vector of float)
+0:191                Constant:
+0:191                  2 (const int)
+0:209      Loop with condition not tested first
+0:209        Loop Condition
+0:209        Constant:
+0:209          true (const bool)
+0:209        Loop Body
+0:197        Sequence
+0:197          Test condition and select (temp void)
+0:197            Condition
+0:197            Compare Less Than (temp bool)
+0:197              'd7' (uniform float)
+0:197              Constant:
+0:197                0.000000
+0:197            true case
+0:198            Branch: Break
+0:200          add second child into first child (temp 4-component vector of float)
+0:200            'color' (temp 4-component vector of float)
+0:200            'bigColor7' (uniform 4-component vector of float)
+0:202          Test condition and select (temp void)
+0:202            Condition
+0:202            Compare Less Than (temp bool)
+0:202              'd7' (uniform float)
+0:202              Constant:
+0:202                1.000000
+0:202            true case
+0:203            Sequence
+0:203              Post-Increment (temp float)
+0:203                direct index (temp float)
+0:203                  'color' (temp 4-component vector of float)
+0:203                  Constant:
+0:203                    2 (const int)
+0:204              Branch: Break
+0:207          add second child into first child (temp 4-component vector of float)
+0:207            'color' (temp 4-component vector of float)
+0:207            'BaseColor' (smooth in 4-component vector of float)
+0:234      Loop with condition not tested first
+0:234        Loop Condition
+0:234        Compare Less Than (temp bool)
+0:234          direct index (temp float)
+0:234            'color' (temp 4-component vector of float)
+0:234            Constant:
+0:234              2 (const int)
+0:234          'd8' (uniform float)
+0:234        Loop Body
+0:217        Sequence
+0:217          Test condition and select (temp void)
+0:217            Condition
+0:217            Compare Less Than (temp bool)
+0:217              'd8' (uniform float)
+0:217              Constant:
+0:217                0.000000
+0:217            true case
+0:218            Branch: Break
+0:220          add second child into first child (temp 4-component vector of float)
+0:220            'color' (temp 4-component vector of float)
+0:220            'bigColor7' (uniform 4-component vector of float)
+0:222          Test condition and select (temp void)
+0:222            Condition
+0:222            Compare Less Than (temp bool)
+0:222              'd8' (uniform float)
+0:222              Constant:
+0:222                1.000000
+0:222            true case
+0:223            Sequence
+0:223              Post-Increment (temp float)
+0:223                direct index (temp float)
+0:223                  'color' (temp 4-component vector of float)
+0:223                  Constant:
+0:223                    2 (const int)
+0:224              Test condition and select (temp void)
+0:224                Condition
+0:224                Compare Less Than (temp bool)
+0:224                  'd8' (uniform float)
+0:224                  Constant:
+0:224                    2.000000
+0:224                true case
+0:225                Sequence
+0:225                  Post-Increment (temp float)
+0:225                    direct index (temp float)
+0:225                      'color' (temp 4-component vector of float)
+0:225                      Constant:
+0:225                        1 (const int)
+0:224                false case
+0:227                Sequence
+0:227                  Post-Increment (temp float)
+0:227                    direct index (temp float)
+0:227                      'color' (temp 4-component vector of float)
+0:227                      Constant:
+0:227                        0 (const int)
+0:229              Branch: Break
+0:232          add second child into first child (temp 4-component vector of float)
+0:232            'color' (temp 4-component vector of float)
+0:232            'BaseColor' (smooth in 4-component vector of float)
+0:237      Loop with condition tested first
+0:237        Loop Condition
+0:237        Compare Less Than (temp bool)
+0:237          direct index (temp float)
+0:237            'color' (temp 4-component vector of float)
+0:237            Constant:
+0:237              3 (const int)
+0:237          'd9' (uniform float)
+0:237        Loop Body
+0:238        Sequence
+0:238          Test condition and select (temp void)
+0:238            Condition
+0:238            Compare Greater Than (temp bool)
+0:238              'd9' (uniform float)
+0:238              'd8' (uniform float)
+0:238            true case
+0:239            Sequence
+0:239              Test condition and select (temp void)
+0:239                Condition
+0:239                Compare Less Than or Equal (temp bool)
+0:239                  direct index (temp float)
+0:239                    'color' (temp 4-component vector of float)
+0:239                    Constant:
+0:239                      0 (const int)
+0:239                  'd7' (uniform float)
+0:239                true case
+0:240                Sequence
+0:240                  Test condition and select (temp void)
+0:240                    Condition
+0:240                    Compare Equal (temp bool)
+0:240                      direct index (temp float)
+0:240                        'color' (temp 4-component vector of float)
+0:240                        Constant:
+0:240                          2 (const int)
+0:240                      Constant:
+0:240                        5.000000
+0:240                    true case
+0:241                    Post-Increment (temp float)
+0:241                      direct index (temp float)
+0:241                        'color' (temp 4-component vector of float)
+0:241                        Constant:
+0:241                          3 (const int)
+0:240                    false case
+0:243                    Branch: Break
+0:250      Loop with condition tested first
+0:250        Loop Condition
+0:250        Compare Less Than (temp bool)
+0:250          direct index (temp float)
+0:250            'color' (temp 4-component vector of float)
+0:250            Constant:
+0:250              2 (const int)
+0:250          'd10' (uniform float)
+0:250        Loop Body
+0:251        Sequence
+0:251          Post-Increment (temp float)
+0:251            direct index (temp float)
+0:251              'color' (temp 4-component vector of float)
+0:251              Constant:
+0:251                1 (const int)
+0:252          Test condition and select (temp void)
+0:252            Condition
+0:252            Compare Less Than (temp bool)
+0:252              direct index (temp float)
+0:252                'color' (temp 4-component vector of float)
+0:252                Constant:
+0:252                  1 (const int)
+0:252              'd11' (uniform float)
+0:252            true case
+0:253            Sequence
+0:253              Post-Increment (temp float)
+0:253                direct index (temp float)
+0:253                  'color' (temp 4-component vector of float)
+0:253                  Constant:
+0:253                    2 (const int)
+0:254              Test condition and select (temp void)
+0:254                Condition
+0:254                Compare Less Than (temp bool)
+0:254                  direct index (temp float)
+0:254                    'color' (temp 4-component vector of float)
+0:254                    Constant:
+0:254                      3 (const int)
+0:254                  'd12' (uniform float)
+0:254                true case
+0:255                Post-Increment (temp float)
+0:255                  direct index (temp float)
+0:255                    'color' (temp 4-component vector of float)
+0:255                    Constant:
+0:255                      3 (const int)
+0:254                false case
+0:257                Post-Increment (temp float)
+0:257                  direct index (temp float)
+0:257                    'color' (temp 4-component vector of float)
+0:257                    Constant:
+0:257                      0 (const int)
+0:258              Branch: Continue
+0:261          Post-Increment (temp 4-component vector of float)
+0:261            'color' (temp 4-component vector of float)
+0:262          Branch: Break
+0:266      Loop with condition tested first
+0:266        Loop Condition
+0:266        Compare Less Than (temp bool)
+0:266          direct index (temp float)
+0:266            'color' (temp 4-component vector of float)
+0:266            Constant:
+0:266              0 (const int)
+0:266          Constant:
+0:266            10.000000
+0:266        Loop Body
+0:267        Sequence
+0:267          add second child into first child (temp 4-component vector of float)
+0:267            'color' (temp 4-component vector of float)
+0:267            'bigColor8' (uniform 4-component vector of float)
+0:269          Test condition and select (temp void)
+0:269            Condition
+0:269            Compare Less Than (temp bool)
+0:269              direct index (temp float)
+0:269                'color' (temp 4-component vector of float)
+0:269                Constant:
+0:269                  2 (const int)
+0:269              'd8' (uniform float)
+0:269            true case
+0:270            Test condition and select (temp void)
+0:270              Condition
+0:270              Compare Less Than (temp bool)
+0:270                direct index (temp float)
+0:270                  'color' (temp 4-component vector of float)
+0:270                  Constant:
+0:270                    3 (const int)
+0:270                'd6' (uniform float)
+0:270              true case
+0:271              Branch: Continue
+0:273          add second child into first child (temp float)
+0:273            direct index (temp float)
+0:273              'color' (temp 4-component vector of float)
+0:273              Constant:
+0:273                1 (const int)
+0:273            direct index (temp float)
+0:273              'bigColor8' (uniform 4-component vector of float)
+0:273              Constant:
+0:273                0 (const int)
+0:276      Post-Increment (temp 4-component vector of float)
+0:276        'color' (temp 4-component vector of float)
+0:277      move second child to first child (temp 4-component vector of float)
+0:277        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:277        'color' (temp 4-component vector of float)
+0:280      Loop with condition tested first
+0:280        Loop Condition
+0:280        Compare Less Than (temp bool)
+0:280          direct index (temp float)
+0:280            'color' (temp 4-component vector of float)
+0:280            Constant:
+0:280              0 (const int)
+0:280          'd14' (uniform float)
+0:280        Loop Body
+0:281        Sequence
+0:281          Test condition and select (temp void)
+0:281            Condition
+0:281            Compare Less Than (temp bool)
+0:281              direct index (temp float)
+0:281                'color' (temp 4-component vector of float)
+0:281                Constant:
+0:281                  1 (const int)
+0:281              'd15' (uniform float)
+0:281            true case
+0:282            Sequence
+0:282              Branch: Return
+0:281            false case
+0:285            Post-Increment (temp 4-component vector of float)
+0:285              'color' (temp 4-component vector of float)
+0:288      Post-Increment (temp 4-component vector of float)
+0:288        'color' (temp 4-component vector of float)
+0:290      Loop with condition tested first
+0:290        Loop Condition
+0:290        Compare Less Than (temp bool)
+0:290          direct index (temp float)
+0:290            'color' (temp 4-component vector of float)
+0:290            Constant:
+0:290              3 (const int)
+0:290          'd16' (uniform float)
+0:290        Loop Body
+0:291        Sequence
+0:291          Post-Increment (temp float)
+0:291            direct index (temp float)
+0:291              'color' (temp 4-component vector of float)
+0:291              Constant:
+0:291                3 (const int)
+0:296      Loop with condition tested first
+0:296        Loop Condition
+0:296        logical-and (temp bool)
+0:296          Compare Less Than (temp bool)
+0:296            direct index (temp float)
+0:296              'color' (temp 4-component vector of float)
+0:296              Constant:
+0:296                3 (const int)
+0:296            'd2' (uniform float)
+0:296          Compare Less Than (temp bool)
+0:296            direct index (temp float)
+0:296              'color' (temp 4-component vector of float)
+0:296              Constant:
+0:296                1 (const int)
+0:296            'd3' (uniform float)
+0:296        Loop Body
+0:297        Sequence
+0:297          add second child into first child (temp 4-component vector of float)
+0:297            'color' (temp 4-component vector of float)
+0:297            'bigColor1_2' (uniform 4-component vector of float)
+0:298          Test condition and select (temp void)
+0:298            Condition
+0:298            Compare Less Than (temp bool)
+0:298              direct index (temp float)
+0:298                'color' (temp 4-component vector of float)
+0:298                Constant:
+0:298                  2 (const int)
+0:298              'd3' (uniform float)
+0:298            true case
+0:299            Branch: Return
+0:307      Loop with condition not tested first
+0:307        Loop Condition
+0:307        Compare Less Than (temp bool)
+0:307          direct index (temp float)
+0:307            'color' (temp 4-component vector of float)
+0:307            Constant:
+0:307              0 (const int)
+0:307          'd17' (uniform float)
+0:307        Loop Body
+0:304        Sequence
+0:304          Test condition and select (temp void)
+0:304            Condition
+0:304            Compare Less Than (temp bool)
+0:304              direct index (temp float)
+0:304                'color' (temp 4-component vector of float)
+0:304                Constant:
+0:304                  1 (const int)
+0:304              'd18' (uniform float)
+0:304            true case
+0:305            Branch: Return
+0:306          Post-Increment (temp 4-component vector of float)
+0:306            'color' (temp 4-component vector of float)
+0:310      Loop with condition tested first
+0:310        Loop Condition
+0:310        Compare Less Than (temp bool)
+0:310          direct index (temp float)
+0:310            'color' (temp 4-component vector of float)
+0:310            Constant:
+0:310              1 (const int)
+0:310          'd16' (uniform float)
+0:310        Loop Body
+0:311        Sequence
+0:311          Test condition and select (temp void)
+0:311            Condition
+0:311            Compare Less Than (temp bool)
+0:311              direct index (temp float)
+0:311                'color' (temp 4-component vector of float)
+0:311                Constant:
+0:311                  3 (const int)
+0:311              'd16' (uniform float)
+0:311            true case
+0:312            Sequence
+0:312              Branch: Kill
+0:311            false case
+0:314            Post-Increment (temp 4-component vector of float)
+0:314              'color' (temp 4-component vector of float)
+0:317      Post-Increment (temp 4-component vector of float)
+0:317        'color' (temp 4-component vector of float)
+0:319      move second child to first child (temp 4-component vector of float)
+0:319        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:319        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'bigColor1_1' (uniform 4-component vector of float)
+0:?     'bigColor1_2' (uniform 4-component vector of float)
+0:?     'bigColor1_3' (uniform 4-component vector of float)
+0:?     'bigColor2' (uniform 4-component vector of float)
+0:?     'bigColor3' (uniform 4-component vector of float)
+0:?     'bigColor4' (uniform 4-component vector of float)
+0:?     'bigColor5' (uniform 4-component vector of float)
+0:?     'bigColor6' (uniform 4-component vector of float)
+0:?     'bigColor7' (uniform 4-component vector of float)
+0:?     'bigColor8' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'd2' (uniform float)
+0:?     'd3' (uniform float)
+0:?     'd4' (uniform float)
+0:?     'd5' (uniform float)
+0:?     'd6' (uniform float)
+0:?     'd7' (uniform float)
+0:?     'd8' (uniform float)
+0:?     'd9' (uniform float)
+0:?     'd10' (uniform float)
+0:?     'd11' (uniform float)
+0:?     'd12' (uniform float)
+0:?     'd13' (uniform float)
+0:?     'd14' (uniform float)
+0:?     'd15' (uniform float)
+0:?     'd16' (uniform float)
+0:?     'd17' (uniform float)
+0:?     'd18' (uniform float)
+0:?     'd19' (uniform float)
+0:?     'd20' (uniform float)
+0:?     'd21' (uniform float)
+0:?     'd22' (uniform float)
+0:?     'd23' (uniform float)
+0:?     'd24' (uniform float)
+0:?     'd25' (uniform float)
+0:?     'd26' (uniform float)
+0:?     'd27' (uniform float)
+0:?     'd28' (uniform float)
+0:?     'd29' (uniform float)
+0:?     'd30' (uniform float)
+0:?     'd31' (uniform float)
+0:?     'd32' (uniform float)
+0:?     'd33' (uniform float)
+0:?     'd34' (uniform float)
+0:?     'Count' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:53  Function Definition: main( (global void)
+0:53    Function Parameters: 
+0:55    Sequence
+0:55      Sequence
+0:55        move second child to first child (temp 4-component vector of float)
+0:55          'color' (temp 4-component vector of float)
+0:55          'BaseColor' (smooth in 4-component vector of float)
+0:58      Loop with condition tested first
+0:58        Loop Condition
+0:58        Constant:
+0:58          true (const bool)
+0:58        Loop Body
+0:59        Sequence
+0:59          Test condition and select (temp void)
+0:59            Condition
+0:59            Compare Less Than (temp bool)
+0:59              direct index (temp float)
+0:59                'color' (temp 4-component vector of float)
+0:59                Constant:
+0:59                  0 (const int)
+0:59              Constant:
+0:59                0.330000
+0:59            true case
+0:60            Sequence
+0:60              add second child into first child (temp 4-component vector of float)
+0:60                'color' (temp 4-component vector of float)
+0:60                Constant:
+0:60                  0.330000
+0:60                  0.330000
+0:60                  0.330000
+0:60                  0.330000
+0:61              Branch: Break
+0:63          Test condition and select (temp void)
+0:63            Condition
+0:63            Compare Less Than (temp bool)
+0:63              direct index (temp float)
+0:63                'color' (temp 4-component vector of float)
+0:63                Constant:
+0:63                  0 (const int)
+0:63              Constant:
+0:63                0.660000
+0:63            true case
+0:64            Sequence
+0:64              add second child into first child (temp 4-component vector of float)
+0:64                'color' (temp 4-component vector of float)
+0:64                Constant:
+0:64                  0.660000
+0:64                  0.660000
+0:64                  0.660000
+0:64                  0.660000
+0:65              Branch: Break
+0:68          add second child into first child (temp 4-component vector of float)
+0:68            'color' (temp 4-component vector of float)
+0:68            Constant:
+0:68              0.330000
+0:68              0.330000
+0:68              0.330000
+0:68              0.330000
+0:69          Branch: Break
+0:73      Loop with condition tested first
+0:73        Loop Condition
+0:73        Compare Less Than (temp bool)
+0:73          direct index (temp float)
+0:73            'color' (temp 4-component vector of float)
+0:73            Constant:
+0:73              0 (const int)
+0:73          'd' (uniform float)
+0:73        Loop Body
+0:74        Sequence
+0:74          add second child into first child (temp 4-component vector of float)
+0:74            'color' (temp 4-component vector of float)
+0:74            'bigColor' (uniform 4-component vector of float)
+0:78      Loop with condition tested first
+0:78        Loop Condition
+0:78        Compare Less Than (temp bool)
+0:78          direct index (temp float)
+0:78            'color' (temp 4-component vector of float)
+0:78            Constant:
+0:78              2 (const int)
+0:78          'd' (uniform float)
+0:78        Loop Body
+0:79        Sequence
+0:79          add second child into first child (temp 4-component vector of float)
+0:79            'color' (temp 4-component vector of float)
+0:79            'bigColor1_1' (uniform 4-component vector of float)
+0:80          Test condition and select (temp void)
+0:80            Condition
+0:80            Compare Less Than (temp bool)
+0:80              direct index (temp float)
+0:80                'color' (temp 4-component vector of float)
+0:80                Constant:
+0:80                  3 (const int)
+0:80              'd' (uniform float)
+0:80            true case
+0:81            Branch: Continue
+0:83          add second child into first child (temp 4-component vector of float)
+0:83            'color' (temp 4-component vector of float)
+0:83            'bigColor1_1' (uniform 4-component vector of float)
+0:87      Loop with condition tested first
+0:87        Loop Condition
+0:87        Compare Less Than (temp bool)
+0:87          direct index (temp float)
+0:87            'color' (temp 4-component vector of float)
+0:87            Constant:
+0:87              0 (const int)
+0:87          Constant:
+0:87            42.000000
+0:87        Loop Body
+0:88        Sequence
+0:88          Pre-Increment (temp 4-component vector of float)
+0:88            'color' (temp 4-component vector of float)
+0:92      Loop with condition tested first
+0:92        Loop Condition
+0:92        logical-and (temp bool)
+0:92          Compare Less Than (temp bool)
+0:92            direct index (temp float)
+0:92              'color' (temp 4-component vector of float)
+0:92              Constant:
+0:92                3 (const int)
+0:92            'd2' (uniform float)
+0:92          Compare Less Than (temp bool)
+0:92            direct index (temp float)
+0:92              'color' (temp 4-component vector of float)
+0:92              Constant:
+0:92                1 (const int)
+0:92            'd3' (uniform float)
+0:92        Loop Body
+0:93        Sequence
+0:93          add second child into first child (temp 4-component vector of float)
+0:93            'color' (temp 4-component vector of float)
+0:93            'bigColor1_2' (uniform 4-component vector of float)
+0:97      Loop with condition tested first
+0:97        Loop Condition
+0:97        Compare Less Than (temp bool)
+0:97          direct index (temp float)
+0:97            'color' (temp 4-component vector of float)
+0:97            Constant:
+0:97              2 (const int)
+0:97          'd3' (uniform float)
+0:97        Loop Body
+0:98        Sequence
+0:98          add second child into first child (temp 4-component vector of float)
+0:98            'color' (temp 4-component vector of float)
+0:98            'bigColor1_3' (uniform 4-component vector of float)
+0:99          Test condition and select (temp void)
+0:99            Condition
+0:99            Compare Less Than (temp bool)
+0:99              direct index (temp float)
+0:99                'color' (temp 4-component vector of float)
+0:99                Constant:
+0:99                  1 (const int)
+0:99              'd4' (uniform float)
+0:99            true case
+0:100            Branch: Break
+0:101          add second child into first child (temp 4-component vector of float)
+0:101            'color' (temp 4-component vector of float)
+0:101            'bigColor1_3' (uniform 4-component vector of float)
+0:105      Sequence
+0:105        Sequence
+0:105          move second child to first child (temp int)
+0:105            'i' (temp int)
+0:105            Constant:
+0:105              0 (const int)
+0:105        Loop with condition tested first
+0:105          Loop Condition
+0:105          Compare Less Than (temp bool)
+0:105            'i' (temp int)
+0:105            'Count' (uniform int)
+0:105          Loop Body
+0:106          Sequence
+0:106            add second child into first child (temp 4-component vector of float)
+0:106              'color' (temp 4-component vector of float)
+0:106              'bigColor2' (uniform 4-component vector of float)
+0:105          Loop Terminal Expression
+0:105          Pre-Increment (temp int)
+0:105            'i' (temp int)
+0:112      Loop with condition not tested first
+0:112        Loop Condition
+0:112        Compare Less Than (temp bool)
+0:112          direct index (temp float)
+0:112            'color' (temp 4-component vector of float)
+0:112            Constant:
+0:112              0 (const int)
+0:112          'd2' (uniform float)
+0:112        Loop Body
+0:111        Sequence
+0:111          add second child into first child (temp 4-component vector of float)
+0:111            'color' (temp 4-component vector of float)
+0:111            'bigColor3' (uniform 4-component vector of float)
+0:115      Sequence
+0:115        Sequence
+0:115          move second child to first child (temp int)
+0:115            'i' (temp int)
+0:115            Constant:
+0:115              0 (const int)
+0:115        Loop with condition tested first
+0:115          Loop Condition
+0:115          Compare Less Than (temp bool)
+0:115            'i' (temp int)
+0:115            Constant:
+0:115              42 (const int)
+0:115          Loop Body
+0:116          Sequence
+0:116            add second child into first child (temp float)
+0:116              direct index (temp float)
+0:116                'color' (temp 4-component vector of float)
+0:116                Constant:
+0:116                  2 (const int)
+0:116              'd3' (uniform float)
+0:115          Loop Terminal Expression
+0:115          Pre-Increment (temp int)
+0:115            'i' (temp int)
+0:120      Sequence
+0:120        Sequence
+0:120          move second child to first child (temp int)
+0:120            'i' (temp int)
+0:120            Constant:
+0:120              0 (const int)
+0:120        Loop with condition tested first
+0:120          Loop Condition
+0:120          Compare Less Than (temp bool)
+0:120            'i' (temp int)
+0:120            Constant:
+0:120              100 (const int)
+0:120          Loop Body
+0:121          Sequence
+0:121            Test condition and select (temp void)
+0:121              Condition
+0:121              Compare Less Than (temp bool)
+0:121                direct index (temp float)
+0:121                  'color' (temp 4-component vector of float)
+0:121                  Constant:
+0:121                    2 (const int)
+0:121                Constant:
+0:121                  20.000000
+0:121              true case
+0:122              Post-Increment (temp float)
+0:122                direct index (temp float)
+0:122                  'color' (temp 4-component vector of float)
+0:122                  Constant:
+0:122                    0 (const int)
+0:121              false case
+0:124              Post-Increment (temp float)
+0:124                direct index (temp float)
+0:124                  'color' (temp 4-component vector of float)
+0:124                  Constant:
+0:124                    1 (const int)
+0:125            Test condition and select (temp void)
+0:125              Condition
+0:125              Compare Less Than (temp bool)
+0:125                direct index (temp float)
+0:125                  'color' (temp 4-component vector of float)
+0:125                  Constant:
+0:125                    3 (const int)
+0:125                Constant:
+0:125                  20.000000
+0:125              true case
+0:126              Test condition and select (temp void)
+0:126                Condition
+0:126                Compare Greater Than (temp bool)
+0:126                  direct index (temp float)
+0:126                    'color' (temp 4-component vector of float)
+0:126                    Constant:
+0:126                      2 (const int)
+0:126                  direct index (temp float)
+0:126                    'color' (temp 4-component vector of float)
+0:126                    Constant:
+0:126                      1 (const int)
+0:126                true case
+0:127                Constant:
+0:127                  0 (const int)
+0:120          Loop Terminal Expression
+0:120          Pre-Increment (temp int)
+0:120            'i' (temp int)
+0:131      Sequence
+0:131        Sequence
+0:131          move second child to first child (temp int)
+0:131            'i' (temp int)
+0:131            Constant:
+0:131              0 (const int)
+0:131        Loop with condition tested first
+0:131          Loop Condition
+0:131          Compare Less Than (temp bool)
+0:131            'i' (temp int)
+0:131            Constant:
+0:131              120 (const int)
+0:131          Loop Body
+0:132          Sequence
+0:132            Test condition and select (temp void)
+0:132              Condition
+0:132              Compare Less Than (temp bool)
+0:132                direct index (temp float)
+0:132                  'color' (temp 4-component vector of float)
+0:132                  Constant:
+0:132                    2 (const int)
+0:132                Constant:
+0:132                  20.000000
+0:132              true case
+0:133              Post-Increment (temp float)
+0:133                direct index (temp float)
+0:133                  'color' (temp 4-component vector of float)
+0:133                  Constant:
+0:133                    0 (const int)
+0:132              false case
+0:135              Post-Increment (temp float)
+0:135                direct index (temp float)
+0:135                  'color' (temp 4-component vector of float)
+0:135                  Constant:
+0:135                    1 (const int)
+0:131          Loop Terminal Expression
+0:131          Pre-Increment (temp int)
+0:131            'i' (temp int)
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp int)
+0:139            'i' (temp int)
+0:139            Constant:
+0:139              0 (const int)
+0:139        Loop with condition tested first
+0:139          Loop Condition
+0:139          Compare Less Than (temp bool)
+0:139            'i' (temp int)
+0:139            Constant:
+0:139              42 (const int)
+0:139          Loop Body
+0:140          Sequence
+0:140            add second child into first child (temp float)
+0:140              direct index (temp float)
+0:140                'color' (temp 4-component vector of float)
+0:140                Constant:
+0:140                  2 (const int)
+0:140              'd3' (uniform float)
+0:141            Test condition and select (temp void)
+0:141              Condition
+0:141              Compare Less Than (temp bool)
+0:141                direct index (temp float)
+0:141                  'color' (temp 4-component vector of float)
+0:141                  Constant:
+0:141                    0 (const int)
+0:141                'd4' (uniform float)
+0:141              true case
+0:142              Branch: Continue
+0:143            Pre-Increment (temp float)
+0:143              direct index (temp float)
+0:143                'color' (temp 4-component vector of float)
+0:143                Constant:
+0:143                  3 (const int)
+0:139          Loop Terminal Expression
+0:139          Pre-Increment (temp int)
+0:139            'i' (temp int)
+0:147      Sequence
+0:147        Sequence
+0:147          move second child to first child (temp int)
+0:147            'i' (temp int)
+0:147            Constant:
+0:147              0 (const int)
+0:147        Loop with condition tested first
+0:147          Loop Condition
+0:147          Compare Less Than (temp bool)
+0:147            'i' (temp int)
+0:147            Constant:
+0:147              42 (const int)
+0:147          Loop Body
+0:148          Sequence
+0:148            add second child into first child (temp float)
+0:148              direct index (temp float)
+0:148                'color' (temp 4-component vector of float)
+0:148                Constant:
+0:148                  2 (const int)
+0:148              'd3' (uniform float)
+0:149            Test condition and select (temp void)
+0:149              Condition
+0:149              Compare Less Than (temp bool)
+0:149                direct index (temp float)
+0:149                  'color' (temp 4-component vector of float)
+0:149                  Constant:
+0:149                    0 (const int)
+0:149                'd4' (uniform float)
+0:149              true case
+0:150              Branch: Break
+0:151            Pre-Increment (temp float)
+0:151              direct index (temp float)
+0:151                'color' (temp 4-component vector of float)
+0:151                Constant:
+0:151                  3 (const int)
+0:147          Loop Terminal Expression
+0:147          Pre-Increment (temp int)
+0:147            'i' (temp int)
+0:163      Loop with condition not tested first
+0:163        Loop Condition
+0:163        Compare Less Than (temp bool)
+0:163          direct index (temp float)
+0:163            'color' (temp 4-component vector of float)
+0:163            Constant:
+0:163              2 (const int)
+0:163          'd4' (uniform float)
+0:163        Loop Body
+0:156        Sequence
+0:156          add second child into first child (temp 4-component vector of float)
+0:156            'color' (temp 4-component vector of float)
+0:156            'bigColor4' (uniform 4-component vector of float)
+0:157          Test condition and select (temp void)
+0:157            Condition
+0:157            Compare Less Than (temp bool)
+0:157              direct index (temp float)
+0:157                'color' (temp 4-component vector of float)
+0:157                Constant:
+0:157                  0 (const int)
+0:157              'd4' (uniform float)
+0:157            true case
+0:158            Branch: Continue
+0:159          Test condition and select (temp void)
+0:159            Condition
+0:159            Compare Less Than (temp bool)
+0:159              direct index (temp float)
+0:159                'color' (temp 4-component vector of float)
+0:159                Constant:
+0:159                  1 (const int)
+0:159              'd4' (uniform float)
+0:159            true case
+0:160            add second child into first child (temp float)
+0:160              direct index (temp float)
+0:160                'color' (temp 4-component vector of float)
+0:160                Constant:
+0:160                  1 (const int)
+0:160              'd4' (uniform float)
+0:159            false case
+0:162            add second child into first child (temp float)
+0:162              direct index (temp float)
+0:162                'color' (temp 4-component vector of float)
+0:162                Constant:
+0:162                  0 (const int)
+0:162              'd4' (uniform float)
+0:170      Loop with condition not tested first
+0:170        Loop Condition
+0:170        Compare Less Than (temp bool)
+0:170          direct index (temp float)
+0:170            'color' (temp 4-component vector of float)
+0:170            Constant:
+0:170              0 (const int)
+0:170          'd5' (uniform float)
+0:170        Loop Body
+0:167        Sequence
+0:167          add second child into first child (temp 4-component vector of float)
+0:167            'color' (temp 4-component vector of float)
+0:167            'bigColor5' (uniform 4-component vector of float)
+0:168          Test condition and select (temp void)
+0:168            Condition
+0:168            Compare Less Than (temp bool)
+0:168              direct index (temp float)
+0:168                'color' (temp 4-component vector of float)
+0:168                Constant:
+0:168                  1 (const int)
+0:168              'd5' (uniform float)
+0:168            true case
+0:169            add second child into first child (temp float)
+0:169              direct index (temp float)
+0:169                'color' (temp 4-component vector of float)
+0:169                Constant:
+0:169                  1 (const int)
+0:169              'd5' (uniform float)
+0:173      Test condition and select (temp void)
+0:173        Condition
+0:173        Compare Less Than (temp bool)
+0:173          direct index (temp float)
+0:173            'color' (temp 4-component vector of float)
+0:173            Constant:
+0:173              0 (const int)
+0:173          'd6' (uniform float)
+0:173        true case
+0:174        Sequence
+0:174          Loop with condition tested first
+0:174            Loop Condition
+0:174            Compare Less Than (temp bool)
+0:174              direct index (temp float)
+0:174                'color' (temp 4-component vector of float)
+0:174                Constant:
+0:174                  1 (const int)
+0:174              'd6' (uniform float)
+0:174            Loop Body
+0:175            add second child into first child (temp 4-component vector of float)
+0:175              'color' (temp 4-component vector of float)
+0:175              'bigColor6' (uniform 4-component vector of float)
+0:173        false case
+0:177        Sequence
+0:177          Loop with condition tested first
+0:177            Loop Condition
+0:177            Compare Less Than (temp bool)
+0:177              direct index (temp float)
+0:177                'color' (temp 4-component vector of float)
+0:177                Constant:
+0:177                  2 (const int)
+0:177              'd6' (uniform float)
+0:177            Loop Body
+0:178            add second child into first child (temp float)
+0:178              direct index (temp float)
+0:178                'color' (temp 4-component vector of float)
+0:178                Constant:
+0:178                  2 (const int)
+0:178              direct index (temp float)
+0:178                'bigColor6' (uniform 4-component vector of float)
+0:178                Constant:
+0:178                  2 (const int)
+0:182      Test condition and select (temp void)
+0:182        Condition
+0:182        Compare Less Than (temp bool)
+0:182          direct index (temp float)
+0:182            'color' (temp 4-component vector of float)
+0:182            Constant:
+0:182              0 (const int)
+0:182          'd6' (uniform float)
+0:182        true case
+0:183        Sequence
+0:183          Loop with condition tested first
+0:183            Loop Condition
+0:183            Compare Less Than (temp bool)
+0:183              direct index (temp float)
+0:183                'color' (temp 4-component vector of float)
+0:183                Constant:
+0:183                  1 (const int)
+0:183              'd6' (uniform float)
+0:183            Loop Body
+0:184            Sequence
+0:184              add second child into first child (temp 4-component vector of float)
+0:184                'color' (temp 4-component vector of float)
+0:184                'bigColor6' (uniform 4-component vector of float)
+0:185              Test condition and select (temp void)
+0:185                Condition
+0:185                Compare Less Than (temp bool)
+0:185                  'd7' (uniform float)
+0:185                  Constant:
+0:185                    1.000000
+0:185                true case
+0:186                Branch: Break
+0:182        false case
+0:190        Sequence
+0:190          Loop with condition tested first
+0:190            Loop Condition
+0:190            Compare Less Than (temp bool)
+0:190              direct index (temp float)
+0:190                'color' (temp 4-component vector of float)
+0:190                Constant:
+0:190                  2 (const int)
+0:190              'd6' (uniform float)
+0:190            Loop Body
+0:191            add second child into first child (temp float)
+0:191              direct index (temp float)
+0:191                'color' (temp 4-component vector of float)
+0:191                Constant:
+0:191                  2 (const int)
+0:191              direct index (temp float)
+0:191                'bigColor6' (uniform 4-component vector of float)
+0:191                Constant:
+0:191                  2 (const int)
+0:209      Loop with condition not tested first
+0:209        Loop Condition
+0:209        Constant:
+0:209          true (const bool)
+0:209        Loop Body
+0:197        Sequence
+0:197          Test condition and select (temp void)
+0:197            Condition
+0:197            Compare Less Than (temp bool)
+0:197              'd7' (uniform float)
+0:197              Constant:
+0:197                0.000000
+0:197            true case
+0:198            Branch: Break
+0:200          add second child into first child (temp 4-component vector of float)
+0:200            'color' (temp 4-component vector of float)
+0:200            'bigColor7' (uniform 4-component vector of float)
+0:202          Test condition and select (temp void)
+0:202            Condition
+0:202            Compare Less Than (temp bool)
+0:202              'd7' (uniform float)
+0:202              Constant:
+0:202                1.000000
+0:202            true case
+0:203            Sequence
+0:203              Post-Increment (temp float)
+0:203                direct index (temp float)
+0:203                  'color' (temp 4-component vector of float)
+0:203                  Constant:
+0:203                    2 (const int)
+0:204              Branch: Break
+0:207          add second child into first child (temp 4-component vector of float)
+0:207            'color' (temp 4-component vector of float)
+0:207            'BaseColor' (smooth in 4-component vector of float)
+0:234      Loop with condition not tested first
+0:234        Loop Condition
+0:234        Compare Less Than (temp bool)
+0:234          direct index (temp float)
+0:234            'color' (temp 4-component vector of float)
+0:234            Constant:
+0:234              2 (const int)
+0:234          'd8' (uniform float)
+0:234        Loop Body
+0:217        Sequence
+0:217          Test condition and select (temp void)
+0:217            Condition
+0:217            Compare Less Than (temp bool)
+0:217              'd8' (uniform float)
+0:217              Constant:
+0:217                0.000000
+0:217            true case
+0:218            Branch: Break
+0:220          add second child into first child (temp 4-component vector of float)
+0:220            'color' (temp 4-component vector of float)
+0:220            'bigColor7' (uniform 4-component vector of float)
+0:222          Test condition and select (temp void)
+0:222            Condition
+0:222            Compare Less Than (temp bool)
+0:222              'd8' (uniform float)
+0:222              Constant:
+0:222                1.000000
+0:222            true case
+0:223            Sequence
+0:223              Post-Increment (temp float)
+0:223                direct index (temp float)
+0:223                  'color' (temp 4-component vector of float)
+0:223                  Constant:
+0:223                    2 (const int)
+0:224              Test condition and select (temp void)
+0:224                Condition
+0:224                Compare Less Than (temp bool)
+0:224                  'd8' (uniform float)
+0:224                  Constant:
+0:224                    2.000000
+0:224                true case
+0:225                Sequence
+0:225                  Post-Increment (temp float)
+0:225                    direct index (temp float)
+0:225                      'color' (temp 4-component vector of float)
+0:225                      Constant:
+0:225                        1 (const int)
+0:224                false case
+0:227                Sequence
+0:227                  Post-Increment (temp float)
+0:227                    direct index (temp float)
+0:227                      'color' (temp 4-component vector of float)
+0:227                      Constant:
+0:227                        0 (const int)
+0:229              Branch: Break
+0:232          add second child into first child (temp 4-component vector of float)
+0:232            'color' (temp 4-component vector of float)
+0:232            'BaseColor' (smooth in 4-component vector of float)
+0:237      Loop with condition tested first
+0:237        Loop Condition
+0:237        Compare Less Than (temp bool)
+0:237          direct index (temp float)
+0:237            'color' (temp 4-component vector of float)
+0:237            Constant:
+0:237              3 (const int)
+0:237          'd9' (uniform float)
+0:237        Loop Body
+0:238        Sequence
+0:238          Test condition and select (temp void)
+0:238            Condition
+0:238            Compare Greater Than (temp bool)
+0:238              'd9' (uniform float)
+0:238              'd8' (uniform float)
+0:238            true case
+0:239            Sequence
+0:239              Test condition and select (temp void)
+0:239                Condition
+0:239                Compare Less Than or Equal (temp bool)
+0:239                  direct index (temp float)
+0:239                    'color' (temp 4-component vector of float)
+0:239                    Constant:
+0:239                      0 (const int)
+0:239                  'd7' (uniform float)
+0:239                true case
+0:240                Sequence
+0:240                  Test condition and select (temp void)
+0:240                    Condition
+0:240                    Compare Equal (temp bool)
+0:240                      direct index (temp float)
+0:240                        'color' (temp 4-component vector of float)
+0:240                        Constant:
+0:240                          2 (const int)
+0:240                      Constant:
+0:240                        5.000000
+0:240                    true case
+0:241                    Post-Increment (temp float)
+0:241                      direct index (temp float)
+0:241                        'color' (temp 4-component vector of float)
+0:241                        Constant:
+0:241                          3 (const int)
+0:240                    false case
+0:243                    Branch: Break
+0:250      Loop with condition tested first
+0:250        Loop Condition
+0:250        Compare Less Than (temp bool)
+0:250          direct index (temp float)
+0:250            'color' (temp 4-component vector of float)
+0:250            Constant:
+0:250              2 (const int)
+0:250          'd10' (uniform float)
+0:250        Loop Body
+0:251        Sequence
+0:251          Post-Increment (temp float)
+0:251            direct index (temp float)
+0:251              'color' (temp 4-component vector of float)
+0:251              Constant:
+0:251                1 (const int)
+0:252          Test condition and select (temp void)
+0:252            Condition
+0:252            Compare Less Than (temp bool)
+0:252              direct index (temp float)
+0:252                'color' (temp 4-component vector of float)
+0:252                Constant:
+0:252                  1 (const int)
+0:252              'd11' (uniform float)
+0:252            true case
+0:253            Sequence
+0:253              Post-Increment (temp float)
+0:253                direct index (temp float)
+0:253                  'color' (temp 4-component vector of float)
+0:253                  Constant:
+0:253                    2 (const int)
+0:254              Test condition and select (temp void)
+0:254                Condition
+0:254                Compare Less Than (temp bool)
+0:254                  direct index (temp float)
+0:254                    'color' (temp 4-component vector of float)
+0:254                    Constant:
+0:254                      3 (const int)
+0:254                  'd12' (uniform float)
+0:254                true case
+0:255                Post-Increment (temp float)
+0:255                  direct index (temp float)
+0:255                    'color' (temp 4-component vector of float)
+0:255                    Constant:
+0:255                      3 (const int)
+0:254                false case
+0:257                Post-Increment (temp float)
+0:257                  direct index (temp float)
+0:257                    'color' (temp 4-component vector of float)
+0:257                    Constant:
+0:257                      0 (const int)
+0:258              Branch: Continue
+0:261          Post-Increment (temp 4-component vector of float)
+0:261            'color' (temp 4-component vector of float)
+0:262          Branch: Break
+0:266      Loop with condition tested first
+0:266        Loop Condition
+0:266        Compare Less Than (temp bool)
+0:266          direct index (temp float)
+0:266            'color' (temp 4-component vector of float)
+0:266            Constant:
+0:266              0 (const int)
+0:266          Constant:
+0:266            10.000000
+0:266        Loop Body
+0:267        Sequence
+0:267          add second child into first child (temp 4-component vector of float)
+0:267            'color' (temp 4-component vector of float)
+0:267            'bigColor8' (uniform 4-component vector of float)
+0:269          Test condition and select (temp void)
+0:269            Condition
+0:269            Compare Less Than (temp bool)
+0:269              direct index (temp float)
+0:269                'color' (temp 4-component vector of float)
+0:269                Constant:
+0:269                  2 (const int)
+0:269              'd8' (uniform float)
+0:269            true case
+0:270            Test condition and select (temp void)
+0:270              Condition
+0:270              Compare Less Than (temp bool)
+0:270                direct index (temp float)
+0:270                  'color' (temp 4-component vector of float)
+0:270                  Constant:
+0:270                    3 (const int)
+0:270                'd6' (uniform float)
+0:270              true case
+0:271              Branch: Continue
+0:273          add second child into first child (temp float)
+0:273            direct index (temp float)
+0:273              'color' (temp 4-component vector of float)
+0:273              Constant:
+0:273                1 (const int)
+0:273            direct index (temp float)
+0:273              'bigColor8' (uniform 4-component vector of float)
+0:273              Constant:
+0:273                0 (const int)
+0:276      Post-Increment (temp 4-component vector of float)
+0:276        'color' (temp 4-component vector of float)
+0:277      move second child to first child (temp 4-component vector of float)
+0:277        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:277        'color' (temp 4-component vector of float)
+0:280      Loop with condition tested first
+0:280        Loop Condition
+0:280        Compare Less Than (temp bool)
+0:280          direct index (temp float)
+0:280            'color' (temp 4-component vector of float)
+0:280            Constant:
+0:280              0 (const int)
+0:280          'd14' (uniform float)
+0:280        Loop Body
+0:281        Sequence
+0:281          Test condition and select (temp void)
+0:281            Condition
+0:281            Compare Less Than (temp bool)
+0:281              direct index (temp float)
+0:281                'color' (temp 4-component vector of float)
+0:281                Constant:
+0:281                  1 (const int)
+0:281              'd15' (uniform float)
+0:281            true case
+0:282            Sequence
+0:282              Branch: Return
+0:281            false case
+0:285            Post-Increment (temp 4-component vector of float)
+0:285              'color' (temp 4-component vector of float)
+0:288      Post-Increment (temp 4-component vector of float)
+0:288        'color' (temp 4-component vector of float)
+0:290      Loop with condition tested first
+0:290        Loop Condition
+0:290        Compare Less Than (temp bool)
+0:290          direct index (temp float)
+0:290            'color' (temp 4-component vector of float)
+0:290            Constant:
+0:290              3 (const int)
+0:290          'd16' (uniform float)
+0:290        Loop Body
+0:291        Sequence
+0:291          Post-Increment (temp float)
+0:291            direct index (temp float)
+0:291              'color' (temp 4-component vector of float)
+0:291              Constant:
+0:291                3 (const int)
+0:296      Loop with condition tested first
+0:296        Loop Condition
+0:296        logical-and (temp bool)
+0:296          Compare Less Than (temp bool)
+0:296            direct index (temp float)
+0:296              'color' (temp 4-component vector of float)
+0:296              Constant:
+0:296                3 (const int)
+0:296            'd2' (uniform float)
+0:296          Compare Less Than (temp bool)
+0:296            direct index (temp float)
+0:296              'color' (temp 4-component vector of float)
+0:296              Constant:
+0:296                1 (const int)
+0:296            'd3' (uniform float)
+0:296        Loop Body
+0:297        Sequence
+0:297          add second child into first child (temp 4-component vector of float)
+0:297            'color' (temp 4-component vector of float)
+0:297            'bigColor1_2' (uniform 4-component vector of float)
+0:298          Test condition and select (temp void)
+0:298            Condition
+0:298            Compare Less Than (temp bool)
+0:298              direct index (temp float)
+0:298                'color' (temp 4-component vector of float)
+0:298                Constant:
+0:298                  2 (const int)
+0:298              'd3' (uniform float)
+0:298            true case
+0:299            Branch: Return
+0:307      Loop with condition not tested first
+0:307        Loop Condition
+0:307        Compare Less Than (temp bool)
+0:307          direct index (temp float)
+0:307            'color' (temp 4-component vector of float)
+0:307            Constant:
+0:307              0 (const int)
+0:307          'd17' (uniform float)
+0:307        Loop Body
+0:304        Sequence
+0:304          Test condition and select (temp void)
+0:304            Condition
+0:304            Compare Less Than (temp bool)
+0:304              direct index (temp float)
+0:304                'color' (temp 4-component vector of float)
+0:304                Constant:
+0:304                  1 (const int)
+0:304              'd18' (uniform float)
+0:304            true case
+0:305            Branch: Return
+0:306          Post-Increment (temp 4-component vector of float)
+0:306            'color' (temp 4-component vector of float)
+0:310      Loop with condition tested first
+0:310        Loop Condition
+0:310        Compare Less Than (temp bool)
+0:310          direct index (temp float)
+0:310            'color' (temp 4-component vector of float)
+0:310            Constant:
+0:310              1 (const int)
+0:310          'd16' (uniform float)
+0:310        Loop Body
+0:311        Sequence
+0:311          Test condition and select (temp void)
+0:311            Condition
+0:311            Compare Less Than (temp bool)
+0:311              direct index (temp float)
+0:311                'color' (temp 4-component vector of float)
+0:311                Constant:
+0:311                  3 (const int)
+0:311              'd16' (uniform float)
+0:311            true case
+0:312            Sequence
+0:312              Branch: Kill
+0:311            false case
+0:314            Post-Increment (temp 4-component vector of float)
+0:314              'color' (temp 4-component vector of float)
+0:317      Post-Increment (temp 4-component vector of float)
+0:317        'color' (temp 4-component vector of float)
+0:319      move second child to first child (temp 4-component vector of float)
+0:319        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:319        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'bigColor1_1' (uniform 4-component vector of float)
+0:?     'bigColor1_2' (uniform 4-component vector of float)
+0:?     'bigColor1_3' (uniform 4-component vector of float)
+0:?     'bigColor2' (uniform 4-component vector of float)
+0:?     'bigColor3' (uniform 4-component vector of float)
+0:?     'bigColor4' (uniform 4-component vector of float)
+0:?     'bigColor5' (uniform 4-component vector of float)
+0:?     'bigColor6' (uniform 4-component vector of float)
+0:?     'bigColor7' (uniform 4-component vector of float)
+0:?     'bigColor8' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'd2' (uniform float)
+0:?     'd3' (uniform float)
+0:?     'd4' (uniform float)
+0:?     'd5' (uniform float)
+0:?     'd6' (uniform float)
+0:?     'd7' (uniform float)
+0:?     'd8' (uniform float)
+0:?     'd9' (uniform float)
+0:?     'd10' (uniform float)
+0:?     'd11' (uniform float)
+0:?     'd12' (uniform float)
+0:?     'd13' (uniform float)
+0:?     'd14' (uniform float)
+0:?     'd15' (uniform float)
+0:?     'd16' (uniform float)
+0:?     'd17' (uniform float)
+0:?     'd18' (uniform float)
+0:?     'd19' (uniform float)
+0:?     'd20' (uniform float)
+0:?     'd21' (uniform float)
+0:?     'd22' (uniform float)
+0:?     'd23' (uniform float)
+0:?     'd24' (uniform float)
+0:?     'd25' (uniform float)
+0:?     'd26' (uniform float)
+0:?     'd27' (uniform float)
+0:?     'd28' (uniform float)
+0:?     'd29' (uniform float)
+0:?     'd30' (uniform float)
+0:?     'd31' (uniform float)
+0:?     'd32' (uniform float)
+0:?     'd33' (uniform float)
+0:?     'd34' (uniform float)
+0:?     'Count' (uniform int)
+
diff --git a/Test/baseResults/loopsArtificial.frag.out b/Test/baseResults/loopsArtificial.frag.out
index b5cb844..39fae13 100644
--- a/Test/baseResults/loopsArtificial.frag.out
+++ b/Test/baseResults/loopsArtificial.frag.out
@@ -1,433 +1,433 @@
-loopsArtificial.frag

-WARNING: 0:14: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:53  Function Definition: main( (global void)

-0:53    Function Parameters: 

-0:55    Sequence

-0:55      Sequence

-0:55        move second child to first child (temp 4-component vector of float)

-0:55          'color' (temp 4-component vector of float)

-0:55          'BaseColor' (smooth in 4-component vector of float)

-0:71      Loop with condition not tested first

-0:71        Loop Condition

-0:71        Compare Less Than (temp bool)

-0:71          direct index (temp float)

-0:71            'color' (temp 4-component vector of float)

-0:71            Constant:

-0:71              2 (const int)

-0:71          'd4' (uniform float)

-0:71        Loop Body

-0:59        Sequence

-0:59          add second child into first child (temp 4-component vector of float)

-0:59            'color' (temp 4-component vector of float)

-0:59            'bigColor4' (uniform 4-component vector of float)

-0:60          Test condition and select (temp void)

-0:60            Condition

-0:60            Compare Less Than (temp bool)

-0:60              direct index (temp float)

-0:60                'color' (temp 4-component vector of float)

-0:60                Constant:

-0:60                  0 (const int)

-0:60              'd4' (uniform float)

-0:60            true case

-0:61            Sequence

-0:61              add second child into first child (temp float)

-0:61                direct index (temp float)

-0:61                  'color' (temp 4-component vector of float)

-0:61                  Constant:

-0:61                    2 (const int)

-0:61                Constant:

-0:61                  2.000000

-0:62              Test condition and select (temp void)

-0:62                Condition

-0:62                Compare Less Than (temp bool)

-0:62                  direct index (temp float)

-0:62                    'color' (temp 4-component vector of float)

-0:62                    Constant:

-0:62                      2 (const int)

-0:62                  'd4' (uniform float)

-0:62                true case

-0:63                Sequence

-0:63                  Post-Increment (temp float)

-0:63                    direct index (temp float)

-0:63                      'color' (temp 4-component vector of float)

-0:63                      Constant:

-0:63                        0 (const int)

-0:64                  Branch: Continue

-0:67          Test condition and select (temp void)

-0:67            Condition

-0:67            Compare Less Than (temp bool)

-0:67              direct index (temp float)

-0:67                'color' (temp 4-component vector of float)

-0:67                Constant:

-0:67                  1 (const int)

-0:67              'd4' (uniform float)

-0:67            true case

-0:68            add second child into first child (temp float)

-0:68              direct index (temp float)

-0:68                'color' (temp 4-component vector of float)

-0:68                Constant:

-0:68                  1 (const int)

-0:68              'd4' (uniform float)

-0:67            false case

-0:70            add second child into first child (temp float)

-0:70              direct index (temp float)

-0:70                'color' (temp 4-component vector of float)

-0:70                Constant:

-0:70                  0 (const int)

-0:70              'd4' (uniform float)

-0:74      Loop with condition tested first

-0:74        Loop Condition

-0:74        Compare Less Than (temp bool)

-0:74          direct index (temp float)

-0:74            'color' (temp 4-component vector of float)

-0:74            Constant:

-0:74              3 (const int)

-0:74          'd13' (uniform float)

-0:74        Loop Body

-0:75        Sequence

-0:75          Test condition and select (temp void)

-0:75            Condition

-0:75            Compare Less Than (temp bool)

-0:75              direct index (temp float)

-0:75                'color' (temp 4-component vector of float)

-0:75                Constant:

-0:75                  2 (const int)

-0:75              'd13' (uniform float)

-0:75            true case

-0:76            Post-Increment (temp 4-component vector of float)

-0:76              'color' (temp 4-component vector of float)

-0:75            false case

-0:78            Post-Decrement (temp 4-component vector of float)

-0:78              'color' (temp 4-component vector of float)

-0:80          add second child into first child (temp 4-component vector of float)

-0:80            'color' (temp 4-component vector of float)

-0:80            'bigColor4' (uniform 4-component vector of float)

-0:81          Test condition and select (temp void)

-0:81            Condition

-0:81            Compare Less Than (temp bool)

-0:81              direct index (temp float)

-0:81                'color' (temp 4-component vector of float)

-0:81                Constant:

-0:81                  0 (const int)

-0:81              'd4' (uniform float)

-0:81            true case

-0:82            Sequence

-0:82              add second child into first child (temp float)

-0:82                direct index (temp float)

-0:82                  'color' (temp 4-component vector of float)

-0:82                  Constant:

-0:82                    2 (const int)

-0:82                Constant:

-0:82                  2.000000

-0:83              Test condition and select (temp void)

-0:83                Condition

-0:83                Compare Less Than (temp bool)

-0:83                  direct index (temp float)

-0:83                    'color' (temp 4-component vector of float)

-0:83                    Constant:

-0:83                      2 (const int)

-0:83                  'd4' (uniform float)

-0:83                true case

-0:84                Sequence

-0:84                  Post-Increment (temp float)

-0:84                    direct index (temp float)

-0:84                      'color' (temp 4-component vector of float)

-0:84                      Constant:

-0:84                        0 (const int)

-0:85                  Branch: Continue

-0:88          Test condition and select (temp void)

-0:88            Condition

-0:88            Compare Less Than (temp bool)

-0:88              direct index (temp float)

-0:88                'color' (temp 4-component vector of float)

-0:88                Constant:

-0:88                  1 (const int)

-0:88              'd4' (uniform float)

-0:88            true case

-0:89            add second child into first child (temp float)

-0:89              direct index (temp float)

-0:89                'color' (temp 4-component vector of float)

-0:89                Constant:

-0:89                  1 (const int)

-0:89              'd4' (uniform float)

-0:88            false case

-0:91            add second child into first child (temp float)

-0:91              direct index (temp float)

-0:91                'color' (temp 4-component vector of float)

-0:91                Constant:

-0:91                  0 (const int)

-0:91              'd4' (uniform float)

-0:94      Post-Increment (temp 4-component vector of float)

-0:94        'color' (temp 4-component vector of float)

-0:95      move second child to first child (temp 4-component vector of float)

-0:95        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:95        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'bigColor1_1' (uniform 4-component vector of float)

-0:?     'bigColor1_2' (uniform 4-component vector of float)

-0:?     'bigColor1_3' (uniform 4-component vector of float)

-0:?     'bigColor2' (uniform 4-component vector of float)

-0:?     'bigColor3' (uniform 4-component vector of float)

-0:?     'bigColor4' (uniform 4-component vector of float)

-0:?     'bigColor5' (uniform 4-component vector of float)

-0:?     'bigColor6' (uniform 4-component vector of float)

-0:?     'bigColor7' (uniform 4-component vector of float)

-0:?     'bigColor8' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'd2' (uniform float)

-0:?     'd3' (uniform float)

-0:?     'd4' (uniform float)

-0:?     'd5' (uniform float)

-0:?     'd6' (uniform float)

-0:?     'd7' (uniform float)

-0:?     'd8' (uniform float)

-0:?     'd9' (uniform float)

-0:?     'd10' (uniform float)

-0:?     'd11' (uniform float)

-0:?     'd12' (uniform float)

-0:?     'd13' (uniform float)

-0:?     'd14' (uniform float)

-0:?     'd15' (uniform float)

-0:?     'd16' (uniform float)

-0:?     'd17' (uniform float)

-0:?     'd18' (uniform float)

-0:?     'd19' (uniform float)

-0:?     'd20' (uniform float)

-0:?     'd21' (uniform float)

-0:?     'd22' (uniform float)

-0:?     'd23' (uniform float)

-0:?     'd24' (uniform float)

-0:?     'd25' (uniform float)

-0:?     'd26' (uniform float)

-0:?     'd27' (uniform float)

-0:?     'd28' (uniform float)

-0:?     'd29' (uniform float)

-0:?     'd30' (uniform float)

-0:?     'd31' (uniform float)

-0:?     'd32' (uniform float)

-0:?     'd33' (uniform float)

-0:?     'd34' (uniform float)

-0:?     'Count' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:53  Function Definition: main( (global void)

-0:53    Function Parameters: 

-0:55    Sequence

-0:55      Sequence

-0:55        move second child to first child (temp 4-component vector of float)

-0:55          'color' (temp 4-component vector of float)

-0:55          'BaseColor' (smooth in 4-component vector of float)

-0:71      Loop with condition not tested first

-0:71        Loop Condition

-0:71        Compare Less Than (temp bool)

-0:71          direct index (temp float)

-0:71            'color' (temp 4-component vector of float)

-0:71            Constant:

-0:71              2 (const int)

-0:71          'd4' (uniform float)

-0:71        Loop Body

-0:59        Sequence

-0:59          add second child into first child (temp 4-component vector of float)

-0:59            'color' (temp 4-component vector of float)

-0:59            'bigColor4' (uniform 4-component vector of float)

-0:60          Test condition and select (temp void)

-0:60            Condition

-0:60            Compare Less Than (temp bool)

-0:60              direct index (temp float)

-0:60                'color' (temp 4-component vector of float)

-0:60                Constant:

-0:60                  0 (const int)

-0:60              'd4' (uniform float)

-0:60            true case

-0:61            Sequence

-0:61              add second child into first child (temp float)

-0:61                direct index (temp float)

-0:61                  'color' (temp 4-component vector of float)

-0:61                  Constant:

-0:61                    2 (const int)

-0:61                Constant:

-0:61                  2.000000

-0:62              Test condition and select (temp void)

-0:62                Condition

-0:62                Compare Less Than (temp bool)

-0:62                  direct index (temp float)

-0:62                    'color' (temp 4-component vector of float)

-0:62                    Constant:

-0:62                      2 (const int)

-0:62                  'd4' (uniform float)

-0:62                true case

-0:63                Sequence

-0:63                  Post-Increment (temp float)

-0:63                    direct index (temp float)

-0:63                      'color' (temp 4-component vector of float)

-0:63                      Constant:

-0:63                        0 (const int)

-0:64                  Branch: Continue

-0:67          Test condition and select (temp void)

-0:67            Condition

-0:67            Compare Less Than (temp bool)

-0:67              direct index (temp float)

-0:67                'color' (temp 4-component vector of float)

-0:67                Constant:

-0:67                  1 (const int)

-0:67              'd4' (uniform float)

-0:67            true case

-0:68            add second child into first child (temp float)

-0:68              direct index (temp float)

-0:68                'color' (temp 4-component vector of float)

-0:68                Constant:

-0:68                  1 (const int)

-0:68              'd4' (uniform float)

-0:67            false case

-0:70            add second child into first child (temp float)

-0:70              direct index (temp float)

-0:70                'color' (temp 4-component vector of float)

-0:70                Constant:

-0:70                  0 (const int)

-0:70              'd4' (uniform float)

-0:74      Loop with condition tested first

-0:74        Loop Condition

-0:74        Compare Less Than (temp bool)

-0:74          direct index (temp float)

-0:74            'color' (temp 4-component vector of float)

-0:74            Constant:

-0:74              3 (const int)

-0:74          'd13' (uniform float)

-0:74        Loop Body

-0:75        Sequence

-0:75          Test condition and select (temp void)

-0:75            Condition

-0:75            Compare Less Than (temp bool)

-0:75              direct index (temp float)

-0:75                'color' (temp 4-component vector of float)

-0:75                Constant:

-0:75                  2 (const int)

-0:75              'd13' (uniform float)

-0:75            true case

-0:76            Post-Increment (temp 4-component vector of float)

-0:76              'color' (temp 4-component vector of float)

-0:75            false case

-0:78            Post-Decrement (temp 4-component vector of float)

-0:78              'color' (temp 4-component vector of float)

-0:80          add second child into first child (temp 4-component vector of float)

-0:80            'color' (temp 4-component vector of float)

-0:80            'bigColor4' (uniform 4-component vector of float)

-0:81          Test condition and select (temp void)

-0:81            Condition

-0:81            Compare Less Than (temp bool)

-0:81              direct index (temp float)

-0:81                'color' (temp 4-component vector of float)

-0:81                Constant:

-0:81                  0 (const int)

-0:81              'd4' (uniform float)

-0:81            true case

-0:82            Sequence

-0:82              add second child into first child (temp float)

-0:82                direct index (temp float)

-0:82                  'color' (temp 4-component vector of float)

-0:82                  Constant:

-0:82                    2 (const int)

-0:82                Constant:

-0:82                  2.000000

-0:83              Test condition and select (temp void)

-0:83                Condition

-0:83                Compare Less Than (temp bool)

-0:83                  direct index (temp float)

-0:83                    'color' (temp 4-component vector of float)

-0:83                    Constant:

-0:83                      2 (const int)

-0:83                  'd4' (uniform float)

-0:83                true case

-0:84                Sequence

-0:84                  Post-Increment (temp float)

-0:84                    direct index (temp float)

-0:84                      'color' (temp 4-component vector of float)

-0:84                      Constant:

-0:84                        0 (const int)

-0:85                  Branch: Continue

-0:88          Test condition and select (temp void)

-0:88            Condition

-0:88            Compare Less Than (temp bool)

-0:88              direct index (temp float)

-0:88                'color' (temp 4-component vector of float)

-0:88                Constant:

-0:88                  1 (const int)

-0:88              'd4' (uniform float)

-0:88            true case

-0:89            add second child into first child (temp float)

-0:89              direct index (temp float)

-0:89                'color' (temp 4-component vector of float)

-0:89                Constant:

-0:89                  1 (const int)

-0:89              'd4' (uniform float)

-0:88            false case

-0:91            add second child into first child (temp float)

-0:91              direct index (temp float)

-0:91                'color' (temp 4-component vector of float)

-0:91                Constant:

-0:91                  0 (const int)

-0:91              'd4' (uniform float)

-0:94      Post-Increment (temp 4-component vector of float)

-0:94        'color' (temp 4-component vector of float)

-0:95      move second child to first child (temp 4-component vector of float)

-0:95        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:95        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'bigColor1_1' (uniform 4-component vector of float)

-0:?     'bigColor1_2' (uniform 4-component vector of float)

-0:?     'bigColor1_3' (uniform 4-component vector of float)

-0:?     'bigColor2' (uniform 4-component vector of float)

-0:?     'bigColor3' (uniform 4-component vector of float)

-0:?     'bigColor4' (uniform 4-component vector of float)

-0:?     'bigColor5' (uniform 4-component vector of float)

-0:?     'bigColor6' (uniform 4-component vector of float)

-0:?     'bigColor7' (uniform 4-component vector of float)

-0:?     'bigColor8' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'd2' (uniform float)

-0:?     'd3' (uniform float)

-0:?     'd4' (uniform float)

-0:?     'd5' (uniform float)

-0:?     'd6' (uniform float)

-0:?     'd7' (uniform float)

-0:?     'd8' (uniform float)

-0:?     'd9' (uniform float)

-0:?     'd10' (uniform float)

-0:?     'd11' (uniform float)

-0:?     'd12' (uniform float)

-0:?     'd13' (uniform float)

-0:?     'd14' (uniform float)

-0:?     'd15' (uniform float)

-0:?     'd16' (uniform float)

-0:?     'd17' (uniform float)

-0:?     'd18' (uniform float)

-0:?     'd19' (uniform float)

-0:?     'd20' (uniform float)

-0:?     'd21' (uniform float)

-0:?     'd22' (uniform float)

-0:?     'd23' (uniform float)

-0:?     'd24' (uniform float)

-0:?     'd25' (uniform float)

-0:?     'd26' (uniform float)

-0:?     'd27' (uniform float)

-0:?     'd28' (uniform float)

-0:?     'd29' (uniform float)

-0:?     'd30' (uniform float)

-0:?     'd31' (uniform float)

-0:?     'd32' (uniform float)

-0:?     'd33' (uniform float)

-0:?     'd34' (uniform float)

-0:?     'Count' (uniform int)

-

+loopsArtificial.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:53  Function Definition: main( (global void)
+0:53    Function Parameters: 
+0:55    Sequence
+0:55      Sequence
+0:55        move second child to first child (temp 4-component vector of float)
+0:55          'color' (temp 4-component vector of float)
+0:55          'BaseColor' (smooth in 4-component vector of float)
+0:71      Loop with condition not tested first
+0:71        Loop Condition
+0:71        Compare Less Than (temp bool)
+0:71          direct index (temp float)
+0:71            'color' (temp 4-component vector of float)
+0:71            Constant:
+0:71              2 (const int)
+0:71          'd4' (uniform float)
+0:71        Loop Body
+0:59        Sequence
+0:59          add second child into first child (temp 4-component vector of float)
+0:59            'color' (temp 4-component vector of float)
+0:59            'bigColor4' (uniform 4-component vector of float)
+0:60          Test condition and select (temp void)
+0:60            Condition
+0:60            Compare Less Than (temp bool)
+0:60              direct index (temp float)
+0:60                'color' (temp 4-component vector of float)
+0:60                Constant:
+0:60                  0 (const int)
+0:60              'd4' (uniform float)
+0:60            true case
+0:61            Sequence
+0:61              add second child into first child (temp float)
+0:61                direct index (temp float)
+0:61                  'color' (temp 4-component vector of float)
+0:61                  Constant:
+0:61                    2 (const int)
+0:61                Constant:
+0:61                  2.000000
+0:62              Test condition and select (temp void)
+0:62                Condition
+0:62                Compare Less Than (temp bool)
+0:62                  direct index (temp float)
+0:62                    'color' (temp 4-component vector of float)
+0:62                    Constant:
+0:62                      2 (const int)
+0:62                  'd4' (uniform float)
+0:62                true case
+0:63                Sequence
+0:63                  Post-Increment (temp float)
+0:63                    direct index (temp float)
+0:63                      'color' (temp 4-component vector of float)
+0:63                      Constant:
+0:63                        0 (const int)
+0:64                  Branch: Continue
+0:67          Test condition and select (temp void)
+0:67            Condition
+0:67            Compare Less Than (temp bool)
+0:67              direct index (temp float)
+0:67                'color' (temp 4-component vector of float)
+0:67                Constant:
+0:67                  1 (const int)
+0:67              'd4' (uniform float)
+0:67            true case
+0:68            add second child into first child (temp float)
+0:68              direct index (temp float)
+0:68                'color' (temp 4-component vector of float)
+0:68                Constant:
+0:68                  1 (const int)
+0:68              'd4' (uniform float)
+0:67            false case
+0:70            add second child into first child (temp float)
+0:70              direct index (temp float)
+0:70                'color' (temp 4-component vector of float)
+0:70                Constant:
+0:70                  0 (const int)
+0:70              'd4' (uniform float)
+0:74      Loop with condition tested first
+0:74        Loop Condition
+0:74        Compare Less Than (temp bool)
+0:74          direct index (temp float)
+0:74            'color' (temp 4-component vector of float)
+0:74            Constant:
+0:74              3 (const int)
+0:74          'd13' (uniform float)
+0:74        Loop Body
+0:75        Sequence
+0:75          Test condition and select (temp void)
+0:75            Condition
+0:75            Compare Less Than (temp bool)
+0:75              direct index (temp float)
+0:75                'color' (temp 4-component vector of float)
+0:75                Constant:
+0:75                  2 (const int)
+0:75              'd13' (uniform float)
+0:75            true case
+0:76            Post-Increment (temp 4-component vector of float)
+0:76              'color' (temp 4-component vector of float)
+0:75            false case
+0:78            Post-Decrement (temp 4-component vector of float)
+0:78              'color' (temp 4-component vector of float)
+0:80          add second child into first child (temp 4-component vector of float)
+0:80            'color' (temp 4-component vector of float)
+0:80            'bigColor4' (uniform 4-component vector of float)
+0:81          Test condition and select (temp void)
+0:81            Condition
+0:81            Compare Less Than (temp bool)
+0:81              direct index (temp float)
+0:81                'color' (temp 4-component vector of float)
+0:81                Constant:
+0:81                  0 (const int)
+0:81              'd4' (uniform float)
+0:81            true case
+0:82            Sequence
+0:82              add second child into first child (temp float)
+0:82                direct index (temp float)
+0:82                  'color' (temp 4-component vector of float)
+0:82                  Constant:
+0:82                    2 (const int)
+0:82                Constant:
+0:82                  2.000000
+0:83              Test condition and select (temp void)
+0:83                Condition
+0:83                Compare Less Than (temp bool)
+0:83                  direct index (temp float)
+0:83                    'color' (temp 4-component vector of float)
+0:83                    Constant:
+0:83                      2 (const int)
+0:83                  'd4' (uniform float)
+0:83                true case
+0:84                Sequence
+0:84                  Post-Increment (temp float)
+0:84                    direct index (temp float)
+0:84                      'color' (temp 4-component vector of float)
+0:84                      Constant:
+0:84                        0 (const int)
+0:85                  Branch: Continue
+0:88          Test condition and select (temp void)
+0:88            Condition
+0:88            Compare Less Than (temp bool)
+0:88              direct index (temp float)
+0:88                'color' (temp 4-component vector of float)
+0:88                Constant:
+0:88                  1 (const int)
+0:88              'd4' (uniform float)
+0:88            true case
+0:89            add second child into first child (temp float)
+0:89              direct index (temp float)
+0:89                'color' (temp 4-component vector of float)
+0:89                Constant:
+0:89                  1 (const int)
+0:89              'd4' (uniform float)
+0:88            false case
+0:91            add second child into first child (temp float)
+0:91              direct index (temp float)
+0:91                'color' (temp 4-component vector of float)
+0:91                Constant:
+0:91                  0 (const int)
+0:91              'd4' (uniform float)
+0:94      Post-Increment (temp 4-component vector of float)
+0:94        'color' (temp 4-component vector of float)
+0:95      move second child to first child (temp 4-component vector of float)
+0:95        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:95        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'bigColor1_1' (uniform 4-component vector of float)
+0:?     'bigColor1_2' (uniform 4-component vector of float)
+0:?     'bigColor1_3' (uniform 4-component vector of float)
+0:?     'bigColor2' (uniform 4-component vector of float)
+0:?     'bigColor3' (uniform 4-component vector of float)
+0:?     'bigColor4' (uniform 4-component vector of float)
+0:?     'bigColor5' (uniform 4-component vector of float)
+0:?     'bigColor6' (uniform 4-component vector of float)
+0:?     'bigColor7' (uniform 4-component vector of float)
+0:?     'bigColor8' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'd2' (uniform float)
+0:?     'd3' (uniform float)
+0:?     'd4' (uniform float)
+0:?     'd5' (uniform float)
+0:?     'd6' (uniform float)
+0:?     'd7' (uniform float)
+0:?     'd8' (uniform float)
+0:?     'd9' (uniform float)
+0:?     'd10' (uniform float)
+0:?     'd11' (uniform float)
+0:?     'd12' (uniform float)
+0:?     'd13' (uniform float)
+0:?     'd14' (uniform float)
+0:?     'd15' (uniform float)
+0:?     'd16' (uniform float)
+0:?     'd17' (uniform float)
+0:?     'd18' (uniform float)
+0:?     'd19' (uniform float)
+0:?     'd20' (uniform float)
+0:?     'd21' (uniform float)
+0:?     'd22' (uniform float)
+0:?     'd23' (uniform float)
+0:?     'd24' (uniform float)
+0:?     'd25' (uniform float)
+0:?     'd26' (uniform float)
+0:?     'd27' (uniform float)
+0:?     'd28' (uniform float)
+0:?     'd29' (uniform float)
+0:?     'd30' (uniform float)
+0:?     'd31' (uniform float)
+0:?     'd32' (uniform float)
+0:?     'd33' (uniform float)
+0:?     'd34' (uniform float)
+0:?     'Count' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:53  Function Definition: main( (global void)
+0:53    Function Parameters: 
+0:55    Sequence
+0:55      Sequence
+0:55        move second child to first child (temp 4-component vector of float)
+0:55          'color' (temp 4-component vector of float)
+0:55          'BaseColor' (smooth in 4-component vector of float)
+0:71      Loop with condition not tested first
+0:71        Loop Condition
+0:71        Compare Less Than (temp bool)
+0:71          direct index (temp float)
+0:71            'color' (temp 4-component vector of float)
+0:71            Constant:
+0:71              2 (const int)
+0:71          'd4' (uniform float)
+0:71        Loop Body
+0:59        Sequence
+0:59          add second child into first child (temp 4-component vector of float)
+0:59            'color' (temp 4-component vector of float)
+0:59            'bigColor4' (uniform 4-component vector of float)
+0:60          Test condition and select (temp void)
+0:60            Condition
+0:60            Compare Less Than (temp bool)
+0:60              direct index (temp float)
+0:60                'color' (temp 4-component vector of float)
+0:60                Constant:
+0:60                  0 (const int)
+0:60              'd4' (uniform float)
+0:60            true case
+0:61            Sequence
+0:61              add second child into first child (temp float)
+0:61                direct index (temp float)
+0:61                  'color' (temp 4-component vector of float)
+0:61                  Constant:
+0:61                    2 (const int)
+0:61                Constant:
+0:61                  2.000000
+0:62              Test condition and select (temp void)
+0:62                Condition
+0:62                Compare Less Than (temp bool)
+0:62                  direct index (temp float)
+0:62                    'color' (temp 4-component vector of float)
+0:62                    Constant:
+0:62                      2 (const int)
+0:62                  'd4' (uniform float)
+0:62                true case
+0:63                Sequence
+0:63                  Post-Increment (temp float)
+0:63                    direct index (temp float)
+0:63                      'color' (temp 4-component vector of float)
+0:63                      Constant:
+0:63                        0 (const int)
+0:64                  Branch: Continue
+0:67          Test condition and select (temp void)
+0:67            Condition
+0:67            Compare Less Than (temp bool)
+0:67              direct index (temp float)
+0:67                'color' (temp 4-component vector of float)
+0:67                Constant:
+0:67                  1 (const int)
+0:67              'd4' (uniform float)
+0:67            true case
+0:68            add second child into first child (temp float)
+0:68              direct index (temp float)
+0:68                'color' (temp 4-component vector of float)
+0:68                Constant:
+0:68                  1 (const int)
+0:68              'd4' (uniform float)
+0:67            false case
+0:70            add second child into first child (temp float)
+0:70              direct index (temp float)
+0:70                'color' (temp 4-component vector of float)
+0:70                Constant:
+0:70                  0 (const int)
+0:70              'd4' (uniform float)
+0:74      Loop with condition tested first
+0:74        Loop Condition
+0:74        Compare Less Than (temp bool)
+0:74          direct index (temp float)
+0:74            'color' (temp 4-component vector of float)
+0:74            Constant:
+0:74              3 (const int)
+0:74          'd13' (uniform float)
+0:74        Loop Body
+0:75        Sequence
+0:75          Test condition and select (temp void)
+0:75            Condition
+0:75            Compare Less Than (temp bool)
+0:75              direct index (temp float)
+0:75                'color' (temp 4-component vector of float)
+0:75                Constant:
+0:75                  2 (const int)
+0:75              'd13' (uniform float)
+0:75            true case
+0:76            Post-Increment (temp 4-component vector of float)
+0:76              'color' (temp 4-component vector of float)
+0:75            false case
+0:78            Post-Decrement (temp 4-component vector of float)
+0:78              'color' (temp 4-component vector of float)
+0:80          add second child into first child (temp 4-component vector of float)
+0:80            'color' (temp 4-component vector of float)
+0:80            'bigColor4' (uniform 4-component vector of float)
+0:81          Test condition and select (temp void)
+0:81            Condition
+0:81            Compare Less Than (temp bool)
+0:81              direct index (temp float)
+0:81                'color' (temp 4-component vector of float)
+0:81                Constant:
+0:81                  0 (const int)
+0:81              'd4' (uniform float)
+0:81            true case
+0:82            Sequence
+0:82              add second child into first child (temp float)
+0:82                direct index (temp float)
+0:82                  'color' (temp 4-component vector of float)
+0:82                  Constant:
+0:82                    2 (const int)
+0:82                Constant:
+0:82                  2.000000
+0:83              Test condition and select (temp void)
+0:83                Condition
+0:83                Compare Less Than (temp bool)
+0:83                  direct index (temp float)
+0:83                    'color' (temp 4-component vector of float)
+0:83                    Constant:
+0:83                      2 (const int)
+0:83                  'd4' (uniform float)
+0:83                true case
+0:84                Sequence
+0:84                  Post-Increment (temp float)
+0:84                    direct index (temp float)
+0:84                      'color' (temp 4-component vector of float)
+0:84                      Constant:
+0:84                        0 (const int)
+0:85                  Branch: Continue
+0:88          Test condition and select (temp void)
+0:88            Condition
+0:88            Compare Less Than (temp bool)
+0:88              direct index (temp float)
+0:88                'color' (temp 4-component vector of float)
+0:88                Constant:
+0:88                  1 (const int)
+0:88              'd4' (uniform float)
+0:88            true case
+0:89            add second child into first child (temp float)
+0:89              direct index (temp float)
+0:89                'color' (temp 4-component vector of float)
+0:89                Constant:
+0:89                  1 (const int)
+0:89              'd4' (uniform float)
+0:88            false case
+0:91            add second child into first child (temp float)
+0:91              direct index (temp float)
+0:91                'color' (temp 4-component vector of float)
+0:91                Constant:
+0:91                  0 (const int)
+0:91              'd4' (uniform float)
+0:94      Post-Increment (temp 4-component vector of float)
+0:94        'color' (temp 4-component vector of float)
+0:95      move second child to first child (temp 4-component vector of float)
+0:95        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:95        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'bigColor1_1' (uniform 4-component vector of float)
+0:?     'bigColor1_2' (uniform 4-component vector of float)
+0:?     'bigColor1_3' (uniform 4-component vector of float)
+0:?     'bigColor2' (uniform 4-component vector of float)
+0:?     'bigColor3' (uniform 4-component vector of float)
+0:?     'bigColor4' (uniform 4-component vector of float)
+0:?     'bigColor5' (uniform 4-component vector of float)
+0:?     'bigColor6' (uniform 4-component vector of float)
+0:?     'bigColor7' (uniform 4-component vector of float)
+0:?     'bigColor8' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'd2' (uniform float)
+0:?     'd3' (uniform float)
+0:?     'd4' (uniform float)
+0:?     'd5' (uniform float)
+0:?     'd6' (uniform float)
+0:?     'd7' (uniform float)
+0:?     'd8' (uniform float)
+0:?     'd9' (uniform float)
+0:?     'd10' (uniform float)
+0:?     'd11' (uniform float)
+0:?     'd12' (uniform float)
+0:?     'd13' (uniform float)
+0:?     'd14' (uniform float)
+0:?     'd15' (uniform float)
+0:?     'd16' (uniform float)
+0:?     'd17' (uniform float)
+0:?     'd18' (uniform float)
+0:?     'd19' (uniform float)
+0:?     'd20' (uniform float)
+0:?     'd21' (uniform float)
+0:?     'd22' (uniform float)
+0:?     'd23' (uniform float)
+0:?     'd24' (uniform float)
+0:?     'd25' (uniform float)
+0:?     'd26' (uniform float)
+0:?     'd27' (uniform float)
+0:?     'd28' (uniform float)
+0:?     'd29' (uniform float)
+0:?     'd30' (uniform float)
+0:?     'd31' (uniform float)
+0:?     'd32' (uniform float)
+0:?     'd33' (uniform float)
+0:?     'd34' (uniform float)
+0:?     'Count' (uniform int)
+
diff --git a/Test/baseResults/mains1.frag.out b/Test/baseResults/mains1.frag.out
index 596b845..9a10431 100644
--- a/Test/baseResults/mains1.frag.out
+++ b/Test/baseResults/mains1.frag.out
@@ -1,72 +1,72 @@
-mains1.frag

-Shader version: 110

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-

-mains2.frag

-Shader version: 110

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-

-noMain1.geom

-ERROR: #version: geometry shaders require es profile with version 310 or non-es profile with version 150 or above

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 150

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = points

-ERROR: node is still EOpNull!

-0:3  Function Definition: foo( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-

-noMain2.geom

-Shader version: 150

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = line_strip

-0:? Sequence

-0:3  Function Definition: bar( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-

-

-Linked geometry stage:

-

-ERROR: Linking geometry stage: Contradictory output layout primitives

-ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point

-ERROR: Linking geometry stage: At least one shader must specify an input layout primitive

-ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:

-    main(

-

-Shader version: 150

-invocations = 0

-max_vertices = 0

-input primitive = none

-output primitive = points

-ERROR: node is still EOpNull!

-0:3  Function Definition: foo( (global void)

-0:3    Function Parameters: 

-0:3  Function Definition: bar( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-Shader version: 110

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-

+mains1.frag
+Shader version: 110
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+
+mains2.frag
+Shader version: 110
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+
+noMain1.geom
+ERROR: #version: geometry shaders require es profile with version 310 or non-es profile with version 150 or above
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 150
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = points
+ERROR: node is still EOpNull!
+0:3  Function Definition: foo( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+
+noMain2.geom
+Shader version: 150
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = line_strip
+0:? Sequence
+0:3  Function Definition: bar( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+
+
+Linked geometry stage:
+
+ERROR: Linking geometry stage: Contradictory output layout primitives
+ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
+ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
+ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
+    main(
+
+Shader version: 150
+invocations = 0
+max_vertices = 0
+input primitive = none
+output primitive = points
+ERROR: node is still EOpNull!
+0:3  Function Definition: foo( (global void)
+0:3    Function Parameters: 
+0:3  Function Definition: bar( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+Shader version: 110
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+
diff --git a/Test/baseResults/matrix.frag.out b/Test/baseResults/matrix.frag.out
index 9f20b85..14c3548 100644
--- a/Test/baseResults/matrix.frag.out
+++ b/Test/baseResults/matrix.frag.out
@@ -1,507 +1,507 @@
-matrix.frag

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-WARNING: 0:17: varying deprecated in version 130; may be removed in future release

-WARNING: 0:22: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      move second child to first child (temp 4-component vector of float)

-0:27        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:27        Construct vec4 (temp 4-component vector of float)

-0:27          direct index (temp 4-component vector of float)

-0:27            'un34' (uniform 4X4 matrix of float)

-0:27            Constant:

-0:27              1 (const int)

-0:28      add second child into first child (temp 4-component vector of float)

-0:28        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:28        Construct vec4 (temp 4-component vector of float)

-0:28          vector-times-matrix (temp 3-component vector of float)

-0:28            'Color' (smooth in 3-component vector of float)

-0:28            'colorTransform' (uniform 3X3 matrix of float)

-0:28          Constant:

-0:28            1.000000

-0:30      Test condition and select (temp void)

-0:30        Condition

-0:30        Compare Not Equal (temp bool)

-0:30          'm' (uniform 4X4 matrix of float)

-0:30          'n' (uniform 4X4 matrix of float)

-0:30        true case

-0:31        add second child into first child (temp 4-component vector of float)

-0:31          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:31          'v' (smooth in 4-component vector of float)

-0:30        false case

-0:33        Sequence

-0:33          add second child into first child (temp 4-component vector of float)

-0:33            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:33            matrix-times-vector (temp 4-component vector of float)

-0:33              'm' (uniform 4X4 matrix of float)

-0:33              'v' (smooth in 4-component vector of float)

-0:34          add second child into first child (temp 4-component vector of float)

-0:34            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:34            vector-times-matrix (temp 4-component vector of float)

-0:34              'v' (smooth in 4-component vector of float)

-0:34              subtract (temp 4X4 matrix of float)

-0:34                'm' (uniform 4X4 matrix of float)

-0:34                'n' (uniform 4X4 matrix of float)

-0:42      Sequence

-0:42        move second child to first child (temp 4X4 matrix of float)

-0:42          'm34' (temp 4X4 matrix of float)

-0:45          Construct mat4 (temp 4X4 matrix of float)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  1 (const int)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  2 (const int)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  3 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  0 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  2 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  3 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  0 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  1 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  3 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  0 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  1 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  2 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:46      add second child into first child (temp 4X4 matrix of float)

-0:46        'm34' (temp 4X4 matrix of float)

-0:46        Construct mat4 (temp 4X4 matrix of float)

-0:46          direct index (temp float)

-0:46            'v' (smooth in 4-component vector of float)

-0:46            Constant:

-0:46              0 (const int)

-0:47      add second child into first child (temp 4X4 matrix of float)

-0:47        'm34' (temp 4X4 matrix of float)

-0:47        Construct mat4 (temp 4X4 matrix of float)

-0:47          'u' (smooth in 4-component vector of float)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:47          'u' (smooth in 4-component vector of float)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:47          'u' (smooth in 4-component vector of float)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:51      Test condition and select (temp void)

-0:51        Condition

-0:51        Compare Equal (temp bool)

-0:51          'm34' (temp 4X4 matrix of float)

-0:51          'un34' (uniform 4X4 matrix of float)

-0:51        true case

-0:52        add second child into first child (temp 4-component vector of float)

-0:52          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:52          matrix-times-vector (temp 4-component vector of float)

-0:52            'm34' (temp 4X4 matrix of float)

-0:52            'u' (smooth in 4-component vector of float)

-0:51        false case

-0:54        add second child into first child (temp 4-component vector of float)

-0:54          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:54          matrix-times-vector (temp 4-component vector of float)

-0:54            matrix-multiply (temp 4X4 matrix of float)

-0:54              'un34' (uniform 4X4 matrix of float)

-0:54              'um43' (uniform 4X4 matrix of float)

-0:54            'v' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'colorTransform' (uniform 3X3 matrix of float)

-0:?     'Color' (smooth in 3-component vector of float)

-0:?     'm' (uniform 4X4 matrix of float)

-0:?     'n' (uniform 4X4 matrix of float)

-0:?     'um43' (uniform 4X4 matrix of float)

-0:?     'un34' (uniform 4X4 matrix of float)

-0:?     'v' (smooth in 4-component vector of float)

-0:?     'u' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      move second child to first child (temp 4-component vector of float)

-0:27        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:27        Construct vec4 (temp 4-component vector of float)

-0:27          direct index (temp 4-component vector of float)

-0:27            'un34' (uniform 4X4 matrix of float)

-0:27            Constant:

-0:27              1 (const int)

-0:28      add second child into first child (temp 4-component vector of float)

-0:28        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:28        Construct vec4 (temp 4-component vector of float)

-0:28          vector-times-matrix (temp 3-component vector of float)

-0:28            'Color' (smooth in 3-component vector of float)

-0:28            'colorTransform' (uniform 3X3 matrix of float)

-0:28          Constant:

-0:28            1.000000

-0:30      Test condition and select (temp void)

-0:30        Condition

-0:30        Compare Not Equal (temp bool)

-0:30          'm' (uniform 4X4 matrix of float)

-0:30          'n' (uniform 4X4 matrix of float)

-0:30        true case

-0:31        add second child into first child (temp 4-component vector of float)

-0:31          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:31          'v' (smooth in 4-component vector of float)

-0:30        false case

-0:33        Sequence

-0:33          add second child into first child (temp 4-component vector of float)

-0:33            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:33            matrix-times-vector (temp 4-component vector of float)

-0:33              'm' (uniform 4X4 matrix of float)

-0:33              'v' (smooth in 4-component vector of float)

-0:34          add second child into first child (temp 4-component vector of float)

-0:34            'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:34            vector-times-matrix (temp 4-component vector of float)

-0:34              'v' (smooth in 4-component vector of float)

-0:34              subtract (temp 4X4 matrix of float)

-0:34                'm' (uniform 4X4 matrix of float)

-0:34                'n' (uniform 4X4 matrix of float)

-0:42      Sequence

-0:42        move second child to first child (temp 4X4 matrix of float)

-0:42          'm34' (temp 4X4 matrix of float)

-0:45          Construct mat4 (temp 4X4 matrix of float)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  1 (const int)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  2 (const int)

-0:42            component-wise multiply (temp float)

-0:42              direct index (temp float)

-0:42                'v' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  0 (const int)

-0:42              direct index (temp float)

-0:42                'u' (smooth in 4-component vector of float)

-0:42                Constant:

-0:42                  3 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  0 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  2 (const int)

-0:43            component-wise multiply (temp float)

-0:43              direct index (temp float)

-0:43                'v' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  1 (const int)

-0:43              direct index (temp float)

-0:43                'u' (smooth in 4-component vector of float)

-0:43                Constant:

-0:43                  3 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  0 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  1 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44            component-wise multiply (temp float)

-0:44              direct index (temp float)

-0:44                'v' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  2 (const int)

-0:44              direct index (temp float)

-0:44                'u' (smooth in 4-component vector of float)

-0:44                Constant:

-0:44                  3 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  0 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  1 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  2 (const int)

-0:45            component-wise multiply (temp float)

-0:45              direct index (temp float)

-0:45                'v' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:45              direct index (temp float)

-0:45                'u' (smooth in 4-component vector of float)

-0:45                Constant:

-0:45                  3 (const int)

-0:46      add second child into first child (temp 4X4 matrix of float)

-0:46        'm34' (temp 4X4 matrix of float)

-0:46        Construct mat4 (temp 4X4 matrix of float)

-0:46          direct index (temp float)

-0:46            'v' (smooth in 4-component vector of float)

-0:46            Constant:

-0:46              0 (const int)

-0:47      add second child into first child (temp 4X4 matrix of float)

-0:47        'm34' (temp 4X4 matrix of float)

-0:47        Construct mat4 (temp 4X4 matrix of float)

-0:47          'u' (smooth in 4-component vector of float)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:47          'u' (smooth in 4-component vector of float)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:47          'u' (smooth in 4-component vector of float)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:47          direct index (temp float)

-0:47            'u' (smooth in 4-component vector of float)

-0:47            Constant:

-0:47              0 (const int)

-0:51      Test condition and select (temp void)

-0:51        Condition

-0:51        Compare Equal (temp bool)

-0:51          'm34' (temp 4X4 matrix of float)

-0:51          'un34' (uniform 4X4 matrix of float)

-0:51        true case

-0:52        add second child into first child (temp 4-component vector of float)

-0:52          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:52          matrix-times-vector (temp 4-component vector of float)

-0:52            'm34' (temp 4X4 matrix of float)

-0:52            'u' (smooth in 4-component vector of float)

-0:51        false case

-0:54        add second child into first child (temp 4-component vector of float)

-0:54          'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:54          matrix-times-vector (temp 4-component vector of float)

-0:54            matrix-multiply (temp 4X4 matrix of float)

-0:54              'un34' (uniform 4X4 matrix of float)

-0:54              'um43' (uniform 4X4 matrix of float)

-0:54            'v' (smooth in 4-component vector of float)

-0:?   Linker Objects

-0:?     'colorTransform' (uniform 3X3 matrix of float)

-0:?     'Color' (smooth in 3-component vector of float)

-0:?     'm' (uniform 4X4 matrix of float)

-0:?     'n' (uniform 4X4 matrix of float)

-0:?     'um43' (uniform 4X4 matrix of float)

-0:?     'un34' (uniform 4X4 matrix of float)

-0:?     'v' (smooth in 4-component vector of float)

-0:?     'u' (smooth in 4-component vector of float)

-

+matrix.frag
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:17: varying deprecated in version 130; may be removed in future release
+WARNING: 0:22: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      move second child to first child (temp 4-component vector of float)
+0:27        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:27        Construct vec4 (temp 4-component vector of float)
+0:27          direct index (temp 4-component vector of float)
+0:27            'un34' (uniform 4X4 matrix of float)
+0:27            Constant:
+0:27              1 (const int)
+0:28      add second child into first child (temp 4-component vector of float)
+0:28        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:28        Construct vec4 (temp 4-component vector of float)
+0:28          vector-times-matrix (temp 3-component vector of float)
+0:28            'Color' (smooth in 3-component vector of float)
+0:28            'colorTransform' (uniform 3X3 matrix of float)
+0:28          Constant:
+0:28            1.000000
+0:30      Test condition and select (temp void)
+0:30        Condition
+0:30        Compare Not Equal (temp bool)
+0:30          'm' (uniform 4X4 matrix of float)
+0:30          'n' (uniform 4X4 matrix of float)
+0:30        true case
+0:31        add second child into first child (temp 4-component vector of float)
+0:31          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31          'v' (smooth in 4-component vector of float)
+0:30        false case
+0:33        Sequence
+0:33          add second child into first child (temp 4-component vector of float)
+0:33            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33            matrix-times-vector (temp 4-component vector of float)
+0:33              'm' (uniform 4X4 matrix of float)
+0:33              'v' (smooth in 4-component vector of float)
+0:34          add second child into first child (temp 4-component vector of float)
+0:34            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34            vector-times-matrix (temp 4-component vector of float)
+0:34              'v' (smooth in 4-component vector of float)
+0:34              subtract (temp 4X4 matrix of float)
+0:34                'm' (uniform 4X4 matrix of float)
+0:34                'n' (uniform 4X4 matrix of float)
+0:42      Sequence
+0:42        move second child to first child (temp 4X4 matrix of float)
+0:42          'm34' (temp 4X4 matrix of float)
+0:45          Construct mat4 (temp 4X4 matrix of float)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  1 (const int)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  2 (const int)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  3 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  0 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  2 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  3 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  1 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  3 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  1 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  2 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:46      add second child into first child (temp 4X4 matrix of float)
+0:46        'm34' (temp 4X4 matrix of float)
+0:46        Construct mat4 (temp 4X4 matrix of float)
+0:46          direct index (temp float)
+0:46            'v' (smooth in 4-component vector of float)
+0:46            Constant:
+0:46              0 (const int)
+0:47      add second child into first child (temp 4X4 matrix of float)
+0:47        'm34' (temp 4X4 matrix of float)
+0:47        Construct mat4 (temp 4X4 matrix of float)
+0:47          'u' (smooth in 4-component vector of float)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:47          'u' (smooth in 4-component vector of float)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:47          'u' (smooth in 4-component vector of float)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:51      Test condition and select (temp void)
+0:51        Condition
+0:51        Compare Equal (temp bool)
+0:51          'm34' (temp 4X4 matrix of float)
+0:51          'un34' (uniform 4X4 matrix of float)
+0:51        true case
+0:52        add second child into first child (temp 4-component vector of float)
+0:52          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:52          matrix-times-vector (temp 4-component vector of float)
+0:52            'm34' (temp 4X4 matrix of float)
+0:52            'u' (smooth in 4-component vector of float)
+0:51        false case
+0:54        add second child into first child (temp 4-component vector of float)
+0:54          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:54          matrix-times-vector (temp 4-component vector of float)
+0:54            matrix-multiply (temp 4X4 matrix of float)
+0:54              'un34' (uniform 4X4 matrix of float)
+0:54              'um43' (uniform 4X4 matrix of float)
+0:54            'v' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'colorTransform' (uniform 3X3 matrix of float)
+0:?     'Color' (smooth in 3-component vector of float)
+0:?     'm' (uniform 4X4 matrix of float)
+0:?     'n' (uniform 4X4 matrix of float)
+0:?     'um43' (uniform 4X4 matrix of float)
+0:?     'un34' (uniform 4X4 matrix of float)
+0:?     'v' (smooth in 4-component vector of float)
+0:?     'u' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      move second child to first child (temp 4-component vector of float)
+0:27        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:27        Construct vec4 (temp 4-component vector of float)
+0:27          direct index (temp 4-component vector of float)
+0:27            'un34' (uniform 4X4 matrix of float)
+0:27            Constant:
+0:27              1 (const int)
+0:28      add second child into first child (temp 4-component vector of float)
+0:28        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:28        Construct vec4 (temp 4-component vector of float)
+0:28          vector-times-matrix (temp 3-component vector of float)
+0:28            'Color' (smooth in 3-component vector of float)
+0:28            'colorTransform' (uniform 3X3 matrix of float)
+0:28          Constant:
+0:28            1.000000
+0:30      Test condition and select (temp void)
+0:30        Condition
+0:30        Compare Not Equal (temp bool)
+0:30          'm' (uniform 4X4 matrix of float)
+0:30          'n' (uniform 4X4 matrix of float)
+0:30        true case
+0:31        add second child into first child (temp 4-component vector of float)
+0:31          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31          'v' (smooth in 4-component vector of float)
+0:30        false case
+0:33        Sequence
+0:33          add second child into first child (temp 4-component vector of float)
+0:33            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:33            matrix-times-vector (temp 4-component vector of float)
+0:33              'm' (uniform 4X4 matrix of float)
+0:33              'v' (smooth in 4-component vector of float)
+0:34          add second child into first child (temp 4-component vector of float)
+0:34            'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:34            vector-times-matrix (temp 4-component vector of float)
+0:34              'v' (smooth in 4-component vector of float)
+0:34              subtract (temp 4X4 matrix of float)
+0:34                'm' (uniform 4X4 matrix of float)
+0:34                'n' (uniform 4X4 matrix of float)
+0:42      Sequence
+0:42        move second child to first child (temp 4X4 matrix of float)
+0:42          'm34' (temp 4X4 matrix of float)
+0:45          Construct mat4 (temp 4X4 matrix of float)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  1 (const int)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  2 (const int)
+0:42            component-wise multiply (temp float)
+0:42              direct index (temp float)
+0:42                'v' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  0 (const int)
+0:42              direct index (temp float)
+0:42                'u' (smooth in 4-component vector of float)
+0:42                Constant:
+0:42                  3 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  0 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  2 (const int)
+0:43            component-wise multiply (temp float)
+0:43              direct index (temp float)
+0:43                'v' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  1 (const int)
+0:43              direct index (temp float)
+0:43                'u' (smooth in 4-component vector of float)
+0:43                Constant:
+0:43                  3 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  1 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44            component-wise multiply (temp float)
+0:44              direct index (temp float)
+0:44                'v' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  2 (const int)
+0:44              direct index (temp float)
+0:44                'u' (smooth in 4-component vector of float)
+0:44                Constant:
+0:44                  3 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  1 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  2 (const int)
+0:45            component-wise multiply (temp float)
+0:45              direct index (temp float)
+0:45                'v' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:45              direct index (temp float)
+0:45                'u' (smooth in 4-component vector of float)
+0:45                Constant:
+0:45                  3 (const int)
+0:46      add second child into first child (temp 4X4 matrix of float)
+0:46        'm34' (temp 4X4 matrix of float)
+0:46        Construct mat4 (temp 4X4 matrix of float)
+0:46          direct index (temp float)
+0:46            'v' (smooth in 4-component vector of float)
+0:46            Constant:
+0:46              0 (const int)
+0:47      add second child into first child (temp 4X4 matrix of float)
+0:47        'm34' (temp 4X4 matrix of float)
+0:47        Construct mat4 (temp 4X4 matrix of float)
+0:47          'u' (smooth in 4-component vector of float)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:47          'u' (smooth in 4-component vector of float)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:47          'u' (smooth in 4-component vector of float)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:47          direct index (temp float)
+0:47            'u' (smooth in 4-component vector of float)
+0:47            Constant:
+0:47              0 (const int)
+0:51      Test condition and select (temp void)
+0:51        Condition
+0:51        Compare Equal (temp bool)
+0:51          'm34' (temp 4X4 matrix of float)
+0:51          'un34' (uniform 4X4 matrix of float)
+0:51        true case
+0:52        add second child into first child (temp 4-component vector of float)
+0:52          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:52          matrix-times-vector (temp 4-component vector of float)
+0:52            'm34' (temp 4X4 matrix of float)
+0:52            'u' (smooth in 4-component vector of float)
+0:51        false case
+0:54        add second child into first child (temp 4-component vector of float)
+0:54          'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:54          matrix-times-vector (temp 4-component vector of float)
+0:54            matrix-multiply (temp 4X4 matrix of float)
+0:54              'un34' (uniform 4X4 matrix of float)
+0:54              'um43' (uniform 4X4 matrix of float)
+0:54            'v' (smooth in 4-component vector of float)
+0:?   Linker Objects
+0:?     'colorTransform' (uniform 3X3 matrix of float)
+0:?     'Color' (smooth in 3-component vector of float)
+0:?     'm' (uniform 4X4 matrix of float)
+0:?     'n' (uniform 4X4 matrix of float)
+0:?     'um43' (uniform 4X4 matrix of float)
+0:?     'un34' (uniform 4X4 matrix of float)
+0:?     'v' (smooth in 4-component vector of float)
+0:?     'u' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/matrix2.frag.out b/Test/baseResults/matrix2.frag.out
index d5b6d7d..d09dec0 100644
--- a/Test/baseResults/matrix2.frag.out
+++ b/Test/baseResults/matrix2.frag.out
@@ -1,347 +1,347 @@
-matrix2.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:13: varying deprecated in version 130; may be removed in future release

-WARNING: 0:15: varying deprecated in version 130; may be removed in future release

-

-Shader version: 150

-0:? Sequence

-0:19  Function Definition: main( (global void)

-0:19    Function Parameters: 

-0:21    Sequence

-0:21      Sequence

-0:21        move second child to first child (temp 3X4 matrix of float)

-0:21          'm34' (temp 3X4 matrix of float)

-0:21          outer product (global 3X4 matrix of float)

-0:21            'v' (smooth in 4-component vector of float)

-0:21            'u' (smooth in 3-component vector of float)

-0:23      add second child into first child (temp 3X4 matrix of float)

-0:23        'm34' (temp 3X4 matrix of float)

-0:23        Constant:

-0:23          4.300000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          4.300000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          4.300000

-0:23          0.000000

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        'FragColor' (out 4-component vector of float)

-0:25        Construct vec4 (temp 4-component vector of float)

-0:25          'Color' (smooth in 3-component vector of float)

-0:25          Constant:

-0:25            1.000000

-0:26      multiply second child into first child (temp 4-component vector of float)

-0:26        'FragColor' (out 4-component vector of float)

-0:26        Construct vec4 (temp 4-component vector of float)

-0:26          vector-times-matrix (temp 3-component vector of float)

-0:26            'FragColor' (out 4-component vector of float)

-0:26            'm34' (temp 3X4 matrix of float)

-0:26          Constant:

-0:26            1.000000

-0:28      matrix scale second child into first child (temp 3X4 matrix of float)

-0:28        'm34' (temp 3X4 matrix of float)

-0:28        direct index (temp float)

-0:28          'v' (smooth in 4-component vector of float)

-0:28          Constant:

-0:28            0 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp 4X4 matrix of float)

-0:30          'm44' (temp 4X4 matrix of float)

-0:30          Construct mat4 (temp 4X4 matrix of float)

-0:30            'un34' (uniform 3X4 matrix of float)

-0:32      add second child into first child (temp 4X4 matrix of float)

-0:32        'm44' (temp 4X4 matrix of float)

-0:32        matrix-multiply (temp 4X4 matrix of float)

-0:32          'm34' (temp 3X4 matrix of float)

-0:32          'um43' (uniform 4X3 matrix of float)

-0:34      add second child into first child (temp 4-component vector of float)

-0:34        'FragColor' (out 4-component vector of float)

-0:34        matrix-times-vector (temp 4-component vector of float)

-0:34          Negate value (temp 4X4 matrix of float)

-0:34            'm44' (temp 4X4 matrix of float)

-0:34          'v' (smooth in 4-component vector of float)

-0:36      matrix mult second child into first child (temp 4-component vector of float)

-0:36        'FragColor' (out 4-component vector of float)

-0:36        component-wise multiply (global 4X4 matrix of float)

-0:36          'm44' (temp 4X4 matrix of float)

-0:36          'm44' (temp 4X4 matrix of float)

-0:38      move second child to first child (temp 3X4 matrix of float)

-0:38        'm34' (temp 3X4 matrix of float)

-0:38        transpose (global 3X4 matrix of float)

-0:38          'um43' (uniform 4X3 matrix of float)

-0:39      multiply second child into first child (temp 4-component vector of float)

-0:39        'FragColor' (out 4-component vector of float)

-0:39        Construct vec4 (temp 4-component vector of float)

-0:39          vector-times-matrix (temp 3-component vector of float)

-0:39            'FragColor' (out 4-component vector of float)

-0:39            'm34' (temp 3X4 matrix of float)

-0:39          Constant:

-0:39            1.000000

-0:40      multiply second child into first child (temp 4-component vector of float)

-0:40        'FragColor' (out 4-component vector of float)

-0:40        Construct vec4 (temp 4-component vector of float)

-0:40          determinant (global float)

-0:40            'um4' (uniform 4X4 matrix of float)

-0:41      Sequence

-0:41        move second child to first child (temp 2X2 matrix of float)

-0:41          'inv' (temp 2X2 matrix of float)

-0:41          inverse (global 2X2 matrix of float)

-0:41            'um2' (uniform 2X2 matrix of float)

-0:42      multiply second child into first child (temp 4-component vector of float)

-0:42        'FragColor' (out 4-component vector of float)

-0:42        Construct vec4 (temp 4-component vector of float)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                0 (const int)

-0:42            Constant:

-0:42              0 (const int)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                1 (const int)

-0:42            Constant:

-0:42              0 (const int)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                0 (const int)

-0:42            Constant:

-0:42              1 (const int)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                1 (const int)

-0:42            Constant:

-0:42              1 (const int)

-0:43      Sequence

-0:43        move second child to first child (temp 3X3 matrix of float)

-0:43          'inv3' (temp 3X3 matrix of float)

-0:43          inverse (global 3X3 matrix of float)

-0:43            'um3' (uniform 3X3 matrix of float)

-0:44      multiply second child into first child (temp 4-component vector of float)

-0:44        'FragColor' (out 4-component vector of float)

-0:44        Construct vec4 (temp 4-component vector of float)

-0:44          direct index (temp float)

-0:44            direct index (temp 3-component vector of float)

-0:44              'inv3' (temp 3X3 matrix of float)

-0:44              Constant:

-0:44                2 (const int)

-0:44            Constant:

-0:44              1 (const int)

-0:46      Sequence

-0:46        move second child to first child (temp 4X4 matrix of float)

-0:46          'inv4' (temp 4X4 matrix of float)

-0:46          inverse (global 4X4 matrix of float)

-0:46            'um4' (uniform 4X4 matrix of float)

-0:47      matrix mult second child into first child (temp 4-component vector of float)

-0:47        'FragColor' (out 4-component vector of float)

-0:47        'inv4' (temp 4X4 matrix of float)

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        'FragColor' (out 4-component vector of float)

-0:49        Construct vec4 (temp 4-component vector of float)

-0:49          vector-times-matrix (temp 3-component vector of float)

-0:49            'FragColor' (out 4-component vector of float)

-0:49            component-wise multiply (global 3X4 matrix of float)

-0:49              'un34' (uniform 3X4 matrix of float)

-0:49              'un34' (uniform 3X4 matrix of float)

-0:49          direct index (temp float)

-0:49            'FragColor' (out 4-component vector of float)

-0:49            Constant:

-0:49              3 (const int)

-0:?   Linker Objects

-0:?     'colorTransform' (uniform 3X3 matrix of float)

-0:?     'Color' (smooth in 3-component vector of float)

-0:?     'm' (uniform 4X4 matrix of float)

-0:?     'n' (uniform 4X4 matrix of float)

-0:?     'um43' (uniform 4X3 matrix of float)

-0:?     'un34' (uniform 3X4 matrix of float)

-0:?     'um2' (uniform 2X2 matrix of float)

-0:?     'um3' (uniform 3X3 matrix of float)

-0:?     'um4' (uniform 4X4 matrix of float)

-0:?     'v' (smooth in 4-component vector of float)

-0:?     'u' (smooth in 3-component vector of float)

-0:?     'FragColor' (out 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 150

-0:? Sequence

-0:19  Function Definition: main( (global void)

-0:19    Function Parameters: 

-0:21    Sequence

-0:21      Sequence

-0:21        move second child to first child (temp 3X4 matrix of float)

-0:21          'm34' (temp 3X4 matrix of float)

-0:21          outer product (global 3X4 matrix of float)

-0:21            'v' (smooth in 4-component vector of float)

-0:21            'u' (smooth in 3-component vector of float)

-0:23      add second child into first child (temp 3X4 matrix of float)

-0:23        'm34' (temp 3X4 matrix of float)

-0:23        Constant:

-0:23          4.300000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          4.300000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          0.000000

-0:23          4.300000

-0:23          0.000000

-0:25      move second child to first child (temp 4-component vector of float)

-0:25        'FragColor' (out 4-component vector of float)

-0:25        Construct vec4 (temp 4-component vector of float)

-0:25          'Color' (smooth in 3-component vector of float)

-0:25          Constant:

-0:25            1.000000

-0:26      multiply second child into first child (temp 4-component vector of float)

-0:26        'FragColor' (out 4-component vector of float)

-0:26        Construct vec4 (temp 4-component vector of float)

-0:26          vector-times-matrix (temp 3-component vector of float)

-0:26            'FragColor' (out 4-component vector of float)

-0:26            'm34' (temp 3X4 matrix of float)

-0:26          Constant:

-0:26            1.000000

-0:28      matrix scale second child into first child (temp 3X4 matrix of float)

-0:28        'm34' (temp 3X4 matrix of float)

-0:28        direct index (temp float)

-0:28          'v' (smooth in 4-component vector of float)

-0:28          Constant:

-0:28            0 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp 4X4 matrix of float)

-0:30          'm44' (temp 4X4 matrix of float)

-0:30          Construct mat4 (temp 4X4 matrix of float)

-0:30            'un34' (uniform 3X4 matrix of float)

-0:32      add second child into first child (temp 4X4 matrix of float)

-0:32        'm44' (temp 4X4 matrix of float)

-0:32        matrix-multiply (temp 4X4 matrix of float)

-0:32          'm34' (temp 3X4 matrix of float)

-0:32          'um43' (uniform 4X3 matrix of float)

-0:34      add second child into first child (temp 4-component vector of float)

-0:34        'FragColor' (out 4-component vector of float)

-0:34        matrix-times-vector (temp 4-component vector of float)

-0:34          Negate value (temp 4X4 matrix of float)

-0:34            'm44' (temp 4X4 matrix of float)

-0:34          'v' (smooth in 4-component vector of float)

-0:36      matrix mult second child into first child (temp 4-component vector of float)

-0:36        'FragColor' (out 4-component vector of float)

-0:36        component-wise multiply (global 4X4 matrix of float)

-0:36          'm44' (temp 4X4 matrix of float)

-0:36          'm44' (temp 4X4 matrix of float)

-0:38      move second child to first child (temp 3X4 matrix of float)

-0:38        'm34' (temp 3X4 matrix of float)

-0:38        transpose (global 3X4 matrix of float)

-0:38          'um43' (uniform 4X3 matrix of float)

-0:39      multiply second child into first child (temp 4-component vector of float)

-0:39        'FragColor' (out 4-component vector of float)

-0:39        Construct vec4 (temp 4-component vector of float)

-0:39          vector-times-matrix (temp 3-component vector of float)

-0:39            'FragColor' (out 4-component vector of float)

-0:39            'm34' (temp 3X4 matrix of float)

-0:39          Constant:

-0:39            1.000000

-0:40      multiply second child into first child (temp 4-component vector of float)

-0:40        'FragColor' (out 4-component vector of float)

-0:40        Construct vec4 (temp 4-component vector of float)

-0:40          determinant (global float)

-0:40            'um4' (uniform 4X4 matrix of float)

-0:41      Sequence

-0:41        move second child to first child (temp 2X2 matrix of float)

-0:41          'inv' (temp 2X2 matrix of float)

-0:41          inverse (global 2X2 matrix of float)

-0:41            'um2' (uniform 2X2 matrix of float)

-0:42      multiply second child into first child (temp 4-component vector of float)

-0:42        'FragColor' (out 4-component vector of float)

-0:42        Construct vec4 (temp 4-component vector of float)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                0 (const int)

-0:42            Constant:

-0:42              0 (const int)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                1 (const int)

-0:42            Constant:

-0:42              0 (const int)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                0 (const int)

-0:42            Constant:

-0:42              1 (const int)

-0:42          direct index (temp float)

-0:42            direct index (temp 2-component vector of float)

-0:42              'inv' (temp 2X2 matrix of float)

-0:42              Constant:

-0:42                1 (const int)

-0:42            Constant:

-0:42              1 (const int)

-0:43      Sequence

-0:43        move second child to first child (temp 3X3 matrix of float)

-0:43          'inv3' (temp 3X3 matrix of float)

-0:43          inverse (global 3X3 matrix of float)

-0:43            'um3' (uniform 3X3 matrix of float)

-0:44      multiply second child into first child (temp 4-component vector of float)

-0:44        'FragColor' (out 4-component vector of float)

-0:44        Construct vec4 (temp 4-component vector of float)

-0:44          direct index (temp float)

-0:44            direct index (temp 3-component vector of float)

-0:44              'inv3' (temp 3X3 matrix of float)

-0:44              Constant:

-0:44                2 (const int)

-0:44            Constant:

-0:44              1 (const int)

-0:46      Sequence

-0:46        move second child to first child (temp 4X4 matrix of float)

-0:46          'inv4' (temp 4X4 matrix of float)

-0:46          inverse (global 4X4 matrix of float)

-0:46            'um4' (uniform 4X4 matrix of float)

-0:47      matrix mult second child into first child (temp 4-component vector of float)

-0:47        'FragColor' (out 4-component vector of float)

-0:47        'inv4' (temp 4X4 matrix of float)

-0:49      move second child to first child (temp 4-component vector of float)

-0:49        'FragColor' (out 4-component vector of float)

-0:49        Construct vec4 (temp 4-component vector of float)

-0:49          vector-times-matrix (temp 3-component vector of float)

-0:49            'FragColor' (out 4-component vector of float)

-0:49            component-wise multiply (global 3X4 matrix of float)

-0:49              'un34' (uniform 3X4 matrix of float)

-0:49              'un34' (uniform 3X4 matrix of float)

-0:49          direct index (temp float)

-0:49            'FragColor' (out 4-component vector of float)

-0:49            Constant:

-0:49              3 (const int)

-0:?   Linker Objects

-0:?     'colorTransform' (uniform 3X3 matrix of float)

-0:?     'Color' (smooth in 3-component vector of float)

-0:?     'm' (uniform 4X4 matrix of float)

-0:?     'n' (uniform 4X4 matrix of float)

-0:?     'um43' (uniform 4X3 matrix of float)

-0:?     'un34' (uniform 3X4 matrix of float)

-0:?     'um2' (uniform 2X2 matrix of float)

-0:?     'um3' (uniform 3X3 matrix of float)

-0:?     'um4' (uniform 4X4 matrix of float)

-0:?     'v' (smooth in 4-component vector of float)

-0:?     'u' (smooth in 3-component vector of float)

-0:?     'FragColor' (out 4-component vector of float)

-

+matrix2.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:13: varying deprecated in version 130; may be removed in future release
+WARNING: 0:15: varying deprecated in version 130; may be removed in future release
+
+Shader version: 150
+0:? Sequence
+0:19  Function Definition: main( (global void)
+0:19    Function Parameters: 
+0:21    Sequence
+0:21      Sequence
+0:21        move second child to first child (temp 3X4 matrix of float)
+0:21          'm34' (temp 3X4 matrix of float)
+0:21          outer product (global 3X4 matrix of float)
+0:21            'v' (smooth in 4-component vector of float)
+0:21            'u' (smooth in 3-component vector of float)
+0:23      add second child into first child (temp 3X4 matrix of float)
+0:23        'm34' (temp 3X4 matrix of float)
+0:23        Constant:
+0:23          4.300000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          4.300000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          4.300000
+0:23          0.000000
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        'FragColor' (out 4-component vector of float)
+0:25        Construct vec4 (temp 4-component vector of float)
+0:25          'Color' (smooth in 3-component vector of float)
+0:25          Constant:
+0:25            1.000000
+0:26      multiply second child into first child (temp 4-component vector of float)
+0:26        'FragColor' (out 4-component vector of float)
+0:26        Construct vec4 (temp 4-component vector of float)
+0:26          vector-times-matrix (temp 3-component vector of float)
+0:26            'FragColor' (out 4-component vector of float)
+0:26            'm34' (temp 3X4 matrix of float)
+0:26          Constant:
+0:26            1.000000
+0:28      matrix scale second child into first child (temp 3X4 matrix of float)
+0:28        'm34' (temp 3X4 matrix of float)
+0:28        direct index (temp float)
+0:28          'v' (smooth in 4-component vector of float)
+0:28          Constant:
+0:28            0 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp 4X4 matrix of float)
+0:30          'm44' (temp 4X4 matrix of float)
+0:30          Construct mat4 (temp 4X4 matrix of float)
+0:30            'un34' (uniform 3X4 matrix of float)
+0:32      add second child into first child (temp 4X4 matrix of float)
+0:32        'm44' (temp 4X4 matrix of float)
+0:32        matrix-multiply (temp 4X4 matrix of float)
+0:32          'm34' (temp 3X4 matrix of float)
+0:32          'um43' (uniform 4X3 matrix of float)
+0:34      add second child into first child (temp 4-component vector of float)
+0:34        'FragColor' (out 4-component vector of float)
+0:34        matrix-times-vector (temp 4-component vector of float)
+0:34          Negate value (temp 4X4 matrix of float)
+0:34            'm44' (temp 4X4 matrix of float)
+0:34          'v' (smooth in 4-component vector of float)
+0:36      matrix mult second child into first child (temp 4-component vector of float)
+0:36        'FragColor' (out 4-component vector of float)
+0:36        component-wise multiply (global 4X4 matrix of float)
+0:36          'm44' (temp 4X4 matrix of float)
+0:36          'm44' (temp 4X4 matrix of float)
+0:38      move second child to first child (temp 3X4 matrix of float)
+0:38        'm34' (temp 3X4 matrix of float)
+0:38        transpose (global 3X4 matrix of float)
+0:38          'um43' (uniform 4X3 matrix of float)
+0:39      multiply second child into first child (temp 4-component vector of float)
+0:39        'FragColor' (out 4-component vector of float)
+0:39        Construct vec4 (temp 4-component vector of float)
+0:39          vector-times-matrix (temp 3-component vector of float)
+0:39            'FragColor' (out 4-component vector of float)
+0:39            'm34' (temp 3X4 matrix of float)
+0:39          Constant:
+0:39            1.000000
+0:40      multiply second child into first child (temp 4-component vector of float)
+0:40        'FragColor' (out 4-component vector of float)
+0:40        Construct vec4 (temp 4-component vector of float)
+0:40          determinant (global float)
+0:40            'um4' (uniform 4X4 matrix of float)
+0:41      Sequence
+0:41        move second child to first child (temp 2X2 matrix of float)
+0:41          'inv' (temp 2X2 matrix of float)
+0:41          inverse (global 2X2 matrix of float)
+0:41            'um2' (uniform 2X2 matrix of float)
+0:42      multiply second child into first child (temp 4-component vector of float)
+0:42        'FragColor' (out 4-component vector of float)
+0:42        Construct vec4 (temp 4-component vector of float)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                0 (const int)
+0:42            Constant:
+0:42              0 (const int)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Constant:
+0:42              0 (const int)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:43      Sequence
+0:43        move second child to first child (temp 3X3 matrix of float)
+0:43          'inv3' (temp 3X3 matrix of float)
+0:43          inverse (global 3X3 matrix of float)
+0:43            'um3' (uniform 3X3 matrix of float)
+0:44      multiply second child into first child (temp 4-component vector of float)
+0:44        'FragColor' (out 4-component vector of float)
+0:44        Construct vec4 (temp 4-component vector of float)
+0:44          direct index (temp float)
+0:44            direct index (temp 3-component vector of float)
+0:44              'inv3' (temp 3X3 matrix of float)
+0:44              Constant:
+0:44                2 (const int)
+0:44            Constant:
+0:44              1 (const int)
+0:46      Sequence
+0:46        move second child to first child (temp 4X4 matrix of float)
+0:46          'inv4' (temp 4X4 matrix of float)
+0:46          inverse (global 4X4 matrix of float)
+0:46            'um4' (uniform 4X4 matrix of float)
+0:47      matrix mult second child into first child (temp 4-component vector of float)
+0:47        'FragColor' (out 4-component vector of float)
+0:47        'inv4' (temp 4X4 matrix of float)
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        'FragColor' (out 4-component vector of float)
+0:49        Construct vec4 (temp 4-component vector of float)
+0:49          vector-times-matrix (temp 3-component vector of float)
+0:49            'FragColor' (out 4-component vector of float)
+0:49            component-wise multiply (global 3X4 matrix of float)
+0:49              'un34' (uniform 3X4 matrix of float)
+0:49              'un34' (uniform 3X4 matrix of float)
+0:49          direct index (temp float)
+0:49            'FragColor' (out 4-component vector of float)
+0:49            Constant:
+0:49              3 (const int)
+0:?   Linker Objects
+0:?     'colorTransform' (uniform 3X3 matrix of float)
+0:?     'Color' (smooth in 3-component vector of float)
+0:?     'm' (uniform 4X4 matrix of float)
+0:?     'n' (uniform 4X4 matrix of float)
+0:?     'um43' (uniform 4X3 matrix of float)
+0:?     'un34' (uniform 3X4 matrix of float)
+0:?     'um2' (uniform 2X2 matrix of float)
+0:?     'um3' (uniform 3X3 matrix of float)
+0:?     'um4' (uniform 4X4 matrix of float)
+0:?     'v' (smooth in 4-component vector of float)
+0:?     'u' (smooth in 3-component vector of float)
+0:?     'FragColor' (out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 150
+0:? Sequence
+0:19  Function Definition: main( (global void)
+0:19    Function Parameters: 
+0:21    Sequence
+0:21      Sequence
+0:21        move second child to first child (temp 3X4 matrix of float)
+0:21          'm34' (temp 3X4 matrix of float)
+0:21          outer product (global 3X4 matrix of float)
+0:21            'v' (smooth in 4-component vector of float)
+0:21            'u' (smooth in 3-component vector of float)
+0:23      add second child into first child (temp 3X4 matrix of float)
+0:23        'm34' (temp 3X4 matrix of float)
+0:23        Constant:
+0:23          4.300000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          4.300000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          0.000000
+0:23          4.300000
+0:23          0.000000
+0:25      move second child to first child (temp 4-component vector of float)
+0:25        'FragColor' (out 4-component vector of float)
+0:25        Construct vec4 (temp 4-component vector of float)
+0:25          'Color' (smooth in 3-component vector of float)
+0:25          Constant:
+0:25            1.000000
+0:26      multiply second child into first child (temp 4-component vector of float)
+0:26        'FragColor' (out 4-component vector of float)
+0:26        Construct vec4 (temp 4-component vector of float)
+0:26          vector-times-matrix (temp 3-component vector of float)
+0:26            'FragColor' (out 4-component vector of float)
+0:26            'm34' (temp 3X4 matrix of float)
+0:26          Constant:
+0:26            1.000000
+0:28      matrix scale second child into first child (temp 3X4 matrix of float)
+0:28        'm34' (temp 3X4 matrix of float)
+0:28        direct index (temp float)
+0:28          'v' (smooth in 4-component vector of float)
+0:28          Constant:
+0:28            0 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp 4X4 matrix of float)
+0:30          'm44' (temp 4X4 matrix of float)
+0:30          Construct mat4 (temp 4X4 matrix of float)
+0:30            'un34' (uniform 3X4 matrix of float)
+0:32      add second child into first child (temp 4X4 matrix of float)
+0:32        'm44' (temp 4X4 matrix of float)
+0:32        matrix-multiply (temp 4X4 matrix of float)
+0:32          'm34' (temp 3X4 matrix of float)
+0:32          'um43' (uniform 4X3 matrix of float)
+0:34      add second child into first child (temp 4-component vector of float)
+0:34        'FragColor' (out 4-component vector of float)
+0:34        matrix-times-vector (temp 4-component vector of float)
+0:34          Negate value (temp 4X4 matrix of float)
+0:34            'm44' (temp 4X4 matrix of float)
+0:34          'v' (smooth in 4-component vector of float)
+0:36      matrix mult second child into first child (temp 4-component vector of float)
+0:36        'FragColor' (out 4-component vector of float)
+0:36        component-wise multiply (global 4X4 matrix of float)
+0:36          'm44' (temp 4X4 matrix of float)
+0:36          'm44' (temp 4X4 matrix of float)
+0:38      move second child to first child (temp 3X4 matrix of float)
+0:38        'm34' (temp 3X4 matrix of float)
+0:38        transpose (global 3X4 matrix of float)
+0:38          'um43' (uniform 4X3 matrix of float)
+0:39      multiply second child into first child (temp 4-component vector of float)
+0:39        'FragColor' (out 4-component vector of float)
+0:39        Construct vec4 (temp 4-component vector of float)
+0:39          vector-times-matrix (temp 3-component vector of float)
+0:39            'FragColor' (out 4-component vector of float)
+0:39            'm34' (temp 3X4 matrix of float)
+0:39          Constant:
+0:39            1.000000
+0:40      multiply second child into first child (temp 4-component vector of float)
+0:40        'FragColor' (out 4-component vector of float)
+0:40        Construct vec4 (temp 4-component vector of float)
+0:40          determinant (global float)
+0:40            'um4' (uniform 4X4 matrix of float)
+0:41      Sequence
+0:41        move second child to first child (temp 2X2 matrix of float)
+0:41          'inv' (temp 2X2 matrix of float)
+0:41          inverse (global 2X2 matrix of float)
+0:41            'um2' (uniform 2X2 matrix of float)
+0:42      multiply second child into first child (temp 4-component vector of float)
+0:42        'FragColor' (out 4-component vector of float)
+0:42        Construct vec4 (temp 4-component vector of float)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                0 (const int)
+0:42            Constant:
+0:42              0 (const int)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Constant:
+0:42              0 (const int)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          direct index (temp float)
+0:42            direct index (temp 2-component vector of float)
+0:42              'inv' (temp 2X2 matrix of float)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:43      Sequence
+0:43        move second child to first child (temp 3X3 matrix of float)
+0:43          'inv3' (temp 3X3 matrix of float)
+0:43          inverse (global 3X3 matrix of float)
+0:43            'um3' (uniform 3X3 matrix of float)
+0:44      multiply second child into first child (temp 4-component vector of float)
+0:44        'FragColor' (out 4-component vector of float)
+0:44        Construct vec4 (temp 4-component vector of float)
+0:44          direct index (temp float)
+0:44            direct index (temp 3-component vector of float)
+0:44              'inv3' (temp 3X3 matrix of float)
+0:44              Constant:
+0:44                2 (const int)
+0:44            Constant:
+0:44              1 (const int)
+0:46      Sequence
+0:46        move second child to first child (temp 4X4 matrix of float)
+0:46          'inv4' (temp 4X4 matrix of float)
+0:46          inverse (global 4X4 matrix of float)
+0:46            'um4' (uniform 4X4 matrix of float)
+0:47      matrix mult second child into first child (temp 4-component vector of float)
+0:47        'FragColor' (out 4-component vector of float)
+0:47        'inv4' (temp 4X4 matrix of float)
+0:49      move second child to first child (temp 4-component vector of float)
+0:49        'FragColor' (out 4-component vector of float)
+0:49        Construct vec4 (temp 4-component vector of float)
+0:49          vector-times-matrix (temp 3-component vector of float)
+0:49            'FragColor' (out 4-component vector of float)
+0:49            component-wise multiply (global 3X4 matrix of float)
+0:49              'un34' (uniform 3X4 matrix of float)
+0:49              'un34' (uniform 3X4 matrix of float)
+0:49          direct index (temp float)
+0:49            'FragColor' (out 4-component vector of float)
+0:49            Constant:
+0:49              3 (const int)
+0:?   Linker Objects
+0:?     'colorTransform' (uniform 3X3 matrix of float)
+0:?     'Color' (smooth in 3-component vector of float)
+0:?     'm' (uniform 4X4 matrix of float)
+0:?     'n' (uniform 4X4 matrix of float)
+0:?     'um43' (uniform 4X3 matrix of float)
+0:?     'un34' (uniform 3X4 matrix of float)
+0:?     'um2' (uniform 2X2 matrix of float)
+0:?     'um3' (uniform 3X3 matrix of float)
+0:?     'um4' (uniform 4X4 matrix of float)
+0:?     'v' (smooth in 4-component vector of float)
+0:?     'u' (smooth in 3-component vector of float)
+0:?     'FragColor' (out 4-component vector of float)
+
diff --git a/Test/baseResults/matrixError.vert.out b/Test/baseResults/matrixError.vert.out
index fa65b99..ee0646e 100644
--- a/Test/baseResults/matrixError.vert.out
+++ b/Test/baseResults/matrixError.vert.out
@@ -1,71 +1,71 @@
-matrixError.vert

-ERROR: 0:10: 'constructor' : too many arguments 

-ERROR: 0:7: 'const' : non-matching or non-convertible constant type for const initializer 

-ERROR: 0:17: 'assign' :  cannot convert from 'temp 2-component vector of float' to 'temp 3-component vector of float'

-ERROR: 0:18: 'assign' :  cannot convert from 'temp 2-component vector of float' to 'temp 3-component vector of float'

-ERROR: 0:19: 'xy' : does not apply to this type: temp 2X3 matrix of float

-ERROR: 0:21: '[' :  matrix index out of range '2'

-ERROR: 0:21: '[' :  vector index out of range '4'

-ERROR: 7 compilation errors.  No code generated.

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:?     Sequence

-0:17      'a' (temp 3-component vector of float)

-0:18      'b' (temp 3-component vector of float)

-0:19      'm23' (temp 2X3 matrix of float)

-0:21      move second child to first child (temp 4-component vector of float)

-0:21        'gl_Position' (gl_Position 4-component vector of float Position)

-0:21        Construct vec4 (temp 4-component vector of float)

-0:21          matrix-times-vector (temp 3-component vector of float)

-0:21            matrix-multiply (temp 3X3 matrix of float)

-0:21              'm23' (temp 2X3 matrix of float)

-0:21              'm32' (uniform 3X2 matrix of float)

-0:21            'v3' (in 3-component vector of float)

-0:21          direct index (temp float)

-0:21            direct index (temp 4-component vector of float)

-0:21              'm24' (temp 2X4 matrix of float)

-0:21              Constant:

-0:21                2 (const int)

-0:21            Constant:

-0:21              4 (const int)

-0:?   Linker Objects

-0:?     'v3' (in 3-component vector of float)

-0:?     'm32' (uniform 3X2 matrix of float)

-0:?     'm24' (temp 2X4 matrix of float)

-

-

-Linked vertex stage:

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:?     Sequence

-0:17      'a' (temp 3-component vector of float)

-0:18      'b' (temp 3-component vector of float)

-0:19      'm23' (temp 2X3 matrix of float)

-0:21      move second child to first child (temp 4-component vector of float)

-0:21        'gl_Position' (gl_Position 4-component vector of float Position)

-0:21        Construct vec4 (temp 4-component vector of float)

-0:21          matrix-times-vector (temp 3-component vector of float)

-0:21            matrix-multiply (temp 3X3 matrix of float)

-0:21              'm23' (temp 2X3 matrix of float)

-0:21              'm32' (uniform 3X2 matrix of float)

-0:21            'v3' (in 3-component vector of float)

-0:21          direct index (temp float)

-0:21            direct index (temp 4-component vector of float)

-0:21              'm24' (temp 2X4 matrix of float)

-0:21              Constant:

-0:21                2 (const int)

-0:21            Constant:

-0:21              4 (const int)

-0:?   Linker Objects

-0:?     'v3' (in 3-component vector of float)

-0:?     'm32' (uniform 3X2 matrix of float)

-0:?     'm24' (temp 2X4 matrix of float)

-

+matrixError.vert
+ERROR: 0:10: 'constructor' : too many arguments 
+ERROR: 0:7: 'const' : non-matching or non-convertible constant type for const initializer 
+ERROR: 0:17: 'assign' :  cannot convert from 'temp 2-component vector of float' to 'temp 3-component vector of float'
+ERROR: 0:18: 'assign' :  cannot convert from 'temp 2-component vector of float' to 'temp 3-component vector of float'
+ERROR: 0:19: 'xy' : does not apply to this type: temp 2X3 matrix of float
+ERROR: 0:21: '[' :  matrix index out of range '2'
+ERROR: 0:21: '[' :  vector index out of range '4'
+ERROR: 7 compilation errors.  No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:?     Sequence
+0:17      'a' (temp 3-component vector of float)
+0:18      'b' (temp 3-component vector of float)
+0:19      'm23' (temp 2X3 matrix of float)
+0:21      move second child to first child (temp 4-component vector of float)
+0:21        'gl_Position' (gl_Position 4-component vector of float Position)
+0:21        Construct vec4 (temp 4-component vector of float)
+0:21          matrix-times-vector (temp 3-component vector of float)
+0:21            matrix-multiply (temp 3X3 matrix of float)
+0:21              'm23' (temp 2X3 matrix of float)
+0:21              'm32' (uniform 3X2 matrix of float)
+0:21            'v3' (in 3-component vector of float)
+0:21          direct index (temp float)
+0:21            direct index (temp 4-component vector of float)
+0:21              'm24' (temp 2X4 matrix of float)
+0:21              Constant:
+0:21                2 (const int)
+0:21            Constant:
+0:21              4 (const int)
+0:?   Linker Objects
+0:?     'v3' (in 3-component vector of float)
+0:?     'm32' (uniform 3X2 matrix of float)
+0:?     'm24' (temp 2X4 matrix of float)
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:?     Sequence
+0:17      'a' (temp 3-component vector of float)
+0:18      'b' (temp 3-component vector of float)
+0:19      'm23' (temp 2X3 matrix of float)
+0:21      move second child to first child (temp 4-component vector of float)
+0:21        'gl_Position' (gl_Position 4-component vector of float Position)
+0:21        Construct vec4 (temp 4-component vector of float)
+0:21          matrix-times-vector (temp 3-component vector of float)
+0:21            matrix-multiply (temp 3X3 matrix of float)
+0:21              'm23' (temp 2X3 matrix of float)
+0:21              'm32' (uniform 3X2 matrix of float)
+0:21            'v3' (in 3-component vector of float)
+0:21          direct index (temp float)
+0:21            direct index (temp 4-component vector of float)
+0:21              'm24' (temp 2X4 matrix of float)
+0:21              Constant:
+0:21                2 (const int)
+0:21            Constant:
+0:21              4 (const int)
+0:?   Linker Objects
+0:?     'v3' (in 3-component vector of float)
+0:?     'm32' (uniform 3X2 matrix of float)
+0:?     'm24' (temp 2X4 matrix of float)
+
diff --git a/Test/baseResults/newTexture.frag.out b/Test/baseResults/newTexture.frag.out
index 083a641..f63d79f 100644
--- a/Test/baseResults/newTexture.frag.out
+++ b/Test/baseResults/newTexture.frag.out
@@ -1,523 +1,523 @@
-newTexture.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 430

-0:? Sequence

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:38    Sequence

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of float)

-0:38          'v' (temp 4-component vector of float)

-0:38          texture (global 4-component vector of float)

-0:38            's2D' (uniform sampler2D)

-0:38            'c2D' (smooth in 2-component vector of float)

-0:39      add second child into first child (temp 4-component vector of float)

-0:39        'v' (temp 4-component vector of float)

-0:39        textureProj (global 4-component vector of float)

-0:39          's3D' (uniform sampler3D)

-0:39          'c4D' (smooth in 4-component vector of float)

-0:40      add second child into first child (temp 4-component vector of float)

-0:40        'v' (temp 4-component vector of float)

-0:40        textureLod (global 4-component vector of float)

-0:40          's2DArray' (uniform sampler2DArray)

-0:40          'c3D' (smooth in 3-component vector of float)

-0:40          Constant:

-0:40            1.200000

-0:41      add second child into first child (temp float)

-0:41        direct index (temp float)

-0:41          'v' (temp 4-component vector of float)

-0:41          Constant:

-0:41            1 (const int)

-0:41        textureOffset (global float)

-0:41          's2DShadow' (uniform sampler2DShadow)

-0:41          'c3D' (smooth in 3-component vector of float)

-0:41          Constant:

-0:41            3 (const int)

-0:41            3 (const int)

-0:41          'c1D' (smooth in float)

-0:42      add second child into first child (temp 4-component vector of float)

-0:42        'v' (temp 4-component vector of float)

-0:42        textureFetch (global 4-component vector of float)

-0:42          's3D' (uniform sampler3D)

-0:42          'ic3D' (flat in 3-component vector of int)

-0:42          'ic1D' (flat in int)

-0:43      add second child into first child (temp 4-component vector of float)

-0:43        'v' (temp 4-component vector of float)

-0:43        textureFetchOffset (global 4-component vector of float)

-0:43          's2D' (uniform sampler2D)

-0:43          'ic2D' (flat in 2-component vector of int)

-0:43          Constant:

-0:43            4 (const int)

-0:43          Constant:

-0:43            3 (const int)

-0:43            3 (const int)

-0:44      add second child into first child (temp 4-component vector of float)

-0:44        'v' (temp 4-component vector of float)

-0:44        textureFetchOffset (global 4-component vector of float)

-0:44          'sr' (uniform sampler2DRect)

-0:44          'ic2D' (flat in 2-component vector of int)

-0:44          Constant:

-0:44            4 (const int)

-0:44            4 (const int)

-0:45      add second child into first child (temp float)

-0:45        direct index (temp float)

-0:45          'v' (temp 4-component vector of float)

-0:45          Constant:

-0:45            1 (const int)

-0:45        textureLodOffset (global float)

-0:45          's2DShadow' (uniform sampler2DShadow)

-0:45          'c3D' (smooth in 3-component vector of float)

-0:45          'c1D' (smooth in float)

-0:45          Constant:

-0:45            3 (const int)

-0:45            3 (const int)

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'v' (temp 4-component vector of float)

-0:46        textureProjLodOffset (global 4-component vector of float)

-0:46          's2D' (uniform sampler2D)

-0:46          'c3D' (smooth in 3-component vector of float)

-0:46          'c1D' (smooth in float)

-0:46          Constant:

-0:46            3 (const int)

-0:46            3 (const int)

-0:47      add second child into first child (temp 4-component vector of float)

-0:47        'v' (temp 4-component vector of float)

-0:47        textureGrad (global 4-component vector of float)

-0:47          'sCube' (uniform samplerCube)

-0:47          'c3D' (smooth in 3-component vector of float)

-0:47          'c3D' (smooth in 3-component vector of float)

-0:47          'c3D' (smooth in 3-component vector of float)

-0:48      add second child into first child (temp float)

-0:48        direct index (temp float)

-0:48          'v' (temp 4-component vector of float)

-0:48          Constant:

-0:48            0 (const int)

-0:48        textureGradOffset (global float)

-0:48          's2DArrayShadow' (uniform sampler2DArrayShadow)

-0:48          'c4D' (smooth in 4-component vector of float)

-0:48          'c2D' (smooth in 2-component vector of float)

-0:48          'c2D' (smooth in 2-component vector of float)

-0:48          Constant:

-0:48            3 (const int)

-0:48            3 (const int)

-0:49      add second child into first child (temp 4-component vector of float)

-0:49        'v' (temp 4-component vector of float)

-0:49        textureProjGrad (global 4-component vector of float)

-0:49          's3D' (uniform sampler3D)

-0:49          'c4D' (smooth in 4-component vector of float)

-0:49          'c3D' (smooth in 3-component vector of float)

-0:49          'c3D' (smooth in 3-component vector of float)

-0:50      add second child into first child (temp 4-component vector of float)

-0:50        'v' (temp 4-component vector of float)

-0:50        textureProjGradOffset (global 4-component vector of float)

-0:50          's2D' (uniform sampler2D)

-0:50          'c3D' (smooth in 3-component vector of float)

-0:50          'c2D' (smooth in 2-component vector of float)

-0:50          'c2D' (smooth in 2-component vector of float)

-0:50          Constant:

-0:50            3 (const int)

-0:50            3 (const int)

-0:52      Sequence

-0:52        move second child to first child (temp 4-component vector of int)

-0:52          'iv' (temp 4-component vector of int)

-0:52          texture (global 4-component vector of int)

-0:52            'is2D' (uniform isampler2D)

-0:52            'c2D' (smooth in 2-component vector of float)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'v' (temp 4-component vector of float)

-0:53        Convert int to float (temp 4-component vector of float)

-0:53          'iv' (temp 4-component vector of int)

-0:54      move second child to first child (temp 4-component vector of int)

-0:54        'iv' (temp 4-component vector of int)

-0:54        textureProjOffset (global 4-component vector of int)

-0:54          'is2D' (uniform isampler2D)

-0:54          'c4D' (smooth in 4-component vector of float)

-0:54          Constant:

-0:54            3 (const int)

-0:54            3 (const int)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'v' (temp 4-component vector of float)

-0:55        Convert int to float (temp 4-component vector of float)

-0:55          'iv' (temp 4-component vector of int)

-0:56      move second child to first child (temp 4-component vector of int)

-0:56        'iv' (temp 4-component vector of int)

-0:56        textureProjLod (global 4-component vector of int)

-0:56          'is2D' (uniform isampler2D)

-0:56          'c3D' (smooth in 3-component vector of float)

-0:56          'c1D' (smooth in float)

-0:57      add second child into first child (temp 4-component vector of float)

-0:57        'v' (temp 4-component vector of float)

-0:57        Convert int to float (temp 4-component vector of float)

-0:57          'iv' (temp 4-component vector of int)

-0:58      move second child to first child (temp 4-component vector of int)

-0:58        'iv' (temp 4-component vector of int)

-0:58        textureProjGrad (global 4-component vector of int)

-0:58          'is2D' (uniform isampler2D)

-0:58          'c3D' (smooth in 3-component vector of float)

-0:58          'c2D' (smooth in 2-component vector of float)

-0:58          'c2D' (smooth in 2-component vector of float)

-0:59      add second child into first child (temp 4-component vector of float)

-0:59        'v' (temp 4-component vector of float)

-0:59        Convert int to float (temp 4-component vector of float)

-0:59          'iv' (temp 4-component vector of int)

-0:60      move second child to first child (temp 4-component vector of int)

-0:60        'iv' (temp 4-component vector of int)

-0:60        texture (global 4-component vector of int)

-0:60          'is3D' (uniform isampler3D)

-0:60          'c3D' (smooth in 3-component vector of float)

-0:60          Constant:

-0:60            4.200000

-0:61      add second child into first child (temp 4-component vector of float)

-0:61        'v' (temp 4-component vector of float)

-0:61        Convert int to float (temp 4-component vector of float)

-0:61          'iv' (temp 4-component vector of int)

-0:62      move second child to first child (temp 4-component vector of int)

-0:62        'iv' (temp 4-component vector of int)

-0:62        textureLod (global 4-component vector of int)

-0:62          'isCube' (uniform isamplerCube)

-0:62          'c3D' (smooth in 3-component vector of float)

-0:62          'c1D' (smooth in float)

-0:63      add second child into first child (temp 4-component vector of float)

-0:63        'v' (temp 4-component vector of float)

-0:63        Convert int to float (temp 4-component vector of float)

-0:63          'iv' (temp 4-component vector of int)

-0:64      move second child to first child (temp 4-component vector of int)

-0:64        'iv' (temp 4-component vector of int)

-0:64        textureFetch (global 4-component vector of int)

-0:64          'is2DArray' (uniform isampler2DArray)

-0:64          'ic3D' (flat in 3-component vector of int)

-0:64          'ic1D' (flat in int)

-0:65      add second child into first child (temp 4-component vector of float)

-0:65        'v' (temp 4-component vector of float)

-0:65        Convert int to float (temp 4-component vector of float)

-0:65          'iv' (temp 4-component vector of int)

-0:66      add second child into first child (temp 4-component vector of int)

-0:66        'iv' (temp 4-component vector of int)

-0:66        textureFetch (global 4-component vector of int)

-0:66          'is2Dms' (uniform isampler2DMS)

-0:66          'ic2D' (flat in 2-component vector of int)

-0:66          'ic1D' (flat in int)

-0:67      add second child into first child (temp 4-component vector of float)

-0:67        'v' (temp 4-component vector of float)

-0:67        Convert int to float (temp 4-component vector of float)

-0:67          'iv' (temp 4-component vector of int)

-0:68      add second child into first child (temp 4-component vector of float)

-0:68        'v' (temp 4-component vector of float)

-0:68        textureFetch (global 4-component vector of float)

-0:68          'sb' (uniform samplerBuffer)

-0:68          'ic1D' (flat in int)

-0:69      add second child into first child (temp 4-component vector of float)

-0:69        'v' (temp 4-component vector of float)

-0:69        textureFetch (global 4-component vector of float)

-0:69          'sr' (uniform sampler2DRect)

-0:69          'ic2D' (flat in 2-component vector of int)

-0:71      Sequence

-0:71        move second child to first child (temp 2-component vector of int)

-0:71          'iv2' (temp 2-component vector of int)

-0:71          textureSize (global 2-component vector of int)

-0:71            'sCubeShadow' (uniform samplerCubeShadow)

-0:71            Constant:

-0:71              2 (const int)

-0:74      move second child to first child (temp 4-component vector of float)

-0:74        'FragData' (out 4-component vector of float)

-0:74        add (temp 4-component vector of float)

-0:74          'v' (temp 4-component vector of float)

-0:74          Construct vec4 (temp 4-component vector of float)

-0:74            Convert int to float (temp 2-component vector of float)

-0:74              'iv2' (temp 2-component vector of int)

-0:74            Constant:

-0:74              0.000000

-0:74            Constant:

-0:74              0.000000

-0:?   Linker Objects

-0:?     'sb' (uniform samplerBuffer)

-0:?     'sr' (uniform sampler2DRect)

-0:?     's2D' (uniform sampler2D)

-0:?     's3D' (uniform sampler3D)

-0:?     'sCube' (uniform samplerCube)

-0:?     'sCubeShadow' (uniform samplerCubeShadow)

-0:?     's2DShadow' (uniform sampler2DShadow)

-0:?     's2DArray' (uniform sampler2DArray)

-0:?     's2DArrayShadow' (uniform sampler2DArrayShadow)

-0:?     'is2D' (uniform isampler2D)

-0:?     'is3D' (uniform isampler3D)

-0:?     'isCube' (uniform isamplerCube)

-0:?     'is2DArray' (uniform isampler2DArray)

-0:?     'is2Dms' (uniform isampler2DMS)

-0:?     'us2D' (uniform usampler2D)

-0:?     'us3D' (uniform usampler3D)

-0:?     'usCube' (uniform usamplerCube)

-0:?     'us2DArray' (uniform usampler2DArray)

-0:?     'c1D' (smooth in float)

-0:?     'c2D' (smooth in 2-component vector of float)

-0:?     'c3D' (smooth in 3-component vector of float)

-0:?     'c4D' (smooth in 4-component vector of float)

-0:?     'ic1D' (flat in int)

-0:?     'ic2D' (flat in 2-component vector of int)

-0:?     'ic3D' (flat in 3-component vector of int)

-0:?     'ic4D' (flat in 4-component vector of int)

-0:?     'FragData' (out 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 430

-0:? Sequence

-0:36  Function Definition: main( (global void)

-0:36    Function Parameters: 

-0:38    Sequence

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of float)

-0:38          'v' (temp 4-component vector of float)

-0:38          texture (global 4-component vector of float)

-0:38            's2D' (uniform sampler2D)

-0:38            'c2D' (smooth in 2-component vector of float)

-0:39      add second child into first child (temp 4-component vector of float)

-0:39        'v' (temp 4-component vector of float)

-0:39        textureProj (global 4-component vector of float)

-0:39          's3D' (uniform sampler3D)

-0:39          'c4D' (smooth in 4-component vector of float)

-0:40      add second child into first child (temp 4-component vector of float)

-0:40        'v' (temp 4-component vector of float)

-0:40        textureLod (global 4-component vector of float)

-0:40          's2DArray' (uniform sampler2DArray)

-0:40          'c3D' (smooth in 3-component vector of float)

-0:40          Constant:

-0:40            1.200000

-0:41      add second child into first child (temp float)

-0:41        direct index (temp float)

-0:41          'v' (temp 4-component vector of float)

-0:41          Constant:

-0:41            1 (const int)

-0:41        textureOffset (global float)

-0:41          's2DShadow' (uniform sampler2DShadow)

-0:41          'c3D' (smooth in 3-component vector of float)

-0:41          Constant:

-0:41            3 (const int)

-0:41            3 (const int)

-0:41          'c1D' (smooth in float)

-0:42      add second child into first child (temp 4-component vector of float)

-0:42        'v' (temp 4-component vector of float)

-0:42        textureFetch (global 4-component vector of float)

-0:42          's3D' (uniform sampler3D)

-0:42          'ic3D' (flat in 3-component vector of int)

-0:42          'ic1D' (flat in int)

-0:43      add second child into first child (temp 4-component vector of float)

-0:43        'v' (temp 4-component vector of float)

-0:43        textureFetchOffset (global 4-component vector of float)

-0:43          's2D' (uniform sampler2D)

-0:43          'ic2D' (flat in 2-component vector of int)

-0:43          Constant:

-0:43            4 (const int)

-0:43          Constant:

-0:43            3 (const int)

-0:43            3 (const int)

-0:44      add second child into first child (temp 4-component vector of float)

-0:44        'v' (temp 4-component vector of float)

-0:44        textureFetchOffset (global 4-component vector of float)

-0:44          'sr' (uniform sampler2DRect)

-0:44          'ic2D' (flat in 2-component vector of int)

-0:44          Constant:

-0:44            4 (const int)

-0:44            4 (const int)

-0:45      add second child into first child (temp float)

-0:45        direct index (temp float)

-0:45          'v' (temp 4-component vector of float)

-0:45          Constant:

-0:45            1 (const int)

-0:45        textureLodOffset (global float)

-0:45          's2DShadow' (uniform sampler2DShadow)

-0:45          'c3D' (smooth in 3-component vector of float)

-0:45          'c1D' (smooth in float)

-0:45          Constant:

-0:45            3 (const int)

-0:45            3 (const int)

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'v' (temp 4-component vector of float)

-0:46        textureProjLodOffset (global 4-component vector of float)

-0:46          's2D' (uniform sampler2D)

-0:46          'c3D' (smooth in 3-component vector of float)

-0:46          'c1D' (smooth in float)

-0:46          Constant:

-0:46            3 (const int)

-0:46            3 (const int)

-0:47      add second child into first child (temp 4-component vector of float)

-0:47        'v' (temp 4-component vector of float)

-0:47        textureGrad (global 4-component vector of float)

-0:47          'sCube' (uniform samplerCube)

-0:47          'c3D' (smooth in 3-component vector of float)

-0:47          'c3D' (smooth in 3-component vector of float)

-0:47          'c3D' (smooth in 3-component vector of float)

-0:48      add second child into first child (temp float)

-0:48        direct index (temp float)

-0:48          'v' (temp 4-component vector of float)

-0:48          Constant:

-0:48            0 (const int)

-0:48        textureGradOffset (global float)

-0:48          's2DArrayShadow' (uniform sampler2DArrayShadow)

-0:48          'c4D' (smooth in 4-component vector of float)

-0:48          'c2D' (smooth in 2-component vector of float)

-0:48          'c2D' (smooth in 2-component vector of float)

-0:48          Constant:

-0:48            3 (const int)

-0:48            3 (const int)

-0:49      add second child into first child (temp 4-component vector of float)

-0:49        'v' (temp 4-component vector of float)

-0:49        textureProjGrad (global 4-component vector of float)

-0:49          's3D' (uniform sampler3D)

-0:49          'c4D' (smooth in 4-component vector of float)

-0:49          'c3D' (smooth in 3-component vector of float)

-0:49          'c3D' (smooth in 3-component vector of float)

-0:50      add second child into first child (temp 4-component vector of float)

-0:50        'v' (temp 4-component vector of float)

-0:50        textureProjGradOffset (global 4-component vector of float)

-0:50          's2D' (uniform sampler2D)

-0:50          'c3D' (smooth in 3-component vector of float)

-0:50          'c2D' (smooth in 2-component vector of float)

-0:50          'c2D' (smooth in 2-component vector of float)

-0:50          Constant:

-0:50            3 (const int)

-0:50            3 (const int)

-0:52      Sequence

-0:52        move second child to first child (temp 4-component vector of int)

-0:52          'iv' (temp 4-component vector of int)

-0:52          texture (global 4-component vector of int)

-0:52            'is2D' (uniform isampler2D)

-0:52            'c2D' (smooth in 2-component vector of float)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'v' (temp 4-component vector of float)

-0:53        Convert int to float (temp 4-component vector of float)

-0:53          'iv' (temp 4-component vector of int)

-0:54      move second child to first child (temp 4-component vector of int)

-0:54        'iv' (temp 4-component vector of int)

-0:54        textureProjOffset (global 4-component vector of int)

-0:54          'is2D' (uniform isampler2D)

-0:54          'c4D' (smooth in 4-component vector of float)

-0:54          Constant:

-0:54            3 (const int)

-0:54            3 (const int)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'v' (temp 4-component vector of float)

-0:55        Convert int to float (temp 4-component vector of float)

-0:55          'iv' (temp 4-component vector of int)

-0:56      move second child to first child (temp 4-component vector of int)

-0:56        'iv' (temp 4-component vector of int)

-0:56        textureProjLod (global 4-component vector of int)

-0:56          'is2D' (uniform isampler2D)

-0:56          'c3D' (smooth in 3-component vector of float)

-0:56          'c1D' (smooth in float)

-0:57      add second child into first child (temp 4-component vector of float)

-0:57        'v' (temp 4-component vector of float)

-0:57        Convert int to float (temp 4-component vector of float)

-0:57          'iv' (temp 4-component vector of int)

-0:58      move second child to first child (temp 4-component vector of int)

-0:58        'iv' (temp 4-component vector of int)

-0:58        textureProjGrad (global 4-component vector of int)

-0:58          'is2D' (uniform isampler2D)

-0:58          'c3D' (smooth in 3-component vector of float)

-0:58          'c2D' (smooth in 2-component vector of float)

-0:58          'c2D' (smooth in 2-component vector of float)

-0:59      add second child into first child (temp 4-component vector of float)

-0:59        'v' (temp 4-component vector of float)

-0:59        Convert int to float (temp 4-component vector of float)

-0:59          'iv' (temp 4-component vector of int)

-0:60      move second child to first child (temp 4-component vector of int)

-0:60        'iv' (temp 4-component vector of int)

-0:60        texture (global 4-component vector of int)

-0:60          'is3D' (uniform isampler3D)

-0:60          'c3D' (smooth in 3-component vector of float)

-0:60          Constant:

-0:60            4.200000

-0:61      add second child into first child (temp 4-component vector of float)

-0:61        'v' (temp 4-component vector of float)

-0:61        Convert int to float (temp 4-component vector of float)

-0:61          'iv' (temp 4-component vector of int)

-0:62      move second child to first child (temp 4-component vector of int)

-0:62        'iv' (temp 4-component vector of int)

-0:62        textureLod (global 4-component vector of int)

-0:62          'isCube' (uniform isamplerCube)

-0:62          'c3D' (smooth in 3-component vector of float)

-0:62          'c1D' (smooth in float)

-0:63      add second child into first child (temp 4-component vector of float)

-0:63        'v' (temp 4-component vector of float)

-0:63        Convert int to float (temp 4-component vector of float)

-0:63          'iv' (temp 4-component vector of int)

-0:64      move second child to first child (temp 4-component vector of int)

-0:64        'iv' (temp 4-component vector of int)

-0:64        textureFetch (global 4-component vector of int)

-0:64          'is2DArray' (uniform isampler2DArray)

-0:64          'ic3D' (flat in 3-component vector of int)

-0:64          'ic1D' (flat in int)

-0:65      add second child into first child (temp 4-component vector of float)

-0:65        'v' (temp 4-component vector of float)

-0:65        Convert int to float (temp 4-component vector of float)

-0:65          'iv' (temp 4-component vector of int)

-0:66      add second child into first child (temp 4-component vector of int)

-0:66        'iv' (temp 4-component vector of int)

-0:66        textureFetch (global 4-component vector of int)

-0:66          'is2Dms' (uniform isampler2DMS)

-0:66          'ic2D' (flat in 2-component vector of int)

-0:66          'ic1D' (flat in int)

-0:67      add second child into first child (temp 4-component vector of float)

-0:67        'v' (temp 4-component vector of float)

-0:67        Convert int to float (temp 4-component vector of float)

-0:67          'iv' (temp 4-component vector of int)

-0:68      add second child into first child (temp 4-component vector of float)

-0:68        'v' (temp 4-component vector of float)

-0:68        textureFetch (global 4-component vector of float)

-0:68          'sb' (uniform samplerBuffer)

-0:68          'ic1D' (flat in int)

-0:69      add second child into first child (temp 4-component vector of float)

-0:69        'v' (temp 4-component vector of float)

-0:69        textureFetch (global 4-component vector of float)

-0:69          'sr' (uniform sampler2DRect)

-0:69          'ic2D' (flat in 2-component vector of int)

-0:71      Sequence

-0:71        move second child to first child (temp 2-component vector of int)

-0:71          'iv2' (temp 2-component vector of int)

-0:71          textureSize (global 2-component vector of int)

-0:71            'sCubeShadow' (uniform samplerCubeShadow)

-0:71            Constant:

-0:71              2 (const int)

-0:74      move second child to first child (temp 4-component vector of float)

-0:74        'FragData' (out 4-component vector of float)

-0:74        add (temp 4-component vector of float)

-0:74          'v' (temp 4-component vector of float)

-0:74          Construct vec4 (temp 4-component vector of float)

-0:74            Convert int to float (temp 2-component vector of float)

-0:74              'iv2' (temp 2-component vector of int)

-0:74            Constant:

-0:74              0.000000

-0:74            Constant:

-0:74              0.000000

-0:?   Linker Objects

-0:?     'sb' (uniform samplerBuffer)

-0:?     'sr' (uniform sampler2DRect)

-0:?     's2D' (uniform sampler2D)

-0:?     's3D' (uniform sampler3D)

-0:?     'sCube' (uniform samplerCube)

-0:?     'sCubeShadow' (uniform samplerCubeShadow)

-0:?     's2DShadow' (uniform sampler2DShadow)

-0:?     's2DArray' (uniform sampler2DArray)

-0:?     's2DArrayShadow' (uniform sampler2DArrayShadow)

-0:?     'is2D' (uniform isampler2D)

-0:?     'is3D' (uniform isampler3D)

-0:?     'isCube' (uniform isamplerCube)

-0:?     'is2DArray' (uniform isampler2DArray)

-0:?     'is2Dms' (uniform isampler2DMS)

-0:?     'us2D' (uniform usampler2D)

-0:?     'us3D' (uniform usampler3D)

-0:?     'usCube' (uniform usamplerCube)

-0:?     'us2DArray' (uniform usampler2DArray)

-0:?     'c1D' (smooth in float)

-0:?     'c2D' (smooth in 2-component vector of float)

-0:?     'c3D' (smooth in 3-component vector of float)

-0:?     'c4D' (smooth in 4-component vector of float)

-0:?     'ic1D' (flat in int)

-0:?     'ic2D' (flat in 2-component vector of int)

-0:?     'ic3D' (flat in 3-component vector of int)

-0:?     'ic4D' (flat in 4-component vector of int)

-0:?     'FragData' (out 4-component vector of float)

-

+newTexture.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 430
+0:? Sequence
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:38    Sequence
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of float)
+0:38          'v' (temp 4-component vector of float)
+0:38          texture (global 4-component vector of float)
+0:38            's2D' (uniform sampler2D)
+0:38            'c2D' (smooth in 2-component vector of float)
+0:39      add second child into first child (temp 4-component vector of float)
+0:39        'v' (temp 4-component vector of float)
+0:39        textureProj (global 4-component vector of float)
+0:39          's3D' (uniform sampler3D)
+0:39          'c4D' (smooth in 4-component vector of float)
+0:40      add second child into first child (temp 4-component vector of float)
+0:40        'v' (temp 4-component vector of float)
+0:40        textureLod (global 4-component vector of float)
+0:40          's2DArray' (uniform sampler2DArray)
+0:40          'c3D' (smooth in 3-component vector of float)
+0:40          Constant:
+0:40            1.200000
+0:41      add second child into first child (temp float)
+0:41        direct index (temp float)
+0:41          'v' (temp 4-component vector of float)
+0:41          Constant:
+0:41            1 (const int)
+0:41        textureOffset (global float)
+0:41          's2DShadow' (uniform sampler2DShadow)
+0:41          'c3D' (smooth in 3-component vector of float)
+0:41          Constant:
+0:41            3 (const int)
+0:41            3 (const int)
+0:41          'c1D' (smooth in float)
+0:42      add second child into first child (temp 4-component vector of float)
+0:42        'v' (temp 4-component vector of float)
+0:42        textureFetch (global 4-component vector of float)
+0:42          's3D' (uniform sampler3D)
+0:42          'ic3D' (flat in 3-component vector of int)
+0:42          'ic1D' (flat in int)
+0:43      add second child into first child (temp 4-component vector of float)
+0:43        'v' (temp 4-component vector of float)
+0:43        textureFetchOffset (global 4-component vector of float)
+0:43          's2D' (uniform sampler2D)
+0:43          'ic2D' (flat in 2-component vector of int)
+0:43          Constant:
+0:43            4 (const int)
+0:43          Constant:
+0:43            3 (const int)
+0:43            3 (const int)
+0:44      add second child into first child (temp 4-component vector of float)
+0:44        'v' (temp 4-component vector of float)
+0:44        textureFetchOffset (global 4-component vector of float)
+0:44          'sr' (uniform sampler2DRect)
+0:44          'ic2D' (flat in 2-component vector of int)
+0:44          Constant:
+0:44            4 (const int)
+0:44            4 (const int)
+0:45      add second child into first child (temp float)
+0:45        direct index (temp float)
+0:45          'v' (temp 4-component vector of float)
+0:45          Constant:
+0:45            1 (const int)
+0:45        textureLodOffset (global float)
+0:45          's2DShadow' (uniform sampler2DShadow)
+0:45          'c3D' (smooth in 3-component vector of float)
+0:45          'c1D' (smooth in float)
+0:45          Constant:
+0:45            3 (const int)
+0:45            3 (const int)
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'v' (temp 4-component vector of float)
+0:46        textureProjLodOffset (global 4-component vector of float)
+0:46          's2D' (uniform sampler2D)
+0:46          'c3D' (smooth in 3-component vector of float)
+0:46          'c1D' (smooth in float)
+0:46          Constant:
+0:46            3 (const int)
+0:46            3 (const int)
+0:47      add second child into first child (temp 4-component vector of float)
+0:47        'v' (temp 4-component vector of float)
+0:47        textureGrad (global 4-component vector of float)
+0:47          'sCube' (uniform samplerCube)
+0:47          'c3D' (smooth in 3-component vector of float)
+0:47          'c3D' (smooth in 3-component vector of float)
+0:47          'c3D' (smooth in 3-component vector of float)
+0:48      add second child into first child (temp float)
+0:48        direct index (temp float)
+0:48          'v' (temp 4-component vector of float)
+0:48          Constant:
+0:48            0 (const int)
+0:48        textureGradOffset (global float)
+0:48          's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:48          'c4D' (smooth in 4-component vector of float)
+0:48          'c2D' (smooth in 2-component vector of float)
+0:48          'c2D' (smooth in 2-component vector of float)
+0:48          Constant:
+0:48            3 (const int)
+0:48            3 (const int)
+0:49      add second child into first child (temp 4-component vector of float)
+0:49        'v' (temp 4-component vector of float)
+0:49        textureProjGrad (global 4-component vector of float)
+0:49          's3D' (uniform sampler3D)
+0:49          'c4D' (smooth in 4-component vector of float)
+0:49          'c3D' (smooth in 3-component vector of float)
+0:49          'c3D' (smooth in 3-component vector of float)
+0:50      add second child into first child (temp 4-component vector of float)
+0:50        'v' (temp 4-component vector of float)
+0:50        textureProjGradOffset (global 4-component vector of float)
+0:50          's2D' (uniform sampler2D)
+0:50          'c3D' (smooth in 3-component vector of float)
+0:50          'c2D' (smooth in 2-component vector of float)
+0:50          'c2D' (smooth in 2-component vector of float)
+0:50          Constant:
+0:50            3 (const int)
+0:50            3 (const int)
+0:52      Sequence
+0:52        move second child to first child (temp 4-component vector of int)
+0:52          'iv' (temp 4-component vector of int)
+0:52          texture (global 4-component vector of int)
+0:52            'is2D' (uniform isampler2D)
+0:52            'c2D' (smooth in 2-component vector of float)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'v' (temp 4-component vector of float)
+0:53        Convert int to float (temp 4-component vector of float)
+0:53          'iv' (temp 4-component vector of int)
+0:54      move second child to first child (temp 4-component vector of int)
+0:54        'iv' (temp 4-component vector of int)
+0:54        textureProjOffset (global 4-component vector of int)
+0:54          'is2D' (uniform isampler2D)
+0:54          'c4D' (smooth in 4-component vector of float)
+0:54          Constant:
+0:54            3 (const int)
+0:54            3 (const int)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'v' (temp 4-component vector of float)
+0:55        Convert int to float (temp 4-component vector of float)
+0:55          'iv' (temp 4-component vector of int)
+0:56      move second child to first child (temp 4-component vector of int)
+0:56        'iv' (temp 4-component vector of int)
+0:56        textureProjLod (global 4-component vector of int)
+0:56          'is2D' (uniform isampler2D)
+0:56          'c3D' (smooth in 3-component vector of float)
+0:56          'c1D' (smooth in float)
+0:57      add second child into first child (temp 4-component vector of float)
+0:57        'v' (temp 4-component vector of float)
+0:57        Convert int to float (temp 4-component vector of float)
+0:57          'iv' (temp 4-component vector of int)
+0:58      move second child to first child (temp 4-component vector of int)
+0:58        'iv' (temp 4-component vector of int)
+0:58        textureProjGrad (global 4-component vector of int)
+0:58          'is2D' (uniform isampler2D)
+0:58          'c3D' (smooth in 3-component vector of float)
+0:58          'c2D' (smooth in 2-component vector of float)
+0:58          'c2D' (smooth in 2-component vector of float)
+0:59      add second child into first child (temp 4-component vector of float)
+0:59        'v' (temp 4-component vector of float)
+0:59        Convert int to float (temp 4-component vector of float)
+0:59          'iv' (temp 4-component vector of int)
+0:60      move second child to first child (temp 4-component vector of int)
+0:60        'iv' (temp 4-component vector of int)
+0:60        texture (global 4-component vector of int)
+0:60          'is3D' (uniform isampler3D)
+0:60          'c3D' (smooth in 3-component vector of float)
+0:60          Constant:
+0:60            4.200000
+0:61      add second child into first child (temp 4-component vector of float)
+0:61        'v' (temp 4-component vector of float)
+0:61        Convert int to float (temp 4-component vector of float)
+0:61          'iv' (temp 4-component vector of int)
+0:62      move second child to first child (temp 4-component vector of int)
+0:62        'iv' (temp 4-component vector of int)
+0:62        textureLod (global 4-component vector of int)
+0:62          'isCube' (uniform isamplerCube)
+0:62          'c3D' (smooth in 3-component vector of float)
+0:62          'c1D' (smooth in float)
+0:63      add second child into first child (temp 4-component vector of float)
+0:63        'v' (temp 4-component vector of float)
+0:63        Convert int to float (temp 4-component vector of float)
+0:63          'iv' (temp 4-component vector of int)
+0:64      move second child to first child (temp 4-component vector of int)
+0:64        'iv' (temp 4-component vector of int)
+0:64        textureFetch (global 4-component vector of int)
+0:64          'is2DArray' (uniform isampler2DArray)
+0:64          'ic3D' (flat in 3-component vector of int)
+0:64          'ic1D' (flat in int)
+0:65      add second child into first child (temp 4-component vector of float)
+0:65        'v' (temp 4-component vector of float)
+0:65        Convert int to float (temp 4-component vector of float)
+0:65          'iv' (temp 4-component vector of int)
+0:66      add second child into first child (temp 4-component vector of int)
+0:66        'iv' (temp 4-component vector of int)
+0:66        textureFetch (global 4-component vector of int)
+0:66          'is2Dms' (uniform isampler2DMS)
+0:66          'ic2D' (flat in 2-component vector of int)
+0:66          'ic1D' (flat in int)
+0:67      add second child into first child (temp 4-component vector of float)
+0:67        'v' (temp 4-component vector of float)
+0:67        Convert int to float (temp 4-component vector of float)
+0:67          'iv' (temp 4-component vector of int)
+0:68      add second child into first child (temp 4-component vector of float)
+0:68        'v' (temp 4-component vector of float)
+0:68        textureFetch (global 4-component vector of float)
+0:68          'sb' (uniform samplerBuffer)
+0:68          'ic1D' (flat in int)
+0:69      add second child into first child (temp 4-component vector of float)
+0:69        'v' (temp 4-component vector of float)
+0:69        textureFetch (global 4-component vector of float)
+0:69          'sr' (uniform sampler2DRect)
+0:69          'ic2D' (flat in 2-component vector of int)
+0:71      Sequence
+0:71        move second child to first child (temp 2-component vector of int)
+0:71          'iv2' (temp 2-component vector of int)
+0:71          textureSize (global 2-component vector of int)
+0:71            'sCubeShadow' (uniform samplerCubeShadow)
+0:71            Constant:
+0:71              2 (const int)
+0:74      move second child to first child (temp 4-component vector of float)
+0:74        'FragData' (out 4-component vector of float)
+0:74        add (temp 4-component vector of float)
+0:74          'v' (temp 4-component vector of float)
+0:74          Construct vec4 (temp 4-component vector of float)
+0:74            Convert int to float (temp 2-component vector of float)
+0:74              'iv2' (temp 2-component vector of int)
+0:74            Constant:
+0:74              0.000000
+0:74            Constant:
+0:74              0.000000
+0:?   Linker Objects
+0:?     'sb' (uniform samplerBuffer)
+0:?     'sr' (uniform sampler2DRect)
+0:?     's2D' (uniform sampler2D)
+0:?     's3D' (uniform sampler3D)
+0:?     'sCube' (uniform samplerCube)
+0:?     'sCubeShadow' (uniform samplerCubeShadow)
+0:?     's2DShadow' (uniform sampler2DShadow)
+0:?     's2DArray' (uniform sampler2DArray)
+0:?     's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:?     'is2D' (uniform isampler2D)
+0:?     'is3D' (uniform isampler3D)
+0:?     'isCube' (uniform isamplerCube)
+0:?     'is2DArray' (uniform isampler2DArray)
+0:?     'is2Dms' (uniform isampler2DMS)
+0:?     'us2D' (uniform usampler2D)
+0:?     'us3D' (uniform usampler3D)
+0:?     'usCube' (uniform usamplerCube)
+0:?     'us2DArray' (uniform usampler2DArray)
+0:?     'c1D' (smooth in float)
+0:?     'c2D' (smooth in 2-component vector of float)
+0:?     'c3D' (smooth in 3-component vector of float)
+0:?     'c4D' (smooth in 4-component vector of float)
+0:?     'ic1D' (flat in int)
+0:?     'ic2D' (flat in 2-component vector of int)
+0:?     'ic3D' (flat in 3-component vector of int)
+0:?     'ic4D' (flat in 4-component vector of int)
+0:?     'FragData' (out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+0:? Sequence
+0:36  Function Definition: main( (global void)
+0:36    Function Parameters: 
+0:38    Sequence
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of float)
+0:38          'v' (temp 4-component vector of float)
+0:38          texture (global 4-component vector of float)
+0:38            's2D' (uniform sampler2D)
+0:38            'c2D' (smooth in 2-component vector of float)
+0:39      add second child into first child (temp 4-component vector of float)
+0:39        'v' (temp 4-component vector of float)
+0:39        textureProj (global 4-component vector of float)
+0:39          's3D' (uniform sampler3D)
+0:39          'c4D' (smooth in 4-component vector of float)
+0:40      add second child into first child (temp 4-component vector of float)
+0:40        'v' (temp 4-component vector of float)
+0:40        textureLod (global 4-component vector of float)
+0:40          's2DArray' (uniform sampler2DArray)
+0:40          'c3D' (smooth in 3-component vector of float)
+0:40          Constant:
+0:40            1.200000
+0:41      add second child into first child (temp float)
+0:41        direct index (temp float)
+0:41          'v' (temp 4-component vector of float)
+0:41          Constant:
+0:41            1 (const int)
+0:41        textureOffset (global float)
+0:41          's2DShadow' (uniform sampler2DShadow)
+0:41          'c3D' (smooth in 3-component vector of float)
+0:41          Constant:
+0:41            3 (const int)
+0:41            3 (const int)
+0:41          'c1D' (smooth in float)
+0:42      add second child into first child (temp 4-component vector of float)
+0:42        'v' (temp 4-component vector of float)
+0:42        textureFetch (global 4-component vector of float)
+0:42          's3D' (uniform sampler3D)
+0:42          'ic3D' (flat in 3-component vector of int)
+0:42          'ic1D' (flat in int)
+0:43      add second child into first child (temp 4-component vector of float)
+0:43        'v' (temp 4-component vector of float)
+0:43        textureFetchOffset (global 4-component vector of float)
+0:43          's2D' (uniform sampler2D)
+0:43          'ic2D' (flat in 2-component vector of int)
+0:43          Constant:
+0:43            4 (const int)
+0:43          Constant:
+0:43            3 (const int)
+0:43            3 (const int)
+0:44      add second child into first child (temp 4-component vector of float)
+0:44        'v' (temp 4-component vector of float)
+0:44        textureFetchOffset (global 4-component vector of float)
+0:44          'sr' (uniform sampler2DRect)
+0:44          'ic2D' (flat in 2-component vector of int)
+0:44          Constant:
+0:44            4 (const int)
+0:44            4 (const int)
+0:45      add second child into first child (temp float)
+0:45        direct index (temp float)
+0:45          'v' (temp 4-component vector of float)
+0:45          Constant:
+0:45            1 (const int)
+0:45        textureLodOffset (global float)
+0:45          's2DShadow' (uniform sampler2DShadow)
+0:45          'c3D' (smooth in 3-component vector of float)
+0:45          'c1D' (smooth in float)
+0:45          Constant:
+0:45            3 (const int)
+0:45            3 (const int)
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'v' (temp 4-component vector of float)
+0:46        textureProjLodOffset (global 4-component vector of float)
+0:46          's2D' (uniform sampler2D)
+0:46          'c3D' (smooth in 3-component vector of float)
+0:46          'c1D' (smooth in float)
+0:46          Constant:
+0:46            3 (const int)
+0:46            3 (const int)
+0:47      add second child into first child (temp 4-component vector of float)
+0:47        'v' (temp 4-component vector of float)
+0:47        textureGrad (global 4-component vector of float)
+0:47          'sCube' (uniform samplerCube)
+0:47          'c3D' (smooth in 3-component vector of float)
+0:47          'c3D' (smooth in 3-component vector of float)
+0:47          'c3D' (smooth in 3-component vector of float)
+0:48      add second child into first child (temp float)
+0:48        direct index (temp float)
+0:48          'v' (temp 4-component vector of float)
+0:48          Constant:
+0:48            0 (const int)
+0:48        textureGradOffset (global float)
+0:48          's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:48          'c4D' (smooth in 4-component vector of float)
+0:48          'c2D' (smooth in 2-component vector of float)
+0:48          'c2D' (smooth in 2-component vector of float)
+0:48          Constant:
+0:48            3 (const int)
+0:48            3 (const int)
+0:49      add second child into first child (temp 4-component vector of float)
+0:49        'v' (temp 4-component vector of float)
+0:49        textureProjGrad (global 4-component vector of float)
+0:49          's3D' (uniform sampler3D)
+0:49          'c4D' (smooth in 4-component vector of float)
+0:49          'c3D' (smooth in 3-component vector of float)
+0:49          'c3D' (smooth in 3-component vector of float)
+0:50      add second child into first child (temp 4-component vector of float)
+0:50        'v' (temp 4-component vector of float)
+0:50        textureProjGradOffset (global 4-component vector of float)
+0:50          's2D' (uniform sampler2D)
+0:50          'c3D' (smooth in 3-component vector of float)
+0:50          'c2D' (smooth in 2-component vector of float)
+0:50          'c2D' (smooth in 2-component vector of float)
+0:50          Constant:
+0:50            3 (const int)
+0:50            3 (const int)
+0:52      Sequence
+0:52        move second child to first child (temp 4-component vector of int)
+0:52          'iv' (temp 4-component vector of int)
+0:52          texture (global 4-component vector of int)
+0:52            'is2D' (uniform isampler2D)
+0:52            'c2D' (smooth in 2-component vector of float)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'v' (temp 4-component vector of float)
+0:53        Convert int to float (temp 4-component vector of float)
+0:53          'iv' (temp 4-component vector of int)
+0:54      move second child to first child (temp 4-component vector of int)
+0:54        'iv' (temp 4-component vector of int)
+0:54        textureProjOffset (global 4-component vector of int)
+0:54          'is2D' (uniform isampler2D)
+0:54          'c4D' (smooth in 4-component vector of float)
+0:54          Constant:
+0:54            3 (const int)
+0:54            3 (const int)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'v' (temp 4-component vector of float)
+0:55        Convert int to float (temp 4-component vector of float)
+0:55          'iv' (temp 4-component vector of int)
+0:56      move second child to first child (temp 4-component vector of int)
+0:56        'iv' (temp 4-component vector of int)
+0:56        textureProjLod (global 4-component vector of int)
+0:56          'is2D' (uniform isampler2D)
+0:56          'c3D' (smooth in 3-component vector of float)
+0:56          'c1D' (smooth in float)
+0:57      add second child into first child (temp 4-component vector of float)
+0:57        'v' (temp 4-component vector of float)
+0:57        Convert int to float (temp 4-component vector of float)
+0:57          'iv' (temp 4-component vector of int)
+0:58      move second child to first child (temp 4-component vector of int)
+0:58        'iv' (temp 4-component vector of int)
+0:58        textureProjGrad (global 4-component vector of int)
+0:58          'is2D' (uniform isampler2D)
+0:58          'c3D' (smooth in 3-component vector of float)
+0:58          'c2D' (smooth in 2-component vector of float)
+0:58          'c2D' (smooth in 2-component vector of float)
+0:59      add second child into first child (temp 4-component vector of float)
+0:59        'v' (temp 4-component vector of float)
+0:59        Convert int to float (temp 4-component vector of float)
+0:59          'iv' (temp 4-component vector of int)
+0:60      move second child to first child (temp 4-component vector of int)
+0:60        'iv' (temp 4-component vector of int)
+0:60        texture (global 4-component vector of int)
+0:60          'is3D' (uniform isampler3D)
+0:60          'c3D' (smooth in 3-component vector of float)
+0:60          Constant:
+0:60            4.200000
+0:61      add second child into first child (temp 4-component vector of float)
+0:61        'v' (temp 4-component vector of float)
+0:61        Convert int to float (temp 4-component vector of float)
+0:61          'iv' (temp 4-component vector of int)
+0:62      move second child to first child (temp 4-component vector of int)
+0:62        'iv' (temp 4-component vector of int)
+0:62        textureLod (global 4-component vector of int)
+0:62          'isCube' (uniform isamplerCube)
+0:62          'c3D' (smooth in 3-component vector of float)
+0:62          'c1D' (smooth in float)
+0:63      add second child into first child (temp 4-component vector of float)
+0:63        'v' (temp 4-component vector of float)
+0:63        Convert int to float (temp 4-component vector of float)
+0:63          'iv' (temp 4-component vector of int)
+0:64      move second child to first child (temp 4-component vector of int)
+0:64        'iv' (temp 4-component vector of int)
+0:64        textureFetch (global 4-component vector of int)
+0:64          'is2DArray' (uniform isampler2DArray)
+0:64          'ic3D' (flat in 3-component vector of int)
+0:64          'ic1D' (flat in int)
+0:65      add second child into first child (temp 4-component vector of float)
+0:65        'v' (temp 4-component vector of float)
+0:65        Convert int to float (temp 4-component vector of float)
+0:65          'iv' (temp 4-component vector of int)
+0:66      add second child into first child (temp 4-component vector of int)
+0:66        'iv' (temp 4-component vector of int)
+0:66        textureFetch (global 4-component vector of int)
+0:66          'is2Dms' (uniform isampler2DMS)
+0:66          'ic2D' (flat in 2-component vector of int)
+0:66          'ic1D' (flat in int)
+0:67      add second child into first child (temp 4-component vector of float)
+0:67        'v' (temp 4-component vector of float)
+0:67        Convert int to float (temp 4-component vector of float)
+0:67          'iv' (temp 4-component vector of int)
+0:68      add second child into first child (temp 4-component vector of float)
+0:68        'v' (temp 4-component vector of float)
+0:68        textureFetch (global 4-component vector of float)
+0:68          'sb' (uniform samplerBuffer)
+0:68          'ic1D' (flat in int)
+0:69      add second child into first child (temp 4-component vector of float)
+0:69        'v' (temp 4-component vector of float)
+0:69        textureFetch (global 4-component vector of float)
+0:69          'sr' (uniform sampler2DRect)
+0:69          'ic2D' (flat in 2-component vector of int)
+0:71      Sequence
+0:71        move second child to first child (temp 2-component vector of int)
+0:71          'iv2' (temp 2-component vector of int)
+0:71          textureSize (global 2-component vector of int)
+0:71            'sCubeShadow' (uniform samplerCubeShadow)
+0:71            Constant:
+0:71              2 (const int)
+0:74      move second child to first child (temp 4-component vector of float)
+0:74        'FragData' (out 4-component vector of float)
+0:74        add (temp 4-component vector of float)
+0:74          'v' (temp 4-component vector of float)
+0:74          Construct vec4 (temp 4-component vector of float)
+0:74            Convert int to float (temp 2-component vector of float)
+0:74              'iv2' (temp 2-component vector of int)
+0:74            Constant:
+0:74              0.000000
+0:74            Constant:
+0:74              0.000000
+0:?   Linker Objects
+0:?     'sb' (uniform samplerBuffer)
+0:?     'sr' (uniform sampler2DRect)
+0:?     's2D' (uniform sampler2D)
+0:?     's3D' (uniform sampler3D)
+0:?     'sCube' (uniform samplerCube)
+0:?     'sCubeShadow' (uniform samplerCubeShadow)
+0:?     's2DShadow' (uniform sampler2DShadow)
+0:?     's2DArray' (uniform sampler2DArray)
+0:?     's2DArrayShadow' (uniform sampler2DArrayShadow)
+0:?     'is2D' (uniform isampler2D)
+0:?     'is3D' (uniform isampler3D)
+0:?     'isCube' (uniform isamplerCube)
+0:?     'is2DArray' (uniform isampler2DArray)
+0:?     'is2Dms' (uniform isampler2DMS)
+0:?     'us2D' (uniform usampler2D)
+0:?     'us3D' (uniform usampler3D)
+0:?     'usCube' (uniform usamplerCube)
+0:?     'us2DArray' (uniform usampler2DArray)
+0:?     'c1D' (smooth in float)
+0:?     'c2D' (smooth in 2-component vector of float)
+0:?     'c3D' (smooth in 3-component vector of float)
+0:?     'c4D' (smooth in 4-component vector of float)
+0:?     'ic1D' (flat in int)
+0:?     'ic2D' (flat in 2-component vector of int)
+0:?     'ic3D' (flat in 3-component vector of int)
+0:?     'ic4D' (flat in 4-component vector of int)
+0:?     'FragData' (out 4-component vector of float)
+
diff --git a/Test/baseResults/noMain.vert.out b/Test/baseResults/noMain.vert.out
index 052e27e..630af95 100644
--- a/Test/baseResults/noMain.vert.out
+++ b/Test/baseResults/noMain.vert.out
@@ -1,45 +1,45 @@
-noMain.vert

-Shader version: 300

-0:? Sequence

-0:3  Function Definition: foo( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-mains.frag

-ERROR: 0:7: 'main' : function already has a body 

-ERROR: 1 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:?   Linker Objects

-

-

-Linked vertex stage:

-

-ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point

-

-Linked fragment stage:

-

-

-Shader version: 300

-0:? Sequence

-0:3  Function Definition: foo( (global void)

-0:3    Function Parameters: 

-0:?   Linker Objects

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-Shader version: 300

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:?   Linker Objects

-

+noMain.vert
+Shader version: 300
+0:? Sequence
+0:3  Function Definition: foo( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+mains.frag
+ERROR: 0:7: 'main' : function already has a body 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:?   Linker Objects
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Linked fragment stage:
+
+
+Shader version: 300
+0:? Sequence
+0:3  Function Definition: foo( (global void)
+0:3    Function Parameters: 
+0:?   Linker Objects
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+Shader version: 300
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:?   Linker Objects
+
diff --git a/Test/baseResults/nonSquare.vert.out b/Test/baseResults/nonSquare.vert.out
index 9f5c100..c075369 100644
--- a/Test/baseResults/nonSquare.vert.out
+++ b/Test/baseResults/nonSquare.vert.out
@@ -1,183 +1,183 @@
-nonSquare.vert

-Shader version: 120

-0:? Sequence

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:?     Sequence

-0:20      move second child to first child (temp 2-component vector of float)

-0:20        'a' (temp 2-component vector of float)

-0:20        vector-times-matrix (temp 2-component vector of float)

-0:20          'v3' (in 3-component vector of float)

-0:20          'm23' (temp 2X3 matrix of float)

-0:21      move second child to first child (temp 2-component vector of float)

-0:21        'b' (temp 2-component vector of float)

-0:21        matrix-times-vector (temp 2-component vector of float)

-0:21          'm32' (uniform 3X2 matrix of float)

-0:21          'v3' (in 3-component vector of float)

-0:23      move second child to first child (temp 4-component vector of float)

-0:23        'gl_Position' (gl_Position 4-component vector of float Position)

-0:24        add (temp 4-component vector of float)

-0:24          add (temp 4-component vector of float)

-0:24            add (temp 4-component vector of float)

-0:23              add (temp 4-component vector of float)

-0:23                Construct vec4 (temp 4-component vector of float)

-0:23                  matrix-times-vector (temp 3-component vector of float)

-0:23                    matrix-multiply (temp 3X3 matrix of float)

-0:23                      'm23' (temp 2X3 matrix of float)

-0:23                      'm32' (uniform 3X2 matrix of float)

-0:23                    'v3' (in 3-component vector of float)

-0:23                  Constant:

-0:23                    0.000000

-0:24                matrix-times-vector (temp 4-component vector of float)

-0:24                  Constant:

-0:24                    3.000000

-0:24                    6.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                    9.000000

-0:24                    12.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                    15.000000

-0:24                    18.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                    21.000000

-0:24                    24.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                  'v4' (in 4-component vector of float)

-0:24              Constant:

-0:24                50.000000

-0:24                110.000000

-0:24                170.000000

-0:24                230.000000

-0:24            Constant:

-0:24              30.000000

-0:24              60.000000

-0:24              0.000000

-0:24              0.000000

-0:24          Constant:

-0:24            20.000000

-0:24            10.000000

-0:24            6.000000

-0:24            5.000000

-0:?   Linker Objects

-0:?     'v3' (in 3-component vector of float)

-0:?     'v4' (in 4-component vector of float)

-0:?     'm32' (uniform 3X2 matrix of float)

-0:?     'cv2' (const 2-component vector of float)

-0:?       10.000000

-0:?       20.000000

-0:?     'm24' (const 2X4 matrix of float)

-0:?       3.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       3.000000

-0:?       0.000000

-0:?       0.000000

-0:?     'm42' (const 4X2 matrix of float)

-0:?       1.000000

-0:?       2.000000

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?       6.000000

-0:?       7.000000

-0:?       8.000000

-

-

-Linked vertex stage:

-

-

-Shader version: 120

-0:? Sequence

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:?     Sequence

-0:20      move second child to first child (temp 2-component vector of float)

-0:20        'a' (temp 2-component vector of float)

-0:20        vector-times-matrix (temp 2-component vector of float)

-0:20          'v3' (in 3-component vector of float)

-0:20          'm23' (temp 2X3 matrix of float)

-0:21      move second child to first child (temp 2-component vector of float)

-0:21        'b' (temp 2-component vector of float)

-0:21        matrix-times-vector (temp 2-component vector of float)

-0:21          'm32' (uniform 3X2 matrix of float)

-0:21          'v3' (in 3-component vector of float)

-0:23      move second child to first child (temp 4-component vector of float)

-0:23        'gl_Position' (gl_Position 4-component vector of float Position)

-0:24        add (temp 4-component vector of float)

-0:24          add (temp 4-component vector of float)

-0:24            add (temp 4-component vector of float)

-0:23              add (temp 4-component vector of float)

-0:23                Construct vec4 (temp 4-component vector of float)

-0:23                  matrix-times-vector (temp 3-component vector of float)

-0:23                    matrix-multiply (temp 3X3 matrix of float)

-0:23                      'm23' (temp 2X3 matrix of float)

-0:23                      'm32' (uniform 3X2 matrix of float)

-0:23                    'v3' (in 3-component vector of float)

-0:23                  Constant:

-0:23                    0.000000

-0:24                matrix-times-vector (temp 4-component vector of float)

-0:24                  Constant:

-0:24                    3.000000

-0:24                    6.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                    9.000000

-0:24                    12.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                    15.000000

-0:24                    18.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                    21.000000

-0:24                    24.000000

-0:24                    0.000000

-0:24                    0.000000

-0:24                  'v4' (in 4-component vector of float)

-0:24              Constant:

-0:24                50.000000

-0:24                110.000000

-0:24                170.000000

-0:24                230.000000

-0:24            Constant:

-0:24              30.000000

-0:24              60.000000

-0:24              0.000000

-0:24              0.000000

-0:24          Constant:

-0:24            20.000000

-0:24            10.000000

-0:24            6.000000

-0:24            5.000000

-0:?   Linker Objects

-0:?     'v3' (in 3-component vector of float)

-0:?     'v4' (in 4-component vector of float)

-0:?     'm32' (uniform 3X2 matrix of float)

-0:?     'cv2' (const 2-component vector of float)

-0:?       10.000000

-0:?       20.000000

-0:?     'm24' (const 2X4 matrix of float)

-0:?       3.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       0.000000

-0:?       3.000000

-0:?       0.000000

-0:?       0.000000

-0:?     'm42' (const 4X2 matrix of float)

-0:?       1.000000

-0:?       2.000000

-0:?       3.000000

-0:?       4.000000

-0:?       5.000000

-0:?       6.000000

-0:?       7.000000

-0:?       8.000000

-

+nonSquare.vert
+Shader version: 120
+0:? Sequence
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:?     Sequence
+0:20      move second child to first child (temp 2-component vector of float)
+0:20        'a' (temp 2-component vector of float)
+0:20        vector-times-matrix (temp 2-component vector of float)
+0:20          'v3' (in 3-component vector of float)
+0:20          'm23' (temp 2X3 matrix of float)
+0:21      move second child to first child (temp 2-component vector of float)
+0:21        'b' (temp 2-component vector of float)
+0:21        matrix-times-vector (temp 2-component vector of float)
+0:21          'm32' (uniform 3X2 matrix of float)
+0:21          'v3' (in 3-component vector of float)
+0:23      move second child to first child (temp 4-component vector of float)
+0:23        'gl_Position' (gl_Position 4-component vector of float Position)
+0:24        add (temp 4-component vector of float)
+0:24          add (temp 4-component vector of float)
+0:24            add (temp 4-component vector of float)
+0:23              add (temp 4-component vector of float)
+0:23                Construct vec4 (temp 4-component vector of float)
+0:23                  matrix-times-vector (temp 3-component vector of float)
+0:23                    matrix-multiply (temp 3X3 matrix of float)
+0:23                      'm23' (temp 2X3 matrix of float)
+0:23                      'm32' (uniform 3X2 matrix of float)
+0:23                    'v3' (in 3-component vector of float)
+0:23                  Constant:
+0:23                    0.000000
+0:24                matrix-times-vector (temp 4-component vector of float)
+0:24                  Constant:
+0:24                    3.000000
+0:24                    6.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                    9.000000
+0:24                    12.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                    15.000000
+0:24                    18.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                    21.000000
+0:24                    24.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                  'v4' (in 4-component vector of float)
+0:24              Constant:
+0:24                50.000000
+0:24                110.000000
+0:24                170.000000
+0:24                230.000000
+0:24            Constant:
+0:24              30.000000
+0:24              60.000000
+0:24              0.000000
+0:24              0.000000
+0:24          Constant:
+0:24            20.000000
+0:24            10.000000
+0:24            6.000000
+0:24            5.000000
+0:?   Linker Objects
+0:?     'v3' (in 3-component vector of float)
+0:?     'v4' (in 4-component vector of float)
+0:?     'm32' (uniform 3X2 matrix of float)
+0:?     'cv2' (const 2-component vector of float)
+0:?       10.000000
+0:?       20.000000
+0:?     'm24' (const 2X4 matrix of float)
+0:?       3.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       3.000000
+0:?       0.000000
+0:?       0.000000
+0:?     'm42' (const 4X2 matrix of float)
+0:?       1.000000
+0:?       2.000000
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?       6.000000
+0:?       7.000000
+0:?       8.000000
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+0:? Sequence
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:?     Sequence
+0:20      move second child to first child (temp 2-component vector of float)
+0:20        'a' (temp 2-component vector of float)
+0:20        vector-times-matrix (temp 2-component vector of float)
+0:20          'v3' (in 3-component vector of float)
+0:20          'm23' (temp 2X3 matrix of float)
+0:21      move second child to first child (temp 2-component vector of float)
+0:21        'b' (temp 2-component vector of float)
+0:21        matrix-times-vector (temp 2-component vector of float)
+0:21          'm32' (uniform 3X2 matrix of float)
+0:21          'v3' (in 3-component vector of float)
+0:23      move second child to first child (temp 4-component vector of float)
+0:23        'gl_Position' (gl_Position 4-component vector of float Position)
+0:24        add (temp 4-component vector of float)
+0:24          add (temp 4-component vector of float)
+0:24            add (temp 4-component vector of float)
+0:23              add (temp 4-component vector of float)
+0:23                Construct vec4 (temp 4-component vector of float)
+0:23                  matrix-times-vector (temp 3-component vector of float)
+0:23                    matrix-multiply (temp 3X3 matrix of float)
+0:23                      'm23' (temp 2X3 matrix of float)
+0:23                      'm32' (uniform 3X2 matrix of float)
+0:23                    'v3' (in 3-component vector of float)
+0:23                  Constant:
+0:23                    0.000000
+0:24                matrix-times-vector (temp 4-component vector of float)
+0:24                  Constant:
+0:24                    3.000000
+0:24                    6.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                    9.000000
+0:24                    12.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                    15.000000
+0:24                    18.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                    21.000000
+0:24                    24.000000
+0:24                    0.000000
+0:24                    0.000000
+0:24                  'v4' (in 4-component vector of float)
+0:24              Constant:
+0:24                50.000000
+0:24                110.000000
+0:24                170.000000
+0:24                230.000000
+0:24            Constant:
+0:24              30.000000
+0:24              60.000000
+0:24              0.000000
+0:24              0.000000
+0:24          Constant:
+0:24            20.000000
+0:24            10.000000
+0:24            6.000000
+0:24            5.000000
+0:?   Linker Objects
+0:?     'v3' (in 3-component vector of float)
+0:?     'v4' (in 4-component vector of float)
+0:?     'm32' (uniform 3X2 matrix of float)
+0:?     'cv2' (const 2-component vector of float)
+0:?       10.000000
+0:?       20.000000
+0:?     'm24' (const 2X4 matrix of float)
+0:?       3.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       0.000000
+0:?       3.000000
+0:?       0.000000
+0:?       0.000000
+0:?     'm42' (const 4X2 matrix of float)
+0:?       1.000000
+0:?       2.000000
+0:?       3.000000
+0:?       4.000000
+0:?       5.000000
+0:?       6.000000
+0:?       7.000000
+0:?       8.000000
+
diff --git a/Test/baseResults/numeral.frag.out b/Test/baseResults/numeral.frag.out
index 63119fa..6f5595c 100644
--- a/Test/baseResults/numeral.frag.out
+++ b/Test/baseResults/numeral.frag.out
@@ -1,829 +1,829 @@
-numeral.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:14: '' : octal literal digit too large 

-ERROR: 0:15: '' : octal literal digit too large 

-ERROR: 0:16: '' : octal literal digit too large 

-ERROR: 0:17: '' : octal literal too big 

-ERROR: 0:18: '' : octal literal too big 

-ERROR: 0:23: '' : octal literal digit too large 

-ERROR: 0:24: '' : octal literal digit too large 

-ERROR: 0:49: '' : bad digit in hexidecimal literal 

-ERROR: 0:50: '' : hexidecimal literal too big 

-ERROR: 0:88: '' : float literal needs a decimal point or exponent 

-ERROR: 0:98: '' : numeric literal too big 

-ERROR: 0:101: '' : numeric literal too big 

-ERROR: 12 compilation errors.  No code generated.

-

-

-Shader version: 400

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:5    Sequence

-0:5      Sequence

-0:5        move second child to first child (temp int)

-0:5          'o00' (temp int)

-0:5          Constant:

-0:5            0 (const int)

-0:6      Sequence

-0:6        move second child to first child (temp int)

-0:6          'o000' (temp int)

-0:6          Constant:

-0:6            0 (const int)

-0:7      Sequence

-0:7        move second child to first child (temp int)

-0:7          'o0000' (temp int)

-0:7          Constant:

-0:7            0 (const int)

-0:8      Sequence

-0:8        move second child to first child (temp int)

-0:8          'o5' (temp int)

-0:8          Constant:

-0:8            5 (const int)

-0:9      Sequence

-0:9        move second child to first child (temp int)

-0:9          'o05' (temp int)

-0:9          Constant:

-0:9            5 (const int)

-0:10      Sequence

-0:10        move second child to first child (temp int)

-0:10          'o006' (temp int)

-0:10          Constant:

-0:10            6 (const int)

-0:11      Sequence

-0:11        move second child to first child (temp int)

-0:11          'o7' (temp int)

-0:11          Constant:

-0:11            7 (const int)

-0:12      Sequence

-0:12        move second child to first child (temp int)

-0:12          'o58' (temp int)

-0:12          Constant:

-0:12            58 (const int)

-0:13      Sequence

-0:13        move second child to first child (temp int)

-0:13          'omax' (temp int)

-0:13          Constant:

-0:13            -1 (const int)

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'o8' (temp int)

-0:14          Constant:

-0:14            0 (const int)

-0:15      Sequence

-0:15        move second child to first child (temp int)

-0:15          'o08' (temp int)

-0:15          Constant:

-0:15            0 (const int)

-0:16      Sequence

-0:16        move second child to first child (temp int)

-0:16          'o009' (temp int)

-0:16          Constant:

-0:16            0 (const int)

-0:17      Sequence

-0:17        move second child to first child (temp int)

-0:17          'obig' (temp int)

-0:17          Constant:

-0:17            995208915 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp int)

-0:18          'omax1' (temp int)

-0:18          Constant:

-0:18            536870912 (const int)

-0:20      Sequence

-0:20        move second child to first child (temp uint)

-0:20          'uo5' (temp uint)

-0:20          Constant:

-0:20            5 (const uint)

-0:21      Sequence

-0:21        move second child to first child (temp uint)

-0:21          'uo6' (temp uint)

-0:21          Constant:

-0:21            6 (const uint)

-0:22      Sequence

-0:22        move second child to first child (temp uint)

-0:22          'uo7' (temp uint)

-0:22          Constant:

-0:22            7 (const uint)

-0:23      Sequence

-0:23        move second child to first child (temp uint)

-0:23          'uo8' (temp uint)

-0:23          Constant:

-0:23            0 (const uint)

-0:24      Sequence

-0:24        move second child to first child (temp uint)

-0:24          'uo9' (temp uint)

-0:24          Constant:

-0:24            0 (const uint)

-0:26      Sequence

-0:26        move second child to first child (temp int)

-0:26          'h0' (temp int)

-0:26          Constant:

-0:26            0 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'h00' (temp int)

-0:27          Constant:

-0:27            0 (const int)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'h000' (temp int)

-0:28          Constant:

-0:28            0 (const int)

-0:29      Sequence

-0:29        move second child to first child (temp int)

-0:29          'h1' (temp int)

-0:29          Constant:

-0:29            1 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp int)

-0:30          'h2' (temp int)

-0:30          Constant:

-0:30            2 (const int)

-0:31      Sequence

-0:31        move second child to first child (temp int)

-0:31          'h300' (temp int)

-0:31          Constant:

-0:31            768 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp int)

-0:32          'hABCDEF' (temp int)

-0:32          Constant:

-0:32            11259375 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp int)

-0:33          'hFFFFFFFF' (temp int)

-0:33          Constant:

-0:33            -1 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp int)

-0:34          'h12345678' (temp int)

-0:34          Constant:

-0:34            12345678 (const int)

-0:35      Sequence

-0:35        move second child to first child (temp int)

-0:35          'hToBeOrNotToBe' (temp int)

-0:35          Constant:

-0:35            -1 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp uint)

-0:37          'uh0' (temp uint)

-0:37          Constant:

-0:37            0 (const uint)

-0:38      Sequence

-0:38        move second child to first child (temp uint)

-0:38          'uhg' (temp uint)

-0:38          Constant:

-0:38            12 (const uint)

-0:39      Sequence

-0:39        move second child to first child (temp uint)

-0:39          'uh000' (temp uint)

-0:39          Constant:

-0:39            0 (const uint)

-0:40      Sequence

-0:40        move second child to first child (temp uint)

-0:40          'uh1' (temp uint)

-0:40          Constant:

-0:40            1 (const uint)

-0:41      Sequence

-0:41        move second child to first child (temp uint)

-0:41          'uh2' (temp uint)

-0:41          Constant:

-0:41            2 (const uint)

-0:42      Sequence

-0:42        move second child to first child (temp uint)

-0:42          'uh300' (temp uint)

-0:42          Constant:

-0:42            768 (const uint)

-0:43      Sequence

-0:43        move second child to first child (temp uint)

-0:43          'uhABCDEF' (temp uint)

-0:43          Constant:

-0:43            11259375 (const uint)

-0:44      Sequence

-0:44        move second child to first child (temp uint)

-0:44          'uhFFFFFFFF' (temp uint)

-0:44          Constant:

-0:44            4294967295 (const uint)

-0:45      Sequence

-0:45        move second child to first child (temp uint)

-0:45          'uh12345678' (temp uint)

-0:45          Constant:

-0:45            12345678 (const uint)

-0:46      Sequence

-0:46        move second child to first child (temp uint)

-0:46          'uhToBeOrNotToBe' (temp uint)

-0:46          Constant:

-0:46            4294967295 (const uint)

-0:49      Sequence

-0:49        move second child to first child (temp int)

-0:49          'he2' (temp int)

-0:49          Constant:

-0:49            0 (const int)

-0:50      Sequence

-0:50        move second child to first child (temp int)

-0:50          'hbig' (temp int)

-0:50          Constant:

-0:50            -1 (const int)

-0:52      Sequence

-0:52        move second child to first child (temp float)

-0:52          'f1' (temp float)

-0:52          Constant:

-0:52            1.000000

-0:53      Sequence

-0:53        move second child to first child (temp float)

-0:53          'f2' (temp float)

-0:53          Constant:

-0:53            2.000000

-0:54      Sequence

-0:54        move second child to first child (temp float)

-0:54          'f3' (temp float)

-0:54          Constant:

-0:54            3.000000

-0:55      Sequence

-0:55        move second child to first child (temp float)

-0:55          'f4' (temp float)

-0:55          Constant:

-0:55            4.000000

-0:56      Sequence

-0:56        move second child to first child (temp float)

-0:56          'f5' (temp float)

-0:56          Constant:

-0:56            5.000000

-0:57      Sequence

-0:57        move second child to first child (temp float)

-0:57          'f6' (temp float)

-0:57          Constant:

-0:57            6.000000

-0:58      Sequence

-0:58        move second child to first child (temp float)

-0:58          'f7' (temp float)

-0:58          Constant:

-0:58            7.000000

-0:59      Sequence

-0:59        move second child to first child (temp float)

-0:59          'f8' (temp float)

-0:59          Constant:

-0:59            8.000000

-0:60      Sequence

-0:60        move second child to first child (temp float)

-0:60          'f9' (temp float)

-0:60          Constant:

-0:60            9.000000

-0:61      Sequence

-0:61        move second child to first child (temp float)

-0:61          'f10' (temp float)

-0:61          Constant:

-0:61            10.000000

-0:62      Sequence

-0:62        move second child to first child (temp float)

-0:62          'f11' (temp float)

-0:62          Constant:

-0:62            11.000000

-0:63      Sequence

-0:63        move second child to first child (temp float)

-0:63          'f12' (temp float)

-0:63          Constant:

-0:63            12.000000

-0:64      Sequence

-0:64        move second child to first child (temp float)

-0:64          'f543' (temp float)

-0:64          Constant:

-0:64            543.000000

-0:65      Sequence

-0:65        move second child to first child (temp float)

-0:65          'f6789' (temp float)

-0:65          Constant:

-0:65            6789.000000

-0:66      Sequence

-0:66        move second child to first child (temp float)

-0:66          'f88' (temp float)

-0:66          Constant:

-0:66            88.000000

-0:68      Sequence

-0:68        move second child to first child (temp float)

-0:68          'g1' (temp float)

-0:68          Constant:

-0:68            53876.000000

-0:69      Sequence

-0:69        move second child to first child (temp float)

-0:69          'g2' (temp float)

-0:69          Constant:

-0:69            0.040000

-0:70      Sequence

-0:70        move second child to first child (temp float)

-0:70          'g3' (temp float)

-0:70          Constant:

-0:70            100000.000000

-0:71      Sequence

-0:71        move second child to first child (temp float)

-0:71          'g4' (temp float)

-0:71          Constant:

-0:71            0.007321

-0:72      Sequence

-0:72        move second child to first child (temp float)

-0:72          'g5' (temp float)

-0:72          Constant:

-0:72            32000.000000

-0:73      Sequence

-0:73        move second child to first child (temp float)

-0:73          'g6' (temp float)

-0:73          Constant:

-0:73            0.000005

-0:74      Sequence

-0:74        move second child to first child (temp float)

-0:74          'g7' (temp float)

-0:74          Constant:

-0:74            0.450000

-0:75      Sequence

-0:75        move second child to first child (temp float)

-0:75          'g8' (temp float)

-0:75          Constant:

-0:75            60000000000.000000

-0:77      Sequence

-0:77        move second child to first child (temp double)

-0:77          'gf1' (temp double)

-0:77          Constant:

-0:77            1.000000

-0:78      Sequence

-0:78        move second child to first child (temp double)

-0:78          'gf2' (temp double)

-0:78          Constant:

-0:78            2.000000

-0:79      Sequence

-0:79        move second child to first child (temp double)

-0:79          'gf3' (temp double)

-0:79          Constant:

-0:79            3.000000

-0:80      Sequence

-0:80        move second child to first child (temp double)

-0:80          'gf4' (temp double)

-0:80          Constant:

-0:80            4.000000

-0:81      Sequence

-0:81        move second child to first child (temp float)

-0:81          'gf5' (temp float)

-0:81          Constant:

-0:81            5.000000

-0:82      Sequence

-0:82        move second child to first child (temp float)

-0:82          'gf6' (temp float)

-0:82          Constant:

-0:82            6.000000

-0:88      Sequence

-0:88        move second child to first child (temp float)

-0:88          'e5' (temp float)

-0:88          Constant:

-0:88            5.000000

-0:98  Sequence

-0:98    move second child to first child (temp uint)

-0:98      'g1' (global uint)

-0:98      Constant:

-0:98        4294967295 (const uint)

-0:99  Sequence

-0:99    move second child to first child (temp uint)

-0:99      'g2' (global uint)

-0:99      Constant:

-0:99        4294967295 (const uint)

-0:100  Sequence

-0:100    move second child to first child (temp uint)

-0:100      'g3' (global uint)

-0:100      Constant:

-0:100        4294967294 (const uint)

-0:101  Sequence

-0:101    move second child to first child (temp int)

-0:101      'g4' (global int)

-0:101      Constant:

-0:101        -1 (const int)

-0:102  Sequence

-0:102    move second child to first child (temp int)

-0:102      'g5' (global int)

-0:102      Constant:

-0:102        -1 (const int)

-0:103  Sequence

-0:103    move second child to first child (temp int)

-0:103      'g6' (global int)

-0:103      Constant:

-0:103        -2 (const int)

-0:?   Linker Objects

-0:?     'c2' (layout(location=2 ) out 4-component vector of float)

-0:?     'c3' (layout(location=3 ) out 4-component vector of float)

-0:?     'c4' (layout(location=4 ) out 4-component vector of float)

-0:?     'c5' (layout(location=5 ) out 4-component vector of float)

-0:?     'c6' (layout(location=6 ) out 4-component vector of float)

-0:?     'c7' (layout(location=7 ) out 4-component vector of float)

-0:?     'g1' (global uint)

-0:?     'g2' (global uint)

-0:?     'g3' (global uint)

-0:?     'g4' (global int)

-0:?     'g5' (global int)

-0:?     'g6' (global int)

-

-

-Linked fragment stage:

-

-

-Shader version: 400

-ERROR: node is still EOpNull!

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:5    Sequence

-0:5      Sequence

-0:5        move second child to first child (temp int)

-0:5          'o00' (temp int)

-0:5          Constant:

-0:5            0 (const int)

-0:6      Sequence

-0:6        move second child to first child (temp int)

-0:6          'o000' (temp int)

-0:6          Constant:

-0:6            0 (const int)

-0:7      Sequence

-0:7        move second child to first child (temp int)

-0:7          'o0000' (temp int)

-0:7          Constant:

-0:7            0 (const int)

-0:8      Sequence

-0:8        move second child to first child (temp int)

-0:8          'o5' (temp int)

-0:8          Constant:

-0:8            5 (const int)

-0:9      Sequence

-0:9        move second child to first child (temp int)

-0:9          'o05' (temp int)

-0:9          Constant:

-0:9            5 (const int)

-0:10      Sequence

-0:10        move second child to first child (temp int)

-0:10          'o006' (temp int)

-0:10          Constant:

-0:10            6 (const int)

-0:11      Sequence

-0:11        move second child to first child (temp int)

-0:11          'o7' (temp int)

-0:11          Constant:

-0:11            7 (const int)

-0:12      Sequence

-0:12        move second child to first child (temp int)

-0:12          'o58' (temp int)

-0:12          Constant:

-0:12            58 (const int)

-0:13      Sequence

-0:13        move second child to first child (temp int)

-0:13          'omax' (temp int)

-0:13          Constant:

-0:13            -1 (const int)

-0:14      Sequence

-0:14        move second child to first child (temp int)

-0:14          'o8' (temp int)

-0:14          Constant:

-0:14            0 (const int)

-0:15      Sequence

-0:15        move second child to first child (temp int)

-0:15          'o08' (temp int)

-0:15          Constant:

-0:15            0 (const int)

-0:16      Sequence

-0:16        move second child to first child (temp int)

-0:16          'o009' (temp int)

-0:16          Constant:

-0:16            0 (const int)

-0:17      Sequence

-0:17        move second child to first child (temp int)

-0:17          'obig' (temp int)

-0:17          Constant:

-0:17            995208915 (const int)

-0:18      Sequence

-0:18        move second child to first child (temp int)

-0:18          'omax1' (temp int)

-0:18          Constant:

-0:18            536870912 (const int)

-0:20      Sequence

-0:20        move second child to first child (temp uint)

-0:20          'uo5' (temp uint)

-0:20          Constant:

-0:20            5 (const uint)

-0:21      Sequence

-0:21        move second child to first child (temp uint)

-0:21          'uo6' (temp uint)

-0:21          Constant:

-0:21            6 (const uint)

-0:22      Sequence

-0:22        move second child to first child (temp uint)

-0:22          'uo7' (temp uint)

-0:22          Constant:

-0:22            7 (const uint)

-0:23      Sequence

-0:23        move second child to first child (temp uint)

-0:23          'uo8' (temp uint)

-0:23          Constant:

-0:23            0 (const uint)

-0:24      Sequence

-0:24        move second child to first child (temp uint)

-0:24          'uo9' (temp uint)

-0:24          Constant:

-0:24            0 (const uint)

-0:26      Sequence

-0:26        move second child to first child (temp int)

-0:26          'h0' (temp int)

-0:26          Constant:

-0:26            0 (const int)

-0:27      Sequence

-0:27        move second child to first child (temp int)

-0:27          'h00' (temp int)

-0:27          Constant:

-0:27            0 (const int)

-0:28      Sequence

-0:28        move second child to first child (temp int)

-0:28          'h000' (temp int)

-0:28          Constant:

-0:28            0 (const int)

-0:29      Sequence

-0:29        move second child to first child (temp int)

-0:29          'h1' (temp int)

-0:29          Constant:

-0:29            1 (const int)

-0:30      Sequence

-0:30        move second child to first child (temp int)

-0:30          'h2' (temp int)

-0:30          Constant:

-0:30            2 (const int)

-0:31      Sequence

-0:31        move second child to first child (temp int)

-0:31          'h300' (temp int)

-0:31          Constant:

-0:31            768 (const int)

-0:32      Sequence

-0:32        move second child to first child (temp int)

-0:32          'hABCDEF' (temp int)

-0:32          Constant:

-0:32            11259375 (const int)

-0:33      Sequence

-0:33        move second child to first child (temp int)

-0:33          'hFFFFFFFF' (temp int)

-0:33          Constant:

-0:33            -1 (const int)

-0:34      Sequence

-0:34        move second child to first child (temp int)

-0:34          'h12345678' (temp int)

-0:34          Constant:

-0:34            12345678 (const int)

-0:35      Sequence

-0:35        move second child to first child (temp int)

-0:35          'hToBeOrNotToBe' (temp int)

-0:35          Constant:

-0:35            -1 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp uint)

-0:37          'uh0' (temp uint)

-0:37          Constant:

-0:37            0 (const uint)

-0:38      Sequence

-0:38        move second child to first child (temp uint)

-0:38          'uhg' (temp uint)

-0:38          Constant:

-0:38            12 (const uint)

-0:39      Sequence

-0:39        move second child to first child (temp uint)

-0:39          'uh000' (temp uint)

-0:39          Constant:

-0:39            0 (const uint)

-0:40      Sequence

-0:40        move second child to first child (temp uint)

-0:40          'uh1' (temp uint)

-0:40          Constant:

-0:40            1 (const uint)

-0:41      Sequence

-0:41        move second child to first child (temp uint)

-0:41          'uh2' (temp uint)

-0:41          Constant:

-0:41            2 (const uint)

-0:42      Sequence

-0:42        move second child to first child (temp uint)

-0:42          'uh300' (temp uint)

-0:42          Constant:

-0:42            768 (const uint)

-0:43      Sequence

-0:43        move second child to first child (temp uint)

-0:43          'uhABCDEF' (temp uint)

-0:43          Constant:

-0:43            11259375 (const uint)

-0:44      Sequence

-0:44        move second child to first child (temp uint)

-0:44          'uhFFFFFFFF' (temp uint)

-0:44          Constant:

-0:44            4294967295 (const uint)

-0:45      Sequence

-0:45        move second child to first child (temp uint)

-0:45          'uh12345678' (temp uint)

-0:45          Constant:

-0:45            12345678 (const uint)

-0:46      Sequence

-0:46        move second child to first child (temp uint)

-0:46          'uhToBeOrNotToBe' (temp uint)

-0:46          Constant:

-0:46            4294967295 (const uint)

-0:49      Sequence

-0:49        move second child to first child (temp int)

-0:49          'he2' (temp int)

-0:49          Constant:

-0:49            0 (const int)

-0:50      Sequence

-0:50        move second child to first child (temp int)

-0:50          'hbig' (temp int)

-0:50          Constant:

-0:50            -1 (const int)

-0:52      Sequence

-0:52        move second child to first child (temp float)

-0:52          'f1' (temp float)

-0:52          Constant:

-0:52            1.000000

-0:53      Sequence

-0:53        move second child to first child (temp float)

-0:53          'f2' (temp float)

-0:53          Constant:

-0:53            2.000000

-0:54      Sequence

-0:54        move second child to first child (temp float)

-0:54          'f3' (temp float)

-0:54          Constant:

-0:54            3.000000

-0:55      Sequence

-0:55        move second child to first child (temp float)

-0:55          'f4' (temp float)

-0:55          Constant:

-0:55            4.000000

-0:56      Sequence

-0:56        move second child to first child (temp float)

-0:56          'f5' (temp float)

-0:56          Constant:

-0:56            5.000000

-0:57      Sequence

-0:57        move second child to first child (temp float)

-0:57          'f6' (temp float)

-0:57          Constant:

-0:57            6.000000

-0:58      Sequence

-0:58        move second child to first child (temp float)

-0:58          'f7' (temp float)

-0:58          Constant:

-0:58            7.000000

-0:59      Sequence

-0:59        move second child to first child (temp float)

-0:59          'f8' (temp float)

-0:59          Constant:

-0:59            8.000000

-0:60      Sequence

-0:60        move second child to first child (temp float)

-0:60          'f9' (temp float)

-0:60          Constant:

-0:60            9.000000

-0:61      Sequence

-0:61        move second child to first child (temp float)

-0:61          'f10' (temp float)

-0:61          Constant:

-0:61            10.000000

-0:62      Sequence

-0:62        move second child to first child (temp float)

-0:62          'f11' (temp float)

-0:62          Constant:

-0:62            11.000000

-0:63      Sequence

-0:63        move second child to first child (temp float)

-0:63          'f12' (temp float)

-0:63          Constant:

-0:63            12.000000

-0:64      Sequence

-0:64        move second child to first child (temp float)

-0:64          'f543' (temp float)

-0:64          Constant:

-0:64            543.000000

-0:65      Sequence

-0:65        move second child to first child (temp float)

-0:65          'f6789' (temp float)

-0:65          Constant:

-0:65            6789.000000

-0:66      Sequence

-0:66        move second child to first child (temp float)

-0:66          'f88' (temp float)

-0:66          Constant:

-0:66            88.000000

-0:68      Sequence

-0:68        move second child to first child (temp float)

-0:68          'g1' (temp float)

-0:68          Constant:

-0:68            53876.000000

-0:69      Sequence

-0:69        move second child to first child (temp float)

-0:69          'g2' (temp float)

-0:69          Constant:

-0:69            0.040000

-0:70      Sequence

-0:70        move second child to first child (temp float)

-0:70          'g3' (temp float)

-0:70          Constant:

-0:70            100000.000000

-0:71      Sequence

-0:71        move second child to first child (temp float)

-0:71          'g4' (temp float)

-0:71          Constant:

-0:71            0.007321

-0:72      Sequence

-0:72        move second child to first child (temp float)

-0:72          'g5' (temp float)

-0:72          Constant:

-0:72            32000.000000

-0:73      Sequence

-0:73        move second child to first child (temp float)

-0:73          'g6' (temp float)

-0:73          Constant:

-0:73            0.000005

-0:74      Sequence

-0:74        move second child to first child (temp float)

-0:74          'g7' (temp float)

-0:74          Constant:

-0:74            0.450000

-0:75      Sequence

-0:75        move second child to first child (temp float)

-0:75          'g8' (temp float)

-0:75          Constant:

-0:75            60000000000.000000

-0:77      Sequence

-0:77        move second child to first child (temp double)

-0:77          'gf1' (temp double)

-0:77          Constant:

-0:77            1.000000

-0:78      Sequence

-0:78        move second child to first child (temp double)

-0:78          'gf2' (temp double)

-0:78          Constant:

-0:78            2.000000

-0:79      Sequence

-0:79        move second child to first child (temp double)

-0:79          'gf3' (temp double)

-0:79          Constant:

-0:79            3.000000

-0:80      Sequence

-0:80        move second child to first child (temp double)

-0:80          'gf4' (temp double)

-0:80          Constant:

-0:80            4.000000

-0:81      Sequence

-0:81        move second child to first child (temp float)

-0:81          'gf5' (temp float)

-0:81          Constant:

-0:81            5.000000

-0:82      Sequence

-0:82        move second child to first child (temp float)

-0:82          'gf6' (temp float)

-0:82          Constant:

-0:82            6.000000

-0:88      Sequence

-0:88        move second child to first child (temp float)

-0:88          'e5' (temp float)

-0:88          Constant:

-0:88            5.000000

-0:98  Sequence

-0:98    move second child to first child (temp uint)

-0:98      'g1' (global uint)

-0:98      Constant:

-0:98        4294967295 (const uint)

-0:99  Sequence

-0:99    move second child to first child (temp uint)

-0:99      'g2' (global uint)

-0:99      Constant:

-0:99        4294967295 (const uint)

-0:100  Sequence

-0:100    move second child to first child (temp uint)

-0:100      'g3' (global uint)

-0:100      Constant:

-0:100        4294967294 (const uint)

-0:101  Sequence

-0:101    move second child to first child (temp int)

-0:101      'g4' (global int)

-0:101      Constant:

-0:101        -1 (const int)

-0:102  Sequence

-0:102    move second child to first child (temp int)

-0:102      'g5' (global int)

-0:102      Constant:

-0:102        -1 (const int)

-0:103  Sequence

-0:103    move second child to first child (temp int)

-0:103      'g6' (global int)

-0:103      Constant:

-0:103        -2 (const int)

-0:?   Linker Objects

-0:?     'c2' (layout(location=2 ) out 4-component vector of float)

-0:?     'c3' (layout(location=3 ) out 4-component vector of float)

-0:?     'c4' (layout(location=4 ) out 4-component vector of float)

-0:?     'c5' (layout(location=5 ) out 4-component vector of float)

-0:?     'c6' (layout(location=6 ) out 4-component vector of float)

-0:?     'c7' (layout(location=7 ) out 4-component vector of float)

-0:?     'g1' (global uint)

-0:?     'g2' (global uint)

-0:?     'g3' (global uint)

-0:?     'g4' (global int)

-0:?     'g5' (global int)

-0:?     'g6' (global int)

-

+numeral.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:14: '' : octal literal digit too large 
+ERROR: 0:15: '' : octal literal digit too large 
+ERROR: 0:16: '' : octal literal digit too large 
+ERROR: 0:17: '' : octal literal too big 
+ERROR: 0:18: '' : octal literal too big 
+ERROR: 0:23: '' : octal literal digit too large 
+ERROR: 0:24: '' : octal literal digit too large 
+ERROR: 0:49: '' : bad digit in hexidecimal literal 
+ERROR: 0:50: '' : hexidecimal literal too big 
+ERROR: 0:88: '' : float literal needs a decimal point or exponent 
+ERROR: 0:98: '' : numeric literal too big 
+ERROR: 0:101: '' : numeric literal too big 
+ERROR: 12 compilation errors.  No code generated.
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:5    Sequence
+0:5      Sequence
+0:5        move second child to first child (temp int)
+0:5          'o00' (temp int)
+0:5          Constant:
+0:5            0 (const int)
+0:6      Sequence
+0:6        move second child to first child (temp int)
+0:6          'o000' (temp int)
+0:6          Constant:
+0:6            0 (const int)
+0:7      Sequence
+0:7        move second child to first child (temp int)
+0:7          'o0000' (temp int)
+0:7          Constant:
+0:7            0 (const int)
+0:8      Sequence
+0:8        move second child to first child (temp int)
+0:8          'o5' (temp int)
+0:8          Constant:
+0:8            5 (const int)
+0:9      Sequence
+0:9        move second child to first child (temp int)
+0:9          'o05' (temp int)
+0:9          Constant:
+0:9            5 (const int)
+0:10      Sequence
+0:10        move second child to first child (temp int)
+0:10          'o006' (temp int)
+0:10          Constant:
+0:10            6 (const int)
+0:11      Sequence
+0:11        move second child to first child (temp int)
+0:11          'o7' (temp int)
+0:11          Constant:
+0:11            7 (const int)
+0:12      Sequence
+0:12        move second child to first child (temp int)
+0:12          'o58' (temp int)
+0:12          Constant:
+0:12            58 (const int)
+0:13      Sequence
+0:13        move second child to first child (temp int)
+0:13          'omax' (temp int)
+0:13          Constant:
+0:13            -1 (const int)
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'o8' (temp int)
+0:14          Constant:
+0:14            0 (const int)
+0:15      Sequence
+0:15        move second child to first child (temp int)
+0:15          'o08' (temp int)
+0:15          Constant:
+0:15            0 (const int)
+0:16      Sequence
+0:16        move second child to first child (temp int)
+0:16          'o009' (temp int)
+0:16          Constant:
+0:16            0 (const int)
+0:17      Sequence
+0:17        move second child to first child (temp int)
+0:17          'obig' (temp int)
+0:17          Constant:
+0:17            995208915 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp int)
+0:18          'omax1' (temp int)
+0:18          Constant:
+0:18            536870912 (const int)
+0:20      Sequence
+0:20        move second child to first child (temp uint)
+0:20          'uo5' (temp uint)
+0:20          Constant:
+0:20            5 (const uint)
+0:21      Sequence
+0:21        move second child to first child (temp uint)
+0:21          'uo6' (temp uint)
+0:21          Constant:
+0:21            6 (const uint)
+0:22      Sequence
+0:22        move second child to first child (temp uint)
+0:22          'uo7' (temp uint)
+0:22          Constant:
+0:22            7 (const uint)
+0:23      Sequence
+0:23        move second child to first child (temp uint)
+0:23          'uo8' (temp uint)
+0:23          Constant:
+0:23            0 (const uint)
+0:24      Sequence
+0:24        move second child to first child (temp uint)
+0:24          'uo9' (temp uint)
+0:24          Constant:
+0:24            0 (const uint)
+0:26      Sequence
+0:26        move second child to first child (temp int)
+0:26          'h0' (temp int)
+0:26          Constant:
+0:26            0 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'h00' (temp int)
+0:27          Constant:
+0:27            0 (const int)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'h000' (temp int)
+0:28          Constant:
+0:28            0 (const int)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'h1' (temp int)
+0:29          Constant:
+0:29            1 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp int)
+0:30          'h2' (temp int)
+0:30          Constant:
+0:30            2 (const int)
+0:31      Sequence
+0:31        move second child to first child (temp int)
+0:31          'h300' (temp int)
+0:31          Constant:
+0:31            768 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp int)
+0:32          'hABCDEF' (temp int)
+0:32          Constant:
+0:32            11259375 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp int)
+0:33          'hFFFFFFFF' (temp int)
+0:33          Constant:
+0:33            -1 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp int)
+0:34          'h12345678' (temp int)
+0:34          Constant:
+0:34            12345678 (const int)
+0:35      Sequence
+0:35        move second child to first child (temp int)
+0:35          'hToBeOrNotToBe' (temp int)
+0:35          Constant:
+0:35            -1 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp uint)
+0:37          'uh0' (temp uint)
+0:37          Constant:
+0:37            0 (const uint)
+0:38      Sequence
+0:38        move second child to first child (temp uint)
+0:38          'uhg' (temp uint)
+0:38          Constant:
+0:38            12 (const uint)
+0:39      Sequence
+0:39        move second child to first child (temp uint)
+0:39          'uh000' (temp uint)
+0:39          Constant:
+0:39            0 (const uint)
+0:40      Sequence
+0:40        move second child to first child (temp uint)
+0:40          'uh1' (temp uint)
+0:40          Constant:
+0:40            1 (const uint)
+0:41      Sequence
+0:41        move second child to first child (temp uint)
+0:41          'uh2' (temp uint)
+0:41          Constant:
+0:41            2 (const uint)
+0:42      Sequence
+0:42        move second child to first child (temp uint)
+0:42          'uh300' (temp uint)
+0:42          Constant:
+0:42            768 (const uint)
+0:43      Sequence
+0:43        move second child to first child (temp uint)
+0:43          'uhABCDEF' (temp uint)
+0:43          Constant:
+0:43            11259375 (const uint)
+0:44      Sequence
+0:44        move second child to first child (temp uint)
+0:44          'uhFFFFFFFF' (temp uint)
+0:44          Constant:
+0:44            4294967295 (const uint)
+0:45      Sequence
+0:45        move second child to first child (temp uint)
+0:45          'uh12345678' (temp uint)
+0:45          Constant:
+0:45            12345678 (const uint)
+0:46      Sequence
+0:46        move second child to first child (temp uint)
+0:46          'uhToBeOrNotToBe' (temp uint)
+0:46          Constant:
+0:46            4294967295 (const uint)
+0:49      Sequence
+0:49        move second child to first child (temp int)
+0:49          'he2' (temp int)
+0:49          Constant:
+0:49            0 (const int)
+0:50      Sequence
+0:50        move second child to first child (temp int)
+0:50          'hbig' (temp int)
+0:50          Constant:
+0:50            -1 (const int)
+0:52      Sequence
+0:52        move second child to first child (temp float)
+0:52          'f1' (temp float)
+0:52          Constant:
+0:52            1.000000
+0:53      Sequence
+0:53        move second child to first child (temp float)
+0:53          'f2' (temp float)
+0:53          Constant:
+0:53            2.000000
+0:54      Sequence
+0:54        move second child to first child (temp float)
+0:54          'f3' (temp float)
+0:54          Constant:
+0:54            3.000000
+0:55      Sequence
+0:55        move second child to first child (temp float)
+0:55          'f4' (temp float)
+0:55          Constant:
+0:55            4.000000
+0:56      Sequence
+0:56        move second child to first child (temp float)
+0:56          'f5' (temp float)
+0:56          Constant:
+0:56            5.000000
+0:57      Sequence
+0:57        move second child to first child (temp float)
+0:57          'f6' (temp float)
+0:57          Constant:
+0:57            6.000000
+0:58      Sequence
+0:58        move second child to first child (temp float)
+0:58          'f7' (temp float)
+0:58          Constant:
+0:58            7.000000
+0:59      Sequence
+0:59        move second child to first child (temp float)
+0:59          'f8' (temp float)
+0:59          Constant:
+0:59            8.000000
+0:60      Sequence
+0:60        move second child to first child (temp float)
+0:60          'f9' (temp float)
+0:60          Constant:
+0:60            9.000000
+0:61      Sequence
+0:61        move second child to first child (temp float)
+0:61          'f10' (temp float)
+0:61          Constant:
+0:61            10.000000
+0:62      Sequence
+0:62        move second child to first child (temp float)
+0:62          'f11' (temp float)
+0:62          Constant:
+0:62            11.000000
+0:63      Sequence
+0:63        move second child to first child (temp float)
+0:63          'f12' (temp float)
+0:63          Constant:
+0:63            12.000000
+0:64      Sequence
+0:64        move second child to first child (temp float)
+0:64          'f543' (temp float)
+0:64          Constant:
+0:64            543.000000
+0:65      Sequence
+0:65        move second child to first child (temp float)
+0:65          'f6789' (temp float)
+0:65          Constant:
+0:65            6789.000000
+0:66      Sequence
+0:66        move second child to first child (temp float)
+0:66          'f88' (temp float)
+0:66          Constant:
+0:66            88.000000
+0:68      Sequence
+0:68        move second child to first child (temp float)
+0:68          'g1' (temp float)
+0:68          Constant:
+0:68            53876.000000
+0:69      Sequence
+0:69        move second child to first child (temp float)
+0:69          'g2' (temp float)
+0:69          Constant:
+0:69            0.040000
+0:70      Sequence
+0:70        move second child to first child (temp float)
+0:70          'g3' (temp float)
+0:70          Constant:
+0:70            100000.000000
+0:71      Sequence
+0:71        move second child to first child (temp float)
+0:71          'g4' (temp float)
+0:71          Constant:
+0:71            0.007321
+0:72      Sequence
+0:72        move second child to first child (temp float)
+0:72          'g5' (temp float)
+0:72          Constant:
+0:72            32000.000000
+0:73      Sequence
+0:73        move second child to first child (temp float)
+0:73          'g6' (temp float)
+0:73          Constant:
+0:73            0.000005
+0:74      Sequence
+0:74        move second child to first child (temp float)
+0:74          'g7' (temp float)
+0:74          Constant:
+0:74            0.450000
+0:75      Sequence
+0:75        move second child to first child (temp float)
+0:75          'g8' (temp float)
+0:75          Constant:
+0:75            60000000000.000000
+0:77      Sequence
+0:77        move second child to first child (temp double)
+0:77          'gf1' (temp double)
+0:77          Constant:
+0:77            1.000000
+0:78      Sequence
+0:78        move second child to first child (temp double)
+0:78          'gf2' (temp double)
+0:78          Constant:
+0:78            2.000000
+0:79      Sequence
+0:79        move second child to first child (temp double)
+0:79          'gf3' (temp double)
+0:79          Constant:
+0:79            3.000000
+0:80      Sequence
+0:80        move second child to first child (temp double)
+0:80          'gf4' (temp double)
+0:80          Constant:
+0:80            4.000000
+0:81      Sequence
+0:81        move second child to first child (temp float)
+0:81          'gf5' (temp float)
+0:81          Constant:
+0:81            5.000000
+0:82      Sequence
+0:82        move second child to first child (temp float)
+0:82          'gf6' (temp float)
+0:82          Constant:
+0:82            6.000000
+0:88      Sequence
+0:88        move second child to first child (temp float)
+0:88          'e5' (temp float)
+0:88          Constant:
+0:88            5.000000
+0:98  Sequence
+0:98    move second child to first child (temp uint)
+0:98      'g1' (global uint)
+0:98      Constant:
+0:98        4294967295 (const uint)
+0:99  Sequence
+0:99    move second child to first child (temp uint)
+0:99      'g2' (global uint)
+0:99      Constant:
+0:99        4294967295 (const uint)
+0:100  Sequence
+0:100    move second child to first child (temp uint)
+0:100      'g3' (global uint)
+0:100      Constant:
+0:100        4294967294 (const uint)
+0:101  Sequence
+0:101    move second child to first child (temp int)
+0:101      'g4' (global int)
+0:101      Constant:
+0:101        -1 (const int)
+0:102  Sequence
+0:102    move second child to first child (temp int)
+0:102      'g5' (global int)
+0:102      Constant:
+0:102        -1 (const int)
+0:103  Sequence
+0:103    move second child to first child (temp int)
+0:103      'g6' (global int)
+0:103      Constant:
+0:103        -2 (const int)
+0:?   Linker Objects
+0:?     'c2' (layout(location=2 ) out 4-component vector of float)
+0:?     'c3' (layout(location=3 ) out 4-component vector of float)
+0:?     'c4' (layout(location=4 ) out 4-component vector of float)
+0:?     'c5' (layout(location=5 ) out 4-component vector of float)
+0:?     'c6' (layout(location=6 ) out 4-component vector of float)
+0:?     'c7' (layout(location=7 ) out 4-component vector of float)
+0:?     'g1' (global uint)
+0:?     'g2' (global uint)
+0:?     'g3' (global uint)
+0:?     'g4' (global int)
+0:?     'g5' (global int)
+0:?     'g6' (global int)
+
+
+Linked fragment stage:
+
+
+Shader version: 400
+ERROR: node is still EOpNull!
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:5    Sequence
+0:5      Sequence
+0:5        move second child to first child (temp int)
+0:5          'o00' (temp int)
+0:5          Constant:
+0:5            0 (const int)
+0:6      Sequence
+0:6        move second child to first child (temp int)
+0:6          'o000' (temp int)
+0:6          Constant:
+0:6            0 (const int)
+0:7      Sequence
+0:7        move second child to first child (temp int)
+0:7          'o0000' (temp int)
+0:7          Constant:
+0:7            0 (const int)
+0:8      Sequence
+0:8        move second child to first child (temp int)
+0:8          'o5' (temp int)
+0:8          Constant:
+0:8            5 (const int)
+0:9      Sequence
+0:9        move second child to first child (temp int)
+0:9          'o05' (temp int)
+0:9          Constant:
+0:9            5 (const int)
+0:10      Sequence
+0:10        move second child to first child (temp int)
+0:10          'o006' (temp int)
+0:10          Constant:
+0:10            6 (const int)
+0:11      Sequence
+0:11        move second child to first child (temp int)
+0:11          'o7' (temp int)
+0:11          Constant:
+0:11            7 (const int)
+0:12      Sequence
+0:12        move second child to first child (temp int)
+0:12          'o58' (temp int)
+0:12          Constant:
+0:12            58 (const int)
+0:13      Sequence
+0:13        move second child to first child (temp int)
+0:13          'omax' (temp int)
+0:13          Constant:
+0:13            -1 (const int)
+0:14      Sequence
+0:14        move second child to first child (temp int)
+0:14          'o8' (temp int)
+0:14          Constant:
+0:14            0 (const int)
+0:15      Sequence
+0:15        move second child to first child (temp int)
+0:15          'o08' (temp int)
+0:15          Constant:
+0:15            0 (const int)
+0:16      Sequence
+0:16        move second child to first child (temp int)
+0:16          'o009' (temp int)
+0:16          Constant:
+0:16            0 (const int)
+0:17      Sequence
+0:17        move second child to first child (temp int)
+0:17          'obig' (temp int)
+0:17          Constant:
+0:17            995208915 (const int)
+0:18      Sequence
+0:18        move second child to first child (temp int)
+0:18          'omax1' (temp int)
+0:18          Constant:
+0:18            536870912 (const int)
+0:20      Sequence
+0:20        move second child to first child (temp uint)
+0:20          'uo5' (temp uint)
+0:20          Constant:
+0:20            5 (const uint)
+0:21      Sequence
+0:21        move second child to first child (temp uint)
+0:21          'uo6' (temp uint)
+0:21          Constant:
+0:21            6 (const uint)
+0:22      Sequence
+0:22        move second child to first child (temp uint)
+0:22          'uo7' (temp uint)
+0:22          Constant:
+0:22            7 (const uint)
+0:23      Sequence
+0:23        move second child to first child (temp uint)
+0:23          'uo8' (temp uint)
+0:23          Constant:
+0:23            0 (const uint)
+0:24      Sequence
+0:24        move second child to first child (temp uint)
+0:24          'uo9' (temp uint)
+0:24          Constant:
+0:24            0 (const uint)
+0:26      Sequence
+0:26        move second child to first child (temp int)
+0:26          'h0' (temp int)
+0:26          Constant:
+0:26            0 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp int)
+0:27          'h00' (temp int)
+0:27          Constant:
+0:27            0 (const int)
+0:28      Sequence
+0:28        move second child to first child (temp int)
+0:28          'h000' (temp int)
+0:28          Constant:
+0:28            0 (const int)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'h1' (temp int)
+0:29          Constant:
+0:29            1 (const int)
+0:30      Sequence
+0:30        move second child to first child (temp int)
+0:30          'h2' (temp int)
+0:30          Constant:
+0:30            2 (const int)
+0:31      Sequence
+0:31        move second child to first child (temp int)
+0:31          'h300' (temp int)
+0:31          Constant:
+0:31            768 (const int)
+0:32      Sequence
+0:32        move second child to first child (temp int)
+0:32          'hABCDEF' (temp int)
+0:32          Constant:
+0:32            11259375 (const int)
+0:33      Sequence
+0:33        move second child to first child (temp int)
+0:33          'hFFFFFFFF' (temp int)
+0:33          Constant:
+0:33            -1 (const int)
+0:34      Sequence
+0:34        move second child to first child (temp int)
+0:34          'h12345678' (temp int)
+0:34          Constant:
+0:34            12345678 (const int)
+0:35      Sequence
+0:35        move second child to first child (temp int)
+0:35          'hToBeOrNotToBe' (temp int)
+0:35          Constant:
+0:35            -1 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp uint)
+0:37          'uh0' (temp uint)
+0:37          Constant:
+0:37            0 (const uint)
+0:38      Sequence
+0:38        move second child to first child (temp uint)
+0:38          'uhg' (temp uint)
+0:38          Constant:
+0:38            12 (const uint)
+0:39      Sequence
+0:39        move second child to first child (temp uint)
+0:39          'uh000' (temp uint)
+0:39          Constant:
+0:39            0 (const uint)
+0:40      Sequence
+0:40        move second child to first child (temp uint)
+0:40          'uh1' (temp uint)
+0:40          Constant:
+0:40            1 (const uint)
+0:41      Sequence
+0:41        move second child to first child (temp uint)
+0:41          'uh2' (temp uint)
+0:41          Constant:
+0:41            2 (const uint)
+0:42      Sequence
+0:42        move second child to first child (temp uint)
+0:42          'uh300' (temp uint)
+0:42          Constant:
+0:42            768 (const uint)
+0:43      Sequence
+0:43        move second child to first child (temp uint)
+0:43          'uhABCDEF' (temp uint)
+0:43          Constant:
+0:43            11259375 (const uint)
+0:44      Sequence
+0:44        move second child to first child (temp uint)
+0:44          'uhFFFFFFFF' (temp uint)
+0:44          Constant:
+0:44            4294967295 (const uint)
+0:45      Sequence
+0:45        move second child to first child (temp uint)
+0:45          'uh12345678' (temp uint)
+0:45          Constant:
+0:45            12345678 (const uint)
+0:46      Sequence
+0:46        move second child to first child (temp uint)
+0:46          'uhToBeOrNotToBe' (temp uint)
+0:46          Constant:
+0:46            4294967295 (const uint)
+0:49      Sequence
+0:49        move second child to first child (temp int)
+0:49          'he2' (temp int)
+0:49          Constant:
+0:49            0 (const int)
+0:50      Sequence
+0:50        move second child to first child (temp int)
+0:50          'hbig' (temp int)
+0:50          Constant:
+0:50            -1 (const int)
+0:52      Sequence
+0:52        move second child to first child (temp float)
+0:52          'f1' (temp float)
+0:52          Constant:
+0:52            1.000000
+0:53      Sequence
+0:53        move second child to first child (temp float)
+0:53          'f2' (temp float)
+0:53          Constant:
+0:53            2.000000
+0:54      Sequence
+0:54        move second child to first child (temp float)
+0:54          'f3' (temp float)
+0:54          Constant:
+0:54            3.000000
+0:55      Sequence
+0:55        move second child to first child (temp float)
+0:55          'f4' (temp float)
+0:55          Constant:
+0:55            4.000000
+0:56      Sequence
+0:56        move second child to first child (temp float)
+0:56          'f5' (temp float)
+0:56          Constant:
+0:56            5.000000
+0:57      Sequence
+0:57        move second child to first child (temp float)
+0:57          'f6' (temp float)
+0:57          Constant:
+0:57            6.000000
+0:58      Sequence
+0:58        move second child to first child (temp float)
+0:58          'f7' (temp float)
+0:58          Constant:
+0:58            7.000000
+0:59      Sequence
+0:59        move second child to first child (temp float)
+0:59          'f8' (temp float)
+0:59          Constant:
+0:59            8.000000
+0:60      Sequence
+0:60        move second child to first child (temp float)
+0:60          'f9' (temp float)
+0:60          Constant:
+0:60            9.000000
+0:61      Sequence
+0:61        move second child to first child (temp float)
+0:61          'f10' (temp float)
+0:61          Constant:
+0:61            10.000000
+0:62      Sequence
+0:62        move second child to first child (temp float)
+0:62          'f11' (temp float)
+0:62          Constant:
+0:62            11.000000
+0:63      Sequence
+0:63        move second child to first child (temp float)
+0:63          'f12' (temp float)
+0:63          Constant:
+0:63            12.000000
+0:64      Sequence
+0:64        move second child to first child (temp float)
+0:64          'f543' (temp float)
+0:64          Constant:
+0:64            543.000000
+0:65      Sequence
+0:65        move second child to first child (temp float)
+0:65          'f6789' (temp float)
+0:65          Constant:
+0:65            6789.000000
+0:66      Sequence
+0:66        move second child to first child (temp float)
+0:66          'f88' (temp float)
+0:66          Constant:
+0:66            88.000000
+0:68      Sequence
+0:68        move second child to first child (temp float)
+0:68          'g1' (temp float)
+0:68          Constant:
+0:68            53876.000000
+0:69      Sequence
+0:69        move second child to first child (temp float)
+0:69          'g2' (temp float)
+0:69          Constant:
+0:69            0.040000
+0:70      Sequence
+0:70        move second child to first child (temp float)
+0:70          'g3' (temp float)
+0:70          Constant:
+0:70            100000.000000
+0:71      Sequence
+0:71        move second child to first child (temp float)
+0:71          'g4' (temp float)
+0:71          Constant:
+0:71            0.007321
+0:72      Sequence
+0:72        move second child to first child (temp float)
+0:72          'g5' (temp float)
+0:72          Constant:
+0:72            32000.000000
+0:73      Sequence
+0:73        move second child to first child (temp float)
+0:73          'g6' (temp float)
+0:73          Constant:
+0:73            0.000005
+0:74      Sequence
+0:74        move second child to first child (temp float)
+0:74          'g7' (temp float)
+0:74          Constant:
+0:74            0.450000
+0:75      Sequence
+0:75        move second child to first child (temp float)
+0:75          'g8' (temp float)
+0:75          Constant:
+0:75            60000000000.000000
+0:77      Sequence
+0:77        move second child to first child (temp double)
+0:77          'gf1' (temp double)
+0:77          Constant:
+0:77            1.000000
+0:78      Sequence
+0:78        move second child to first child (temp double)
+0:78          'gf2' (temp double)
+0:78          Constant:
+0:78            2.000000
+0:79      Sequence
+0:79        move second child to first child (temp double)
+0:79          'gf3' (temp double)
+0:79          Constant:
+0:79            3.000000
+0:80      Sequence
+0:80        move second child to first child (temp double)
+0:80          'gf4' (temp double)
+0:80          Constant:
+0:80            4.000000
+0:81      Sequence
+0:81        move second child to first child (temp float)
+0:81          'gf5' (temp float)
+0:81          Constant:
+0:81            5.000000
+0:82      Sequence
+0:82        move second child to first child (temp float)
+0:82          'gf6' (temp float)
+0:82          Constant:
+0:82            6.000000
+0:88      Sequence
+0:88        move second child to first child (temp float)
+0:88          'e5' (temp float)
+0:88          Constant:
+0:88            5.000000
+0:98  Sequence
+0:98    move second child to first child (temp uint)
+0:98      'g1' (global uint)
+0:98      Constant:
+0:98        4294967295 (const uint)
+0:99  Sequence
+0:99    move second child to first child (temp uint)
+0:99      'g2' (global uint)
+0:99      Constant:
+0:99        4294967295 (const uint)
+0:100  Sequence
+0:100    move second child to first child (temp uint)
+0:100      'g3' (global uint)
+0:100      Constant:
+0:100        4294967294 (const uint)
+0:101  Sequence
+0:101    move second child to first child (temp int)
+0:101      'g4' (global int)
+0:101      Constant:
+0:101        -1 (const int)
+0:102  Sequence
+0:102    move second child to first child (temp int)
+0:102      'g5' (global int)
+0:102      Constant:
+0:102        -1 (const int)
+0:103  Sequence
+0:103    move second child to first child (temp int)
+0:103      'g6' (global int)
+0:103      Constant:
+0:103        -2 (const int)
+0:?   Linker Objects
+0:?     'c2' (layout(location=2 ) out 4-component vector of float)
+0:?     'c3' (layout(location=3 ) out 4-component vector of float)
+0:?     'c4' (layout(location=4 ) out 4-component vector of float)
+0:?     'c5' (layout(location=5 ) out 4-component vector of float)
+0:?     'c6' (layout(location=6 ) out 4-component vector of float)
+0:?     'c7' (layout(location=7 ) out 4-component vector of float)
+0:?     'g1' (global uint)
+0:?     'g2' (global uint)
+0:?     'g3' (global uint)
+0:?     'g4' (global int)
+0:?     'g5' (global int)
+0:?     'g6' (global int)
+
diff --git a/Test/baseResults/pointCoord.frag.out b/Test/baseResults/pointCoord.frag.out
index 575b1aa..633d8b9 100644
--- a/Test/baseResults/pointCoord.frag.out
+++ b/Test/baseResults/pointCoord.frag.out
@@ -1,69 +1,69 @@
-pointCoord.frag

-Shader version: 100

-0:? Sequence

-0:5  Function Definition: main( (global void)

-0:5    Function Parameters: 

-0:?     Sequence

-0:9      Test condition and select (temp void)

-0:9        Condition

-0:9        Compare Less Than (temp bool)

-0:9          length (global mediump float)

-0:9            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)

-0:9          Constant:

-0:9            0.300000

-0:9        true case

-0:10        move second child to first child (temp highp 4-component vector of float)

-0:10          'color' (temp highp 4-component vector of float)

-0:10          texture (global lowp 4-component vector of float)

-0:10            'sampler' (uniform lowp sampler2D)

-0:10            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)

-0:9        false case

-0:12        move second child to first child (temp highp 4-component vector of float)

-0:12          'color' (temp highp 4-component vector of float)

-0:12          Constant:

-0:12            0.000000

-0:12            0.000000

-0:12            0.000000

-0:12            0.000000

-0:14      move second child to first child (temp highp 4-component vector of float)

-0:14        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)

-0:14        'color' (temp highp 4-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform lowp sampler2D)

-

-

-Linked fragment stage:

-

-

-Shader version: 100

-0:? Sequence

-0:5  Function Definition: main( (global void)

-0:5    Function Parameters: 

-0:?     Sequence

-0:9      Test condition and select (temp void)

-0:9        Condition

-0:9        Compare Less Than (temp bool)

-0:9          length (global mediump float)

-0:9            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)

-0:9          Constant:

-0:9            0.300000

-0:9        true case

-0:10        move second child to first child (temp highp 4-component vector of float)

-0:10          'color' (temp highp 4-component vector of float)

-0:10          texture (global lowp 4-component vector of float)

-0:10            'sampler' (uniform lowp sampler2D)

-0:10            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)

-0:9        false case

-0:12        move second child to first child (temp highp 4-component vector of float)

-0:12          'color' (temp highp 4-component vector of float)

-0:12          Constant:

-0:12            0.000000

-0:12            0.000000

-0:12            0.000000

-0:12            0.000000

-0:14      move second child to first child (temp highp 4-component vector of float)

-0:14        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)

-0:14        'color' (temp highp 4-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform lowp sampler2D)

-

+pointCoord.frag
+Shader version: 100
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:9      Test condition and select (temp void)
+0:9        Condition
+0:9        Compare Less Than (temp bool)
+0:9          length (global mediump float)
+0:9            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9          Constant:
+0:9            0.300000
+0:9        true case
+0:10        move second child to first child (temp highp 4-component vector of float)
+0:10          'color' (temp highp 4-component vector of float)
+0:10          texture (global lowp 4-component vector of float)
+0:10            'sampler' (uniform lowp sampler2D)
+0:10            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9        false case
+0:12        move second child to first child (temp highp 4-component vector of float)
+0:12          'color' (temp highp 4-component vector of float)
+0:12          Constant:
+0:12            0.000000
+0:12            0.000000
+0:12            0.000000
+0:12            0.000000
+0:14      move second child to first child (temp highp 4-component vector of float)
+0:14        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:14        'color' (temp highp 4-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform lowp sampler2D)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:9      Test condition and select (temp void)
+0:9        Condition
+0:9        Compare Less Than (temp bool)
+0:9          length (global mediump float)
+0:9            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9          Constant:
+0:9            0.300000
+0:9        true case
+0:10        move second child to first child (temp highp 4-component vector of float)
+0:10          'color' (temp highp 4-component vector of float)
+0:10          texture (global lowp 4-component vector of float)
+0:10            'sampler' (uniform lowp sampler2D)
+0:10            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
+0:9        false case
+0:12        move second child to first child (temp highp 4-component vector of float)
+0:12          'color' (temp highp 4-component vector of float)
+0:12          Constant:
+0:12            0.000000
+0:12            0.000000
+0:12            0.000000
+0:12            0.000000
+0:14      move second child to first child (temp highp 4-component vector of float)
+0:14        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:14        'color' (temp highp 4-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform lowp sampler2D)
+
diff --git a/Test/baseResults/precision.frag.out b/Test/baseResults/precision.frag.out
index 6733dee..79485b4 100644
--- a/Test/baseResults/precision.frag.out
+++ b/Test/baseResults/precision.frag.out
@@ -1,245 +1,245 @@
-precision.frag

-ERROR: 0:3: 'float' : type requires declaration of default precision qualifier 

-ERROR: 0:18: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:19: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:21: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:72: 'bool' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:75: 'structure' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 

-ERROR: 0:76: 'bool' : type cannot have precision qualifier 

-ERROR: 7 compilation errors.  No code generated.

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:5  Function Definition: foo(vf3; (global lowp 2-component vector of float)

-0:5    Function Parameters: 

-0:5      'mv3' (in mediump 3-component vector of float)

-0:?     Sequence

-0:8      Branch: Return with expression

-0:8        vector swizzle (temp highp 2-component vector of float)

-0:8          'hv4' (temp highp 4-component vector of float)

-0:8          Sequence

-0:8            Constant:

-0:8              0 (const int)

-0:8            Constant:

-0:8              1 (const int)

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      Sequence

-0:27        move second child to first child (temp highp int)

-0:27          'sum' (temp lowp int)

-0:27          add (temp highp int)

-0:27            'global_medium' (global mediump int)

-0:27            'global_high' (global highp int)

-0:29      move second child to first child (temp mediump 4-component vector of float)

-0:29        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)

-0:29        Construct vec4 (temp mediump 4-component vector of float)

-0:29          'color' (smooth in mediump 3-component vector of float)

-0:29          Constant:

-0:29            1.000000

-0:32      add second child into first child (temp highp int)

-0:32        'sum' (temp lowp int)

-0:32        'level1_high' (temp highp int)

-0:36      add second child into first child (temp lowp int)

-0:36        'sum' (temp lowp int)

-0:36        'level1_low' (temp lowp int)

-0:41      Sequence

-0:41        move second child to first child (temp mediump float)

-0:41          'd' (temp lowp float)

-0:41          distance (global mediump float)

-0:41            'arg1' (temp lowp float)

-0:41            'arg2' (temp mediump float)

-0:?       Sequence

-0:45        add second child into first child (temp lowp int)

-0:45          'sum' (temp lowp int)

-0:45          'level2_low' (temp lowp int)

-0:49        add second child into first child (temp highp int)

-0:49          'sum' (temp lowp int)

-0:49          'level2_high' (temp highp int)

-0:58        Loop with condition not tested first

-0:58          Loop Condition

-0:58          Constant:

-0:58            true (const bool)

-0:58          Loop Body

-0:51          Sequence

-0:51            Test condition and select (temp void)

-0:51              Condition

-0:51              Constant:

-0:51                true (const bool)

-0:51              true case

-0:?               Sequence

-0:54                add second child into first child (temp mediump int)

-0:54                  'sum' (temp lowp int)

-0:54                  'level4_medium' (temp mediump int)

-0:57            add second child into first child (temp highp int)

-0:57              'sum' (temp lowp int)

-0:57              'level3_high' (temp highp int)

-0:60        add second child into first child (temp highp int)

-0:60          'sum' (temp lowp int)

-0:60          'level2_high2' (temp highp int)

-0:63      add second child into first child (temp lowp int)

-0:63        'sum' (temp lowp int)

-0:63        'level1_low3' (temp lowp int)

-0:65      add second child into first child (temp lowp int)

-0:65        'sum' (temp lowp int)

-0:65        add (temp lowp int)

-0:65          Constant:

-0:65            4 (const int)

-0:65          direct index (temp lowp int)

-0:65            add (temp lowp 2-component vector of int)

-0:65              component-wise multiply (temp lowp 2-component vector of int)

-0:65                Construct ivec2 (temp lowp 2-component vector of int)

-0:65                  'level1_low3' (temp lowp int)

-0:65                Construct ivec2 (temp lowp 2-component vector of int)

-0:65                  'level1_high' (temp highp int)

-0:65              Construct ivec2 (temp lowp 2-component vector of int)

-0:65                Comma (temp highp int)

-0:65                  'level1_low3' (temp lowp int)

-0:65                  'level1_high' (temp highp int)

-0:65            Constant:

-0:65              0 (const int)

-0:67      texture (global lowp 4-component vector of float)

-0:67        'samplerLow' (uniform lowp sampler2D)

-0:67        Constant:

-0:67          0.100000

-0:67          0.200000

-0:68      texture (global mediump 4-component vector of float)

-0:68        'samplerMed' (uniform mediump sampler2D)

-0:68        Constant:

-0:68          0.100000

-0:68          0.200000

-0:69      texture (global highp 4-component vector of float)

-0:69        'samplerHigh' (uniform highp sampler2D)

-0:69        Constant:

-0:69          0.100000

-0:69          0.200000

-0:?   Linker Objects

-0:?     'color' (smooth in mediump 3-component vector of float)

-0:?     'global_medium' (global mediump int)

-0:?     'samplerLow' (uniform lowp sampler2D)

-0:?     'samplerMed' (uniform mediump sampler2D)

-0:?     'samplerHigh' (uniform highp sampler2D)

-0:?     'uint' (global mediump 4-component vector of float)

-0:?     'global_high' (global highp int)

-0:?     'b2' (global mediump 2-component vector of bool)

-

-

-Linked fragment stage:

-

-

-Shader version: 100

-ERROR: node is still EOpNull!

-0:5  Function Definition: foo(vf3; (global lowp 2-component vector of float)

-0:5    Function Parameters: 

-0:5      'mv3' (in mediump 3-component vector of float)

-0:?     Sequence

-0:8      Branch: Return with expression

-0:8        vector swizzle (temp highp 2-component vector of float)

-0:8          'hv4' (temp highp 4-component vector of float)

-0:8          Sequence

-0:8            Constant:

-0:8              0 (const int)

-0:8            Constant:

-0:8              1 (const int)

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      Sequence

-0:27        move second child to first child (temp highp int)

-0:27          'sum' (temp lowp int)

-0:27          add (temp highp int)

-0:27            'global_medium' (global mediump int)

-0:27            'global_high' (global highp int)

-0:29      move second child to first child (temp mediump 4-component vector of float)

-0:29        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)

-0:29        Construct vec4 (temp mediump 4-component vector of float)

-0:29          'color' (smooth in mediump 3-component vector of float)

-0:29          Constant:

-0:29            1.000000

-0:32      add second child into first child (temp highp int)

-0:32        'sum' (temp lowp int)

-0:32        'level1_high' (temp highp int)

-0:36      add second child into first child (temp lowp int)

-0:36        'sum' (temp lowp int)

-0:36        'level1_low' (temp lowp int)

-0:41      Sequence

-0:41        move second child to first child (temp mediump float)

-0:41          'd' (temp lowp float)

-0:41          distance (global mediump float)

-0:41            'arg1' (temp lowp float)

-0:41            'arg2' (temp mediump float)

-0:?       Sequence

-0:45        add second child into first child (temp lowp int)

-0:45          'sum' (temp lowp int)

-0:45          'level2_low' (temp lowp int)

-0:49        add second child into first child (temp highp int)

-0:49          'sum' (temp lowp int)

-0:49          'level2_high' (temp highp int)

-0:58        Loop with condition not tested first

-0:58          Loop Condition

-0:58          Constant:

-0:58            true (const bool)

-0:58          Loop Body

-0:51          Sequence

-0:51            Test condition and select (temp void)

-0:51              Condition

-0:51              Constant:

-0:51                true (const bool)

-0:51              true case

-0:?               Sequence

-0:54                add second child into first child (temp mediump int)

-0:54                  'sum' (temp lowp int)

-0:54                  'level4_medium' (temp mediump int)

-0:57            add second child into first child (temp highp int)

-0:57              'sum' (temp lowp int)

-0:57              'level3_high' (temp highp int)

-0:60        add second child into first child (temp highp int)

-0:60          'sum' (temp lowp int)

-0:60          'level2_high2' (temp highp int)

-0:63      add second child into first child (temp lowp int)

-0:63        'sum' (temp lowp int)

-0:63        'level1_low3' (temp lowp int)

-0:65      add second child into first child (temp lowp int)

-0:65        'sum' (temp lowp int)

-0:65        add (temp lowp int)

-0:65          Constant:

-0:65            4 (const int)

-0:65          direct index (temp lowp int)

-0:65            add (temp lowp 2-component vector of int)

-0:65              component-wise multiply (temp lowp 2-component vector of int)

-0:65                Construct ivec2 (temp lowp 2-component vector of int)

-0:65                  'level1_low3' (temp lowp int)

-0:65                Construct ivec2 (temp lowp 2-component vector of int)

-0:65                  'level1_high' (temp highp int)

-0:65              Construct ivec2 (temp lowp 2-component vector of int)

-0:65                Comma (temp highp int)

-0:65                  'level1_low3' (temp lowp int)

-0:65                  'level1_high' (temp highp int)

-0:65            Constant:

-0:65              0 (const int)

-0:67      texture (global lowp 4-component vector of float)

-0:67        'samplerLow' (uniform lowp sampler2D)

-0:67        Constant:

-0:67          0.100000

-0:67          0.200000

-0:68      texture (global mediump 4-component vector of float)

-0:68        'samplerMed' (uniform mediump sampler2D)

-0:68        Constant:

-0:68          0.100000

-0:68          0.200000

-0:69      texture (global highp 4-component vector of float)

-0:69        'samplerHigh' (uniform highp sampler2D)

-0:69        Constant:

-0:69          0.100000

-0:69          0.200000

-0:?   Linker Objects

-0:?     'color' (smooth in mediump 3-component vector of float)

-0:?     'global_medium' (global mediump int)

-0:?     'samplerLow' (uniform lowp sampler2D)

-0:?     'samplerMed' (uniform mediump sampler2D)

-0:?     'samplerHigh' (uniform highp sampler2D)

-0:?     'uint' (global mediump 4-component vector of float)

-0:?     'global_high' (global highp int)

-0:?     'b2' (global mediump 2-component vector of bool)

-

+precision.frag
+ERROR: 0:3: 'float' : type requires declaration of default precision qualifier 
+ERROR: 0:18: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:19: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:21: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:72: 'bool' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:75: 'structure' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type 
+ERROR: 0:76: 'bool' : type cannot have precision qualifier 
+ERROR: 7 compilation errors.  No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:5  Function Definition: foo(vf3; (global lowp 2-component vector of float)
+0:5    Function Parameters: 
+0:5      'mv3' (in mediump 3-component vector of float)
+0:?     Sequence
+0:8      Branch: Return with expression
+0:8        vector swizzle (temp highp 2-component vector of float)
+0:8          'hv4' (temp highp 4-component vector of float)
+0:8          Sequence
+0:8            Constant:
+0:8              0 (const int)
+0:8            Constant:
+0:8              1 (const int)
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      Sequence
+0:27        move second child to first child (temp highp int)
+0:27          'sum' (temp lowp int)
+0:27          add (temp highp int)
+0:27            'global_medium' (global mediump int)
+0:27            'global_high' (global highp int)
+0:29      move second child to first child (temp mediump 4-component vector of float)
+0:29        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:29        Construct vec4 (temp mediump 4-component vector of float)
+0:29          'color' (smooth in mediump 3-component vector of float)
+0:29          Constant:
+0:29            1.000000
+0:32      add second child into first child (temp highp int)
+0:32        'sum' (temp lowp int)
+0:32        'level1_high' (temp highp int)
+0:36      add second child into first child (temp lowp int)
+0:36        'sum' (temp lowp int)
+0:36        'level1_low' (temp lowp int)
+0:41      Sequence
+0:41        move second child to first child (temp mediump float)
+0:41          'd' (temp lowp float)
+0:41          distance (global mediump float)
+0:41            'arg1' (temp lowp float)
+0:41            'arg2' (temp mediump float)
+0:?       Sequence
+0:45        add second child into first child (temp lowp int)
+0:45          'sum' (temp lowp int)
+0:45          'level2_low' (temp lowp int)
+0:49        add second child into first child (temp highp int)
+0:49          'sum' (temp lowp int)
+0:49          'level2_high' (temp highp int)
+0:58        Loop with condition not tested first
+0:58          Loop Condition
+0:58          Constant:
+0:58            true (const bool)
+0:58          Loop Body
+0:51          Sequence
+0:51            Test condition and select (temp void)
+0:51              Condition
+0:51              Constant:
+0:51                true (const bool)
+0:51              true case
+0:?               Sequence
+0:54                add second child into first child (temp mediump int)
+0:54                  'sum' (temp lowp int)
+0:54                  'level4_medium' (temp mediump int)
+0:57            add second child into first child (temp highp int)
+0:57              'sum' (temp lowp int)
+0:57              'level3_high' (temp highp int)
+0:60        add second child into first child (temp highp int)
+0:60          'sum' (temp lowp int)
+0:60          'level2_high2' (temp highp int)
+0:63      add second child into first child (temp lowp int)
+0:63        'sum' (temp lowp int)
+0:63        'level1_low3' (temp lowp int)
+0:65      add second child into first child (temp lowp int)
+0:65        'sum' (temp lowp int)
+0:65        add (temp lowp int)
+0:65          Constant:
+0:65            4 (const int)
+0:65          direct index (temp lowp int)
+0:65            add (temp lowp 2-component vector of int)
+0:65              component-wise multiply (temp lowp 2-component vector of int)
+0:65                Construct ivec2 (temp lowp 2-component vector of int)
+0:65                  'level1_low3' (temp lowp int)
+0:65                Construct ivec2 (temp lowp 2-component vector of int)
+0:65                  'level1_high' (temp highp int)
+0:65              Construct ivec2 (temp lowp 2-component vector of int)
+0:65                Comma (temp highp int)
+0:65                  'level1_low3' (temp lowp int)
+0:65                  'level1_high' (temp highp int)
+0:65            Constant:
+0:65              0 (const int)
+0:67      texture (global lowp 4-component vector of float)
+0:67        'samplerLow' (uniform lowp sampler2D)
+0:67        Constant:
+0:67          0.100000
+0:67          0.200000
+0:68      texture (global mediump 4-component vector of float)
+0:68        'samplerMed' (uniform mediump sampler2D)
+0:68        Constant:
+0:68          0.100000
+0:68          0.200000
+0:69      texture (global highp 4-component vector of float)
+0:69        'samplerHigh' (uniform highp sampler2D)
+0:69        Constant:
+0:69          0.100000
+0:69          0.200000
+0:?   Linker Objects
+0:?     'color' (smooth in mediump 3-component vector of float)
+0:?     'global_medium' (global mediump int)
+0:?     'samplerLow' (uniform lowp sampler2D)
+0:?     'samplerMed' (uniform mediump sampler2D)
+0:?     'samplerHigh' (uniform highp sampler2D)
+0:?     'uint' (global mediump 4-component vector of float)
+0:?     'global_high' (global highp int)
+0:?     'b2' (global mediump 2-component vector of bool)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:5  Function Definition: foo(vf3; (global lowp 2-component vector of float)
+0:5    Function Parameters: 
+0:5      'mv3' (in mediump 3-component vector of float)
+0:?     Sequence
+0:8      Branch: Return with expression
+0:8        vector swizzle (temp highp 2-component vector of float)
+0:8          'hv4' (temp highp 4-component vector of float)
+0:8          Sequence
+0:8            Constant:
+0:8              0 (const int)
+0:8            Constant:
+0:8              1 (const int)
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      Sequence
+0:27        move second child to first child (temp highp int)
+0:27          'sum' (temp lowp int)
+0:27          add (temp highp int)
+0:27            'global_medium' (global mediump int)
+0:27            'global_high' (global highp int)
+0:29      move second child to first child (temp mediump 4-component vector of float)
+0:29        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:29        Construct vec4 (temp mediump 4-component vector of float)
+0:29          'color' (smooth in mediump 3-component vector of float)
+0:29          Constant:
+0:29            1.000000
+0:32      add second child into first child (temp highp int)
+0:32        'sum' (temp lowp int)
+0:32        'level1_high' (temp highp int)
+0:36      add second child into first child (temp lowp int)
+0:36        'sum' (temp lowp int)
+0:36        'level1_low' (temp lowp int)
+0:41      Sequence
+0:41        move second child to first child (temp mediump float)
+0:41          'd' (temp lowp float)
+0:41          distance (global mediump float)
+0:41            'arg1' (temp lowp float)
+0:41            'arg2' (temp mediump float)
+0:?       Sequence
+0:45        add second child into first child (temp lowp int)
+0:45          'sum' (temp lowp int)
+0:45          'level2_low' (temp lowp int)
+0:49        add second child into first child (temp highp int)
+0:49          'sum' (temp lowp int)
+0:49          'level2_high' (temp highp int)
+0:58        Loop with condition not tested first
+0:58          Loop Condition
+0:58          Constant:
+0:58            true (const bool)
+0:58          Loop Body
+0:51          Sequence
+0:51            Test condition and select (temp void)
+0:51              Condition
+0:51              Constant:
+0:51                true (const bool)
+0:51              true case
+0:?               Sequence
+0:54                add second child into first child (temp mediump int)
+0:54                  'sum' (temp lowp int)
+0:54                  'level4_medium' (temp mediump int)
+0:57            add second child into first child (temp highp int)
+0:57              'sum' (temp lowp int)
+0:57              'level3_high' (temp highp int)
+0:60        add second child into first child (temp highp int)
+0:60          'sum' (temp lowp int)
+0:60          'level2_high2' (temp highp int)
+0:63      add second child into first child (temp lowp int)
+0:63        'sum' (temp lowp int)
+0:63        'level1_low3' (temp lowp int)
+0:65      add second child into first child (temp lowp int)
+0:65        'sum' (temp lowp int)
+0:65        add (temp lowp int)
+0:65          Constant:
+0:65            4 (const int)
+0:65          direct index (temp lowp int)
+0:65            add (temp lowp 2-component vector of int)
+0:65              component-wise multiply (temp lowp 2-component vector of int)
+0:65                Construct ivec2 (temp lowp 2-component vector of int)
+0:65                  'level1_low3' (temp lowp int)
+0:65                Construct ivec2 (temp lowp 2-component vector of int)
+0:65                  'level1_high' (temp highp int)
+0:65              Construct ivec2 (temp lowp 2-component vector of int)
+0:65                Comma (temp highp int)
+0:65                  'level1_low3' (temp lowp int)
+0:65                  'level1_high' (temp highp int)
+0:65            Constant:
+0:65              0 (const int)
+0:67      texture (global lowp 4-component vector of float)
+0:67        'samplerLow' (uniform lowp sampler2D)
+0:67        Constant:
+0:67          0.100000
+0:67          0.200000
+0:68      texture (global mediump 4-component vector of float)
+0:68        'samplerMed' (uniform mediump sampler2D)
+0:68        Constant:
+0:68          0.100000
+0:68          0.200000
+0:69      texture (global highp 4-component vector of float)
+0:69        'samplerHigh' (uniform highp sampler2D)
+0:69        Constant:
+0:69          0.100000
+0:69          0.200000
+0:?   Linker Objects
+0:?     'color' (smooth in mediump 3-component vector of float)
+0:?     'global_medium' (global mediump int)
+0:?     'samplerLow' (uniform lowp sampler2D)
+0:?     'samplerMed' (uniform mediump sampler2D)
+0:?     'samplerHigh' (uniform highp sampler2D)
+0:?     'uint' (global mediump 4-component vector of float)
+0:?     'global_high' (global highp int)
+0:?     'b2' (global mediump 2-component vector of bool)
+
diff --git a/Test/baseResults/precision.vert.out b/Test/baseResults/precision.vert.out
index 2b6373e..69b0e96 100644
--- a/Test/baseResults/precision.vert.out
+++ b/Test/baseResults/precision.vert.out
@@ -1,99 +1,99 @@
-precision.vert

-ERROR: 0:7: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:8: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 0:14: 'sampler/image' : type requires declaration of default precision qualifier 

-ERROR: 3 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:18  Function Definition: main( (global void)

-0:18    Function Parameters: 

-0:20    Sequence

-0:20      Sequence

-0:20        move second child to first child (temp highp 4-component vector of float)

-0:20          't' (temp highp 4-component vector of float)

-0:20          texture (global highp 4-component vector of float)

-0:20            's2D' (uniform lowp sampler2D)

-0:20            Constant:

-0:20              0.100000

-0:20              0.200000

-0:21      add second child into first child (temp highp 4-component vector of float)

-0:21        't' (temp highp 4-component vector of float)

-0:21        texture (global highp 4-component vector of float)

-0:21          's2Dhigh' (uniform highp sampler2D)

-0:21          Constant:

-0:21            0.100000

-0:21            0.200000

-0:22      add second child into first child (temp highp 4-component vector of float)

-0:22        't' (temp highp 4-component vector of float)

-0:22        texture (global highp float)

-0:22          's2dAS' (uniform mediump sampler2DArrayShadow)

-0:22          Constant:

-0:22            0.500000

-0:22            0.500000

-0:22            0.500000

-0:22            0.500000

-0:24      move second child to first child (temp highp 4-component vector of float)

-0:24        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:24        'pos' (in highp 4-component vector of float)

-0:?   Linker Objects

-0:?     'pos' (in highp 4-component vector of float)

-0:?     's2D' (uniform lowp sampler2D)

-0:?     'sCube' (uniform lowp samplerCube)

-0:?     'is2DAbad' (uniform mediump isampler2DArray)

-0:?     's2dASbad' (uniform mediump sampler2DArrayShadow)

-0:?     's2dAS' (uniform mediump sampler2DArrayShadow)

-0:?     'is2DAbad2' (uniform mediump isampler2DArray)

-0:?     's2Dhigh' (uniform highp sampler2D)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:18  Function Definition: main( (global void)

-0:18    Function Parameters: 

-0:20    Sequence

-0:20      Sequence

-0:20        move second child to first child (temp highp 4-component vector of float)

-0:20          't' (temp highp 4-component vector of float)

-0:20          texture (global highp 4-component vector of float)

-0:20            's2D' (uniform lowp sampler2D)

-0:20            Constant:

-0:20              0.100000

-0:20              0.200000

-0:21      add second child into first child (temp highp 4-component vector of float)

-0:21        't' (temp highp 4-component vector of float)

-0:21        texture (global highp 4-component vector of float)

-0:21          's2Dhigh' (uniform highp sampler2D)

-0:21          Constant:

-0:21            0.100000

-0:21            0.200000

-0:22      add second child into first child (temp highp 4-component vector of float)

-0:22        't' (temp highp 4-component vector of float)

-0:22        texture (global highp float)

-0:22          's2dAS' (uniform mediump sampler2DArrayShadow)

-0:22          Constant:

-0:22            0.500000

-0:22            0.500000

-0:22            0.500000

-0:22            0.500000

-0:24      move second child to first child (temp highp 4-component vector of float)

-0:24        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:24        'pos' (in highp 4-component vector of float)

-0:?   Linker Objects

-0:?     'pos' (in highp 4-component vector of float)

-0:?     's2D' (uniform lowp sampler2D)

-0:?     'sCube' (uniform lowp samplerCube)

-0:?     'is2DAbad' (uniform mediump isampler2DArray)

-0:?     's2dASbad' (uniform mediump sampler2DArrayShadow)

-0:?     's2dAS' (uniform mediump sampler2DArrayShadow)

-0:?     'is2DAbad2' (uniform mediump isampler2DArray)

-0:?     's2Dhigh' (uniform highp sampler2D)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+precision.vert
+ERROR: 0:7: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:8: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 0:14: 'sampler/image' : type requires declaration of default precision qualifier 
+ERROR: 3 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:18  Function Definition: main( (global void)
+0:18    Function Parameters: 
+0:20    Sequence
+0:20      Sequence
+0:20        move second child to first child (temp highp 4-component vector of float)
+0:20          't' (temp highp 4-component vector of float)
+0:20          texture (global highp 4-component vector of float)
+0:20            's2D' (uniform lowp sampler2D)
+0:20            Constant:
+0:20              0.100000
+0:20              0.200000
+0:21      add second child into first child (temp highp 4-component vector of float)
+0:21        't' (temp highp 4-component vector of float)
+0:21        texture (global highp 4-component vector of float)
+0:21          's2Dhigh' (uniform highp sampler2D)
+0:21          Constant:
+0:21            0.100000
+0:21            0.200000
+0:22      add second child into first child (temp highp 4-component vector of float)
+0:22        't' (temp highp 4-component vector of float)
+0:22        texture (global highp float)
+0:22          's2dAS' (uniform mediump sampler2DArrayShadow)
+0:22          Constant:
+0:22            0.500000
+0:22            0.500000
+0:22            0.500000
+0:22            0.500000
+0:24      move second child to first child (temp highp 4-component vector of float)
+0:24        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:24        'pos' (in highp 4-component vector of float)
+0:?   Linker Objects
+0:?     'pos' (in highp 4-component vector of float)
+0:?     's2D' (uniform lowp sampler2D)
+0:?     'sCube' (uniform lowp samplerCube)
+0:?     'is2DAbad' (uniform mediump isampler2DArray)
+0:?     's2dASbad' (uniform mediump sampler2DArrayShadow)
+0:?     's2dAS' (uniform mediump sampler2DArrayShadow)
+0:?     'is2DAbad2' (uniform mediump isampler2DArray)
+0:?     's2Dhigh' (uniform highp sampler2D)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:18  Function Definition: main( (global void)
+0:18    Function Parameters: 
+0:20    Sequence
+0:20      Sequence
+0:20        move second child to first child (temp highp 4-component vector of float)
+0:20          't' (temp highp 4-component vector of float)
+0:20          texture (global highp 4-component vector of float)
+0:20            's2D' (uniform lowp sampler2D)
+0:20            Constant:
+0:20              0.100000
+0:20              0.200000
+0:21      add second child into first child (temp highp 4-component vector of float)
+0:21        't' (temp highp 4-component vector of float)
+0:21        texture (global highp 4-component vector of float)
+0:21          's2Dhigh' (uniform highp sampler2D)
+0:21          Constant:
+0:21            0.100000
+0:21            0.200000
+0:22      add second child into first child (temp highp 4-component vector of float)
+0:22        't' (temp highp 4-component vector of float)
+0:22        texture (global highp float)
+0:22          's2dAS' (uniform mediump sampler2DArrayShadow)
+0:22          Constant:
+0:22            0.500000
+0:22            0.500000
+0:22            0.500000
+0:22            0.500000
+0:24      move second child to first child (temp highp 4-component vector of float)
+0:24        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:24        'pos' (in highp 4-component vector of float)
+0:?   Linker Objects
+0:?     'pos' (in highp 4-component vector of float)
+0:?     's2D' (uniform lowp sampler2D)
+0:?     'sCube' (uniform lowp samplerCube)
+0:?     'is2DAbad' (uniform mediump isampler2DArray)
+0:?     's2dASbad' (uniform mediump sampler2DArrayShadow)
+0:?     's2dAS' (uniform mediump sampler2DArrayShadow)
+0:?     'is2DAbad2' (uniform mediump isampler2DArray)
+0:?     's2Dhigh' (uniform highp sampler2D)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/prepost.frag.out b/Test/baseResults/prepost.frag.out
index 42769ff..ac24229 100644
--- a/Test/baseResults/prepost.frag.out
+++ b/Test/baseResults/prepost.frag.out
@@ -1,271 +1,271 @@
-prepost.frag

-Shader version: 140

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:?     Sequence

-0:10      Sequence

-0:10        move second child to first child (temp int)

-0:10          'index' (temp int)

-0:10          Constant:

-0:10            5 (const int)

-0:12      move second child to first child (temp float)

-0:12        direct index (temp float)

-0:12          y: direct index for structure (temp 5-element array of float)

-0:12            'str' (temp structure{temp 5-element array of float y})

-0:12            Constant:

-0:12              0 (const int)

-0:12          Constant:

-0:12            4 (const int)

-0:12        Constant:

-0:12          2.000000

-0:13      move second child to first child (temp float)

-0:13        't' (temp float)

-0:13        Pre-Increment (temp float)

-0:13          indirect index (temp float)

-0:13            y: direct index for structure (temp 5-element array of float)

-0:13              'str' (temp structure{temp 5-element array of float y})

-0:13              Constant:

-0:13                0 (const int)

-0:13            Pre-Decrement (temp int)

-0:13              'index' (temp int)

-0:14      add second child into first child (temp float)

-0:14        direct index (temp float)

-0:14          y: direct index for structure (temp 5-element array of float)

-0:14            'str' (temp structure{temp 5-element array of float y})

-0:14            Constant:

-0:14              0 (const int)

-0:14          Constant:

-0:14            4 (const int)

-0:14        't' (temp float)

-0:15      move second child to first child (temp float)

-0:15        't' (temp float)

-0:15        Post-Decrement (temp float)

-0:15          direct index (temp float)

-0:15            y: direct index for structure (temp 5-element array of float)

-0:15              'str' (temp structure{temp 5-element array of float y})

-0:15              Constant:

-0:15                0 (const int)

-0:15            Constant:

-0:15              4 (const int)

-0:16      add second child into first child (temp float)

-0:16        indirect index (temp float)

-0:16          y: direct index for structure (temp 5-element array of float)

-0:16            'str' (temp structure{temp 5-element array of float y})

-0:16            Constant:

-0:16              0 (const int)

-0:16          Post-Increment (temp int)

-0:16            'index' (temp int)

-0:16        't' (temp float)

-0:17      Pre-Decrement (temp float)

-0:17        indirect index (temp float)

-0:17          y: direct index for structure (temp 5-element array of float)

-0:17            'str' (temp structure{temp 5-element array of float y})

-0:17            Constant:

-0:17              0 (const int)

-0:17          Pre-Decrement (temp int)

-0:17            'index' (temp int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'x' (temp float)

-0:19          direct index (temp float)

-0:19            y: direct index for structure (temp 5-element array of float)

-0:19              'str' (temp structure{temp 5-element array of float y})

-0:19              Constant:

-0:19                0 (const int)

-0:19            Constant:

-0:19              4 (const int)

-0:20      Pre-Increment (temp float)

-0:20        'x' (temp float)

-0:21      Pre-Decrement (temp float)

-0:21        'x' (temp float)

-0:22      Post-Increment (temp float)

-0:22        'x' (temp float)

-0:23      Post-Decrement (temp float)

-0:23        'x' (temp float)

-0:27      Sequence

-0:27        move second child to first child (temp float)

-0:27          'y' (temp float)

-0:27          component-wise multiply (temp float)

-0:27            'x' (temp float)

-0:27            Pre-Increment (temp float)

-0:27              'x' (temp float)

-0:28      Sequence

-0:28        move second child to first child (temp float)

-0:28          'z' (temp float)

-0:28          component-wise multiply (temp float)

-0:28            'y' (temp float)

-0:28            Post-Decrement (temp float)

-0:28              'x' (temp float)

-0:33      Sequence

-0:33        move second child to first child (temp 4-component vector of float)

-0:33          'v' (temp 4-component vector of float)

-0:33          Constant:

-0:33            1.000000

-0:33            2.000000

-0:33            3.000000

-0:33            4.000000

-0:34      move second child to first child (temp float)

-0:34        direct index (temp float)

-0:34          'v' (temp 4-component vector of float)

-0:34          Constant:

-0:34            1 (const int)

-0:34        Post-Decrement (temp float)

-0:34          direct index (temp float)

-0:34            'v' (temp 4-component vector of float)

-0:34            Constant:

-0:34              2 (const int)

-0:35      move second child to first child (temp float)

-0:35        direct index (temp float)

-0:35          'v' (temp 4-component vector of float)

-0:35          Constant:

-0:35            0 (const int)

-0:35        Pre-Decrement (temp float)

-0:35          direct index (temp float)

-0:35            'v' (temp 4-component vector of float)

-0:35            Constant:

-0:35              3 (const int)

-0:37      move second child to first child (temp 4-component vector of float)

-0:37        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:37        vector-scale (temp 4-component vector of float)

-0:37          'z' (temp float)

-0:37          'v' (temp 4-component vector of float)

-0:?   Linker Objects

-

-

-Linked fragment stage:

-

-

-Shader version: 140

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:?     Sequence

-0:10      Sequence

-0:10        move second child to first child (temp int)

-0:10          'index' (temp int)

-0:10          Constant:

-0:10            5 (const int)

-0:12      move second child to first child (temp float)

-0:12        direct index (temp float)

-0:12          y: direct index for structure (temp 5-element array of float)

-0:12            'str' (temp structure{temp 5-element array of float y})

-0:12            Constant:

-0:12              0 (const int)

-0:12          Constant:

-0:12            4 (const int)

-0:12        Constant:

-0:12          2.000000

-0:13      move second child to first child (temp float)

-0:13        't' (temp float)

-0:13        Pre-Increment (temp float)

-0:13          indirect index (temp float)

-0:13            y: direct index for structure (temp 5-element array of float)

-0:13              'str' (temp structure{temp 5-element array of float y})

-0:13              Constant:

-0:13                0 (const int)

-0:13            Pre-Decrement (temp int)

-0:13              'index' (temp int)

-0:14      add second child into first child (temp float)

-0:14        direct index (temp float)

-0:14          y: direct index for structure (temp 5-element array of float)

-0:14            'str' (temp structure{temp 5-element array of float y})

-0:14            Constant:

-0:14              0 (const int)

-0:14          Constant:

-0:14            4 (const int)

-0:14        't' (temp float)

-0:15      move second child to first child (temp float)

-0:15        't' (temp float)

-0:15        Post-Decrement (temp float)

-0:15          direct index (temp float)

-0:15            y: direct index for structure (temp 5-element array of float)

-0:15              'str' (temp structure{temp 5-element array of float y})

-0:15              Constant:

-0:15                0 (const int)

-0:15            Constant:

-0:15              4 (const int)

-0:16      add second child into first child (temp float)

-0:16        indirect index (temp float)

-0:16          y: direct index for structure (temp 5-element array of float)

-0:16            'str' (temp structure{temp 5-element array of float y})

-0:16            Constant:

-0:16              0 (const int)

-0:16          Post-Increment (temp int)

-0:16            'index' (temp int)

-0:16        't' (temp float)

-0:17      Pre-Decrement (temp float)

-0:17        indirect index (temp float)

-0:17          y: direct index for structure (temp 5-element array of float)

-0:17            'str' (temp structure{temp 5-element array of float y})

-0:17            Constant:

-0:17              0 (const int)

-0:17          Pre-Decrement (temp int)

-0:17            'index' (temp int)

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'x' (temp float)

-0:19          direct index (temp float)

-0:19            y: direct index for structure (temp 5-element array of float)

-0:19              'str' (temp structure{temp 5-element array of float y})

-0:19              Constant:

-0:19                0 (const int)

-0:19            Constant:

-0:19              4 (const int)

-0:20      Pre-Increment (temp float)

-0:20        'x' (temp float)

-0:21      Pre-Decrement (temp float)

-0:21        'x' (temp float)

-0:22      Post-Increment (temp float)

-0:22        'x' (temp float)

-0:23      Post-Decrement (temp float)

-0:23        'x' (temp float)

-0:27      Sequence

-0:27        move second child to first child (temp float)

-0:27          'y' (temp float)

-0:27          component-wise multiply (temp float)

-0:27            'x' (temp float)

-0:27            Pre-Increment (temp float)

-0:27              'x' (temp float)

-0:28      Sequence

-0:28        move second child to first child (temp float)

-0:28          'z' (temp float)

-0:28          component-wise multiply (temp float)

-0:28            'y' (temp float)

-0:28            Post-Decrement (temp float)

-0:28              'x' (temp float)

-0:33      Sequence

-0:33        move second child to first child (temp 4-component vector of float)

-0:33          'v' (temp 4-component vector of float)

-0:33          Constant:

-0:33            1.000000

-0:33            2.000000

-0:33            3.000000

-0:33            4.000000

-0:34      move second child to first child (temp float)

-0:34        direct index (temp float)

-0:34          'v' (temp 4-component vector of float)

-0:34          Constant:

-0:34            1 (const int)

-0:34        Post-Decrement (temp float)

-0:34          direct index (temp float)

-0:34            'v' (temp 4-component vector of float)

-0:34            Constant:

-0:34              2 (const int)

-0:35      move second child to first child (temp float)

-0:35        direct index (temp float)

-0:35          'v' (temp 4-component vector of float)

-0:35          Constant:

-0:35            0 (const int)

-0:35        Pre-Decrement (temp float)

-0:35          direct index (temp float)

-0:35            'v' (temp 4-component vector of float)

-0:35            Constant:

-0:35              3 (const int)

-0:37      move second child to first child (temp 4-component vector of float)

-0:37        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:37        vector-scale (temp 4-component vector of float)

-0:37          'z' (temp float)

-0:37          'v' (temp 4-component vector of float)

-0:?   Linker Objects

-

+prepost.frag
+Shader version: 140
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:?     Sequence
+0:10      Sequence
+0:10        move second child to first child (temp int)
+0:10          'index' (temp int)
+0:10          Constant:
+0:10            5 (const int)
+0:12      move second child to first child (temp float)
+0:12        direct index (temp float)
+0:12          y: direct index for structure (temp 5-element array of float)
+0:12            'str' (temp structure{temp 5-element array of float y})
+0:12            Constant:
+0:12              0 (const int)
+0:12          Constant:
+0:12            4 (const int)
+0:12        Constant:
+0:12          2.000000
+0:13      move second child to first child (temp float)
+0:13        't' (temp float)
+0:13        Pre-Increment (temp float)
+0:13          indirect index (temp float)
+0:13            y: direct index for structure (temp 5-element array of float)
+0:13              'str' (temp structure{temp 5-element array of float y})
+0:13              Constant:
+0:13                0 (const int)
+0:13            Pre-Decrement (temp int)
+0:13              'index' (temp int)
+0:14      add second child into first child (temp float)
+0:14        direct index (temp float)
+0:14          y: direct index for structure (temp 5-element array of float)
+0:14            'str' (temp structure{temp 5-element array of float y})
+0:14            Constant:
+0:14              0 (const int)
+0:14          Constant:
+0:14            4 (const int)
+0:14        't' (temp float)
+0:15      move second child to first child (temp float)
+0:15        't' (temp float)
+0:15        Post-Decrement (temp float)
+0:15          direct index (temp float)
+0:15            y: direct index for structure (temp 5-element array of float)
+0:15              'str' (temp structure{temp 5-element array of float y})
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              4 (const int)
+0:16      add second child into first child (temp float)
+0:16        indirect index (temp float)
+0:16          y: direct index for structure (temp 5-element array of float)
+0:16            'str' (temp structure{temp 5-element array of float y})
+0:16            Constant:
+0:16              0 (const int)
+0:16          Post-Increment (temp int)
+0:16            'index' (temp int)
+0:16        't' (temp float)
+0:17      Pre-Decrement (temp float)
+0:17        indirect index (temp float)
+0:17          y: direct index for structure (temp 5-element array of float)
+0:17            'str' (temp structure{temp 5-element array of float y})
+0:17            Constant:
+0:17              0 (const int)
+0:17          Pre-Decrement (temp int)
+0:17            'index' (temp int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'x' (temp float)
+0:19          direct index (temp float)
+0:19            y: direct index for structure (temp 5-element array of float)
+0:19              'str' (temp structure{temp 5-element array of float y})
+0:19              Constant:
+0:19                0 (const int)
+0:19            Constant:
+0:19              4 (const int)
+0:20      Pre-Increment (temp float)
+0:20        'x' (temp float)
+0:21      Pre-Decrement (temp float)
+0:21        'x' (temp float)
+0:22      Post-Increment (temp float)
+0:22        'x' (temp float)
+0:23      Post-Decrement (temp float)
+0:23        'x' (temp float)
+0:27      Sequence
+0:27        move second child to first child (temp float)
+0:27          'y' (temp float)
+0:27          component-wise multiply (temp float)
+0:27            'x' (temp float)
+0:27            Pre-Increment (temp float)
+0:27              'x' (temp float)
+0:28      Sequence
+0:28        move second child to first child (temp float)
+0:28          'z' (temp float)
+0:28          component-wise multiply (temp float)
+0:28            'y' (temp float)
+0:28            Post-Decrement (temp float)
+0:28              'x' (temp float)
+0:33      Sequence
+0:33        move second child to first child (temp 4-component vector of float)
+0:33          'v' (temp 4-component vector of float)
+0:33          Constant:
+0:33            1.000000
+0:33            2.000000
+0:33            3.000000
+0:33            4.000000
+0:34      move second child to first child (temp float)
+0:34        direct index (temp float)
+0:34          'v' (temp 4-component vector of float)
+0:34          Constant:
+0:34            1 (const int)
+0:34        Post-Decrement (temp float)
+0:34          direct index (temp float)
+0:34            'v' (temp 4-component vector of float)
+0:34            Constant:
+0:34              2 (const int)
+0:35      move second child to first child (temp float)
+0:35        direct index (temp float)
+0:35          'v' (temp 4-component vector of float)
+0:35          Constant:
+0:35            0 (const int)
+0:35        Pre-Decrement (temp float)
+0:35          direct index (temp float)
+0:35            'v' (temp 4-component vector of float)
+0:35            Constant:
+0:35              3 (const int)
+0:37      move second child to first child (temp 4-component vector of float)
+0:37        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37        vector-scale (temp 4-component vector of float)
+0:37          'z' (temp float)
+0:37          'v' (temp 4-component vector of float)
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 140
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:?     Sequence
+0:10      Sequence
+0:10        move second child to first child (temp int)
+0:10          'index' (temp int)
+0:10          Constant:
+0:10            5 (const int)
+0:12      move second child to first child (temp float)
+0:12        direct index (temp float)
+0:12          y: direct index for structure (temp 5-element array of float)
+0:12            'str' (temp structure{temp 5-element array of float y})
+0:12            Constant:
+0:12              0 (const int)
+0:12          Constant:
+0:12            4 (const int)
+0:12        Constant:
+0:12          2.000000
+0:13      move second child to first child (temp float)
+0:13        't' (temp float)
+0:13        Pre-Increment (temp float)
+0:13          indirect index (temp float)
+0:13            y: direct index for structure (temp 5-element array of float)
+0:13              'str' (temp structure{temp 5-element array of float y})
+0:13              Constant:
+0:13                0 (const int)
+0:13            Pre-Decrement (temp int)
+0:13              'index' (temp int)
+0:14      add second child into first child (temp float)
+0:14        direct index (temp float)
+0:14          y: direct index for structure (temp 5-element array of float)
+0:14            'str' (temp structure{temp 5-element array of float y})
+0:14            Constant:
+0:14              0 (const int)
+0:14          Constant:
+0:14            4 (const int)
+0:14        't' (temp float)
+0:15      move second child to first child (temp float)
+0:15        't' (temp float)
+0:15        Post-Decrement (temp float)
+0:15          direct index (temp float)
+0:15            y: direct index for structure (temp 5-element array of float)
+0:15              'str' (temp structure{temp 5-element array of float y})
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              4 (const int)
+0:16      add second child into first child (temp float)
+0:16        indirect index (temp float)
+0:16          y: direct index for structure (temp 5-element array of float)
+0:16            'str' (temp structure{temp 5-element array of float y})
+0:16            Constant:
+0:16              0 (const int)
+0:16          Post-Increment (temp int)
+0:16            'index' (temp int)
+0:16        't' (temp float)
+0:17      Pre-Decrement (temp float)
+0:17        indirect index (temp float)
+0:17          y: direct index for structure (temp 5-element array of float)
+0:17            'str' (temp structure{temp 5-element array of float y})
+0:17            Constant:
+0:17              0 (const int)
+0:17          Pre-Decrement (temp int)
+0:17            'index' (temp int)
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'x' (temp float)
+0:19          direct index (temp float)
+0:19            y: direct index for structure (temp 5-element array of float)
+0:19              'str' (temp structure{temp 5-element array of float y})
+0:19              Constant:
+0:19                0 (const int)
+0:19            Constant:
+0:19              4 (const int)
+0:20      Pre-Increment (temp float)
+0:20        'x' (temp float)
+0:21      Pre-Decrement (temp float)
+0:21        'x' (temp float)
+0:22      Post-Increment (temp float)
+0:22        'x' (temp float)
+0:23      Post-Decrement (temp float)
+0:23        'x' (temp float)
+0:27      Sequence
+0:27        move second child to first child (temp float)
+0:27          'y' (temp float)
+0:27          component-wise multiply (temp float)
+0:27            'x' (temp float)
+0:27            Pre-Increment (temp float)
+0:27              'x' (temp float)
+0:28      Sequence
+0:28        move second child to first child (temp float)
+0:28          'z' (temp float)
+0:28          component-wise multiply (temp float)
+0:28            'y' (temp float)
+0:28            Post-Decrement (temp float)
+0:28              'x' (temp float)
+0:33      Sequence
+0:33        move second child to first child (temp 4-component vector of float)
+0:33          'v' (temp 4-component vector of float)
+0:33          Constant:
+0:33            1.000000
+0:33            2.000000
+0:33            3.000000
+0:33            4.000000
+0:34      move second child to first child (temp float)
+0:34        direct index (temp float)
+0:34          'v' (temp 4-component vector of float)
+0:34          Constant:
+0:34            1 (const int)
+0:34        Post-Decrement (temp float)
+0:34          direct index (temp float)
+0:34            'v' (temp 4-component vector of float)
+0:34            Constant:
+0:34              2 (const int)
+0:35      move second child to first child (temp float)
+0:35        direct index (temp float)
+0:35          'v' (temp 4-component vector of float)
+0:35          Constant:
+0:35            0 (const int)
+0:35        Pre-Decrement (temp float)
+0:35          direct index (temp float)
+0:35            'v' (temp 4-component vector of float)
+0:35            Constant:
+0:35              3 (const int)
+0:37      move second child to first child (temp 4-component vector of float)
+0:37        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:37        vector-scale (temp 4-component vector of float)
+0:37          'z' (temp float)
+0:37          'v' (temp 4-component vector of float)
+0:?   Linker Objects
+
diff --git a/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out b/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out
index 7deb279..e63d81a 100644
--- a/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out
+++ b/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out
@@ -1,37 +1,37 @@
-#extension GL_GOOGLE_cpp_style_line_directive : enable

-

-0

-

-#line 150 "a.h"

- "a.h"

-

-#line 24

- "a.h"

-

-#line 42

- "a.h"

-

-#line 30 "b.cc"

- "b.cc"

-

-#line 10 3

- 3

-

-#line 48

- 3

-

-#line 4

- 3

-

-#line 55 100

- 100

-

-#line 1000 "c"

- "c"

-

-#line 42 1

- 1

-

-#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it"

- "this-is-a-quite-long-name-maybe-i-should-shorten-it"

-

+#extension GL_GOOGLE_cpp_style_line_directive : enable
+
+0
+
+#line 150 "a.h"
+ "a.h"
+
+#line 24
+ "a.h"
+
+#line 42
+ "a.h"
+
+#line 30 "b.cc"
+ "b.cc"
+
+#line 10 3
+ 3
+
+#line 48
+ 3
+
+#line 4
+ 3
+
+#line 55 100
+ 100
+
+#line 1000 "c"
+ "c"
+
+#line 42 1
+ 1
+
+#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it"
+ "this-is-a-quite-long-name-maybe-i-should-shorten-it"
+
diff --git a/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err b/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err
index df89cd7..794ded8 100644
--- a/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err
+++ b/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err
@@ -1,15 +1,15 @@
-ERROR: 0:3: '#error' : at 0:3  

-ERROR: a.h:150: '#error' : at a.h:150  

-ERROR: a.h:24: '#error' : at a.h:24  

-ERROR: a.h:42: '#error' : at a.h:42  

-ERROR: b.cc:30: '#error' : at b.cc:30  

-ERROR: 3:10: '#error' : at 3:10  

-ERROR: 3:48: '#error' : at 3:48  

-ERROR: 3:4: '#error' : at 3:4  

-ERROR: 100:55: '#error' : at 100:55  

-ERROR: c:1000: '#error' : at c:1000  

-ERROR: 1:42: '#error' : at 1:42  

-ERROR: this-is-a-quite-long-name-maybe-i-should-shorten-it:42: '#error' : at this-is-a-quite-long-name-maybe-i-should-shorten-it:42  

-ERROR: 12 compilation errors.  No code generated.

-

-

+ERROR: 0:3: '#error' : at 0:3  
+ERROR: a.h:150: '#error' : at a.h:150  
+ERROR: a.h:24: '#error' : at a.h:24  
+ERROR: a.h:42: '#error' : at a.h:42  
+ERROR: b.cc:30: '#error' : at b.cc:30  
+ERROR: 3:10: '#error' : at 3:10  
+ERROR: 3:48: '#error' : at 3:48  
+ERROR: 3:4: '#error' : at 3:4  
+ERROR: 100:55: '#error' : at 100:55  
+ERROR: c:1000: '#error' : at c:1000  
+ERROR: 1:42: '#error' : at 1:42  
+ERROR: this-is-a-quite-long-name-maybe-i-should-shorten-it:42: '#error' : at this-is-a-quite-long-name-maybe-i-should-shorten-it:42  
+ERROR: 12 compilation errors.  No code generated.
+
+
diff --git a/Test/baseResults/preprocessor.defined.vert.err b/Test/baseResults/preprocessor.defined.vert.err
index eae9912..8dddabc 100644
--- a/Test/baseResults/preprocessor.defined.vert.err
+++ b/Test/baseResults/preprocessor.defined.vert.err
@@ -1,4 +1,4 @@
-ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined

-ERROR: 1 compilation errors.  No code generated.

-

-

+ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined
+ERROR: 1 compilation errors.  No code generated.
+
+
diff --git a/Test/baseResults/preprocessor.edge_cases.vert.err b/Test/baseResults/preprocessor.edge_cases.vert.err
index 5967428..5f177e6 100644
--- a/Test/baseResults/preprocessor.edge_cases.vert.err
+++ b/Test/baseResults/preprocessor.edge_cases.vert.err
@@ -1,2 +1,2 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/Test/baseResults/preprocessor.edge_cases.vert.out b/Test/baseResults/preprocessor.edge_cases.vert.out
index 9c51bc4..17d9049 100644
--- a/Test/baseResults/preprocessor.edge_cases.vert.out
+++ b/Test/baseResults/preprocessor.edge_cases.vert.out
@@ -1,16 +1,16 @@
-#version 310 es

-

-

-

-

-

-

-

-

-

-

-

-void main(){

-  gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2);

-}

-

+#version 310 es
+
+
+
+
+
+
+
+
+
+
+
+void main(){
+  gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2);
+}
+
diff --git a/Test/baseResults/preprocessor.errors.vert.err b/Test/baseResults/preprocessor.errors.vert.err
index a92e34f..cfde404 100644
--- a/Test/baseResults/preprocessor.errors.vert.err
+++ b/Test/baseResults/preprocessor.errors.vert.err
@@ -1,8 +1,8 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:9: '#error' : This should show up in pp output .  

-ERROR: 0:14: '#' : invalid directive: def

-ERROR: 0:15: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile Y

-ERROR: 0:21: '' : missing #endif 

-ERROR: 4 compilation errors.  No code generated.

-

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:9: '#error' : This should show up in pp output .  
+ERROR: 0:14: '#' : invalid directive: def
+ERROR: 0:15: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile Y
+ERROR: 0:21: '' : missing #endif 
+ERROR: 4 compilation errors.  No code generated.
+
+
diff --git a/Test/baseResults/preprocessor.extensions.vert.err b/Test/baseResults/preprocessor.extensions.vert.err
index 114bd96..925cc0c 100644
--- a/Test/baseResults/preprocessor.extensions.vert.err
+++ b/Test/baseResults/preprocessor.extensions.vert.err
@@ -1,3 +1,3 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples
+
diff --git a/Test/baseResults/preprocessor.extensions.vert.out b/Test/baseResults/preprocessor.extensions.vert.out
index e71aa19..57d2e19 100644
--- a/Test/baseResults/preprocessor.extensions.vert.out
+++ b/Test/baseResults/preprocessor.extensions.vert.out
@@ -1,12 +1,12 @@
-#version 310 es

-

-#extension GL_EXT_geometry_shader : enable

-#extension GL_EXT_frag_depth : disable

-#extension GL_EXT_gpu_shader5 : require

-#extension GL_EXT_shader_texture_image_samples : warn

-

-#extension unknown_extension : require

-

-int main(){

-}

-

+#version 310 es
+
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_frag_depth : disable
+#extension GL_EXT_gpu_shader5 : require
+#extension GL_EXT_shader_texture_image_samples : warn
+
+#extension unknown_extension : require
+
+int main(){
+}
+
diff --git a/Test/baseResults/preprocessor.function_macro.vert.err b/Test/baseResults/preprocessor.function_macro.vert.err
index 5967428..5f177e6 100644
--- a/Test/baseResults/preprocessor.function_macro.vert.err
+++ b/Test/baseResults/preprocessor.function_macro.vert.err
@@ -1,2 +1,2 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/Test/baseResults/preprocessor.function_macro.vert.out b/Test/baseResults/preprocessor.function_macro.vert.out
index 9476784..1280ddf 100644
--- a/Test/baseResults/preprocessor.function_macro.vert.out
+++ b/Test/baseResults/preprocessor.function_macro.vert.out
@@ -1,21 +1,21 @@
-#version 310 es

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-int main(){

-  gl_Position = vec4(3 + 1, 3 + 4, 3 + 1);

-  gl_Position = vec4(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12);

-  gl_Position = vec4(4 + 3 + 3);

-}

-

+#version 310 es
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+int main(){
+  gl_Position = vec4(3 + 1, 3 + 4, 3 + 1);
+  gl_Position = vec4(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12);
+  gl_Position = vec4(4 + 3 + 3);
+}
+
diff --git a/Test/baseResults/preprocessor.include.disabled.vert.err b/Test/baseResults/preprocessor.include.disabled.vert.err
index 2fd90c9..7d1f0a0 100644
--- a/Test/baseResults/preprocessor.include.disabled.vert.err
+++ b/Test/baseResults/preprocessor.include.disabled.vert.err
@@ -1,13 +1,13 @@
-ERROR: 0:8000: '#include' : required extension not requested: GL_GOOGLE_include_directive

-ERROR: 0:8000: '#include' : must be followed by a file designation 

-ERROR: 0:8001: '#include' : required extension not requested: GL_GOOGLE_include_directive

-ERROR: 0:8001: '#include' : must be followed by a file designation 

-ERROR: 0:8002: '#include' : required extension not requested: GL_GOOGLE_include_directive

-ERROR: 0:8002: '#include' : unexpected include directive 

-ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive

-ERROR: 0:8003: '#include' : extra content after file designation 

-ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive

-ERROR: 0:8004: '#include' : unexpected include directive 

-ERROR: 10 compilation errors.  No code generated.

-

-

+ERROR: 0:8000: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8000: '#include' : must be followed by a file designation 
+ERROR: 0:8001: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8001: '#include' : must be followed by a file designation 
+ERROR: 0:8002: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8002: '#include' : unexpected include directive 
+ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8003: '#include' : extra content after file designation 
+ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive
+ERROR: 0:8004: '#include' : unexpected include directive 
+ERROR: 10 compilation errors.  No code generated.
+
+
diff --git a/Test/baseResults/preprocessor.include.enabled.vert.err b/Test/baseResults/preprocessor.include.enabled.vert.err
index 0f20e27..be8c5cf 100644
--- a/Test/baseResults/preprocessor.include.enabled.vert.err
+++ b/Test/baseResults/preprocessor.include.enabled.vert.err
@@ -1,8 +1,8 @@
-ERROR: 0:8000: '#include' : must be followed by a file designation 

-ERROR: 0:8001: '#include' : must be followed by a file designation 

-ERROR: 0:8002: '#include' : unexpected include directive 

-ERROR: 0:8003: '#include' : extra content after file designation 

-ERROR: 0:8004: '#include' : unexpected include directive 

-ERROR: 5 compilation errors.  No code generated.

-

-

+ERROR: 0:8000: '#include' : must be followed by a file designation 
+ERROR: 0:8001: '#include' : must be followed by a file designation 
+ERROR: 0:8002: '#include' : unexpected include directive 
+ERROR: 0:8003: '#include' : extra content after file designation 
+ERROR: 0:8004: '#include' : unexpected include directive 
+ERROR: 5 compilation errors.  No code generated.
+
+
diff --git a/Test/baseResults/preprocessor.line.frag.err b/Test/baseResults/preprocessor.line.frag.err
index 5967428..5f177e6 100644
--- a/Test/baseResults/preprocessor.line.frag.err
+++ b/Test/baseResults/preprocessor.line.frag.err
@@ -1,2 +1,2 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/Test/baseResults/preprocessor.line.frag.out b/Test/baseResults/preprocessor.line.frag.out
index 74991b7..3e2206f 100644
--- a/Test/baseResults/preprocessor.line.frag.out
+++ b/Test/baseResults/preprocessor.line.frag.out
@@ -1,5 +1,5 @@
-#version 310 es

-#line 1 2

-#pragma something

-void main(){ }

-

+#version 310 es
+#line 1 2
+#pragma something
+void main(){ }
+
diff --git a/Test/baseResults/preprocessor.line.vert.out b/Test/baseResults/preprocessor.line.vert.out
index 4dab9cb..2bf0903 100644
--- a/Test/baseResults/preprocessor.line.vert.out
+++ b/Test/baseResults/preprocessor.line.vert.out
@@ -1,39 +1,39 @@
-#line 300

-

-#line 2

-

-

-

-

-

-#line 10

-

-

-#line 2

-

-#line 0

-

-

-

-#line 4

-

-

-

-

-

-#line 8

-

-void main(){

-  gl_Position = vec4(10);

-}

-

-#line 8 4

-

-

-

-

-#line 12 3

-

-#line 1

-

-

+#line 300
+
+#line 2
+
+
+
+
+
+#line 10
+
+
+#line 2
+
+#line 0
+
+
+
+#line 4
+
+
+
+
+
+#line 8
+
+void main(){
+  gl_Position = vec4(10);
+}
+
+#line 8 4
+
+
+
+
+#line 12 3
+
+#line 1
+
+
diff --git a/Test/baseResults/preprocessor.pragma.vert.err b/Test/baseResults/preprocessor.pragma.vert.err
index 5967428..5f177e6 100644
--- a/Test/baseResults/preprocessor.pragma.vert.err
+++ b/Test/baseResults/preprocessor.pragma.vert.err
@@ -1,2 +1,2 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/Test/baseResults/preprocessor.pragma.vert.out b/Test/baseResults/preprocessor.pragma.vert.out
index 62b6a13..8c52814 100644
--- a/Test/baseResults/preprocessor.pragma.vert.out
+++ b/Test/baseResults/preprocessor.pragma.vert.out
@@ -1,12 +1,12 @@
-#version 310 es

-

-#pragma optimize(on)

-#pragma optimize(off)

-#pragma debug(on)

-#pragma debug(off)

-

-#pragma undefined_pragma(x,4)

-

-int main(){

-}

-

+#version 310 es
+
+#pragma optimize(on)
+#pragma optimize(off)
+#pragma debug(on)
+#pragma debug(off)
+
+#pragma undefined_pragma(x,4)
+
+int main(){
+}
+
diff --git a/Test/baseResults/preprocessor.simple.vert.err b/Test/baseResults/preprocessor.simple.vert.err
index 5967428..5f177e6 100644
--- a/Test/baseResults/preprocessor.simple.vert.err
+++ b/Test/baseResults/preprocessor.simple.vert.err
@@ -1,2 +1,2 @@
-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
diff --git a/Test/baseResults/preprocessor.simple.vert.out b/Test/baseResults/preprocessor.simple.vert.out
index 878fff7..8737bc8 100644
--- a/Test/baseResults/preprocessor.simple.vert.out
+++ b/Test/baseResults/preprocessor.simple.vert.out
@@ -1,23 +1,23 @@
-#version 310 es

-

-

-

-

-

-

-

-

-

-

-

-

-             float fn(float x){ return x + 4.0;}

-

-int main(){

-  gl_Position = vec4(1);

-  gl_Position = clamp(1, 2, 3);

-  gl_Position = vec4(1);

-  gl_Position = vec4(1, 2);

-  gl_Position = vec4(fn(3));

-}

-

+#version 310 es
+
+
+
+
+
+
+
+
+
+
+
+
+             float fn(float x){ return x + 4.0;}
+
+int main(){
+  gl_Position = vec4(1);
+  gl_Position = clamp(1, 2, 3);
+  gl_Position = vec4(1);
+  gl_Position = vec4(1, 2);
+  gl_Position = vec4(fn(3));
+}
+
diff --git a/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out b/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
index ab57fb0..624813a 100644
--- a/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
+++ b/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
@@ -1,4 +1,4 @@
-int x(){

-  something that shouldnt compile;

-}

-

+int x(){
+  something that shouldnt compile;
+}
+
diff --git a/Test/baseResults/recurse1.vert.out b/Test/baseResults/recurse1.vert.out
index 1b43ee1..c2ae014 100644
--- a/Test/baseResults/recurse1.vert.out
+++ b/Test/baseResults/recurse1.vert.out
@@ -1,397 +1,397 @@
-recurse1.vert

-Shader version: 330

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:9  Function Definition: self( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Function Call: self( (global void)

-0:16  Function Definition: foo(f1; (global void)

-0:16    Function Parameters: 

-0:16      '' (in float)

-0:18    Sequence

-0:18      Function Call: bar(i1; (global float)

-0:18        Constant:

-0:18          2 (const int)

-0:21  Function Definition: bar(i1; (global float)

-0:21    Function Parameters: 

-0:21      '' (in int)

-0:23    Sequence

-0:23      Function Call: foo(f1; (global void)

-0:23        Constant:

-0:23          4.200000

-0:25      Branch: Return with expression

-0:25        Constant:

-0:25          3.200000

-0:32  Function Definition: A( (global void)

-0:32    Function Parameters: 

-0:32    Sequence

-0:32      Function Call: B( (global void)

-0:33  Function Definition: C( (global void)

-0:33    Function Parameters: 

-0:33    Sequence

-0:33      Function Call: D( (global void)

-0:34  Function Definition: B( (global void)

-0:34    Function Parameters: 

-0:34    Sequence

-0:34      Function Call: C( (global void)

-0:35  Function Definition: D( (global void)

-0:35    Function Parameters: 

-0:35    Sequence

-0:35      Function Call: A( (global void)

-0:41  Function Definition: AT( (global void)

-0:41    Function Parameters: 

-0:41    Sequence

-0:41      Function Call: BT( (global void)

-0:41      Function Call: BT( (global void)

-0:41      Function Call: BT( (global void)

-0:42  Function Definition: CT( (global void)

-0:42    Function Parameters: 

-0:42    Sequence

-0:42      Function Call: DT( (global void)

-0:42      Function Call: AT( (global void)

-0:42      Function Call: DT( (global void)

-0:42      Function Call: BT( (global void)

-0:43  Function Definition: BT( (global void)

-0:43    Function Parameters: 

-0:43    Sequence

-0:43      Function Call: CT( (global void)

-0:43      Function Call: CT( (global void)

-0:43      Function Call: CT( (global void)

-0:44  Function Definition: DT( (global void)

-0:44    Function Parameters: 

-0:44    Sequence

-0:44      Function Call: AT( (global void)

-0:?   Linker Objects

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-recurse1.frag

-Shader version: 330

-0:? Sequence

-0:5  Function Definition: main( (global void)

-0:5    Function Parameters: 

-0:11  Function Definition: cfoo(f1; (global void)

-0:11    Function Parameters: 

-0:11      '' (in float)

-0:13    Sequence

-0:13      Function Call: cbar(i1; (global float)

-0:13        Constant:

-0:13          2 (const int)

-0:20  Function Definition: CA( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      Function Call: CB( (global void)

-0:21  Function Definition: CC( (global void)

-0:21    Function Parameters: 

-0:21    Sequence

-0:21      Function Call: CD( (global void)

-0:27  Function Definition: CAT( (global void)

-0:27    Function Parameters: 

-0:27    Sequence

-0:27      Function Call: CBT( (global void)

-0:27      Function Call: CBT( (global void)

-0:27      Function Call: CBT( (global void)

-0:28  Function Definition: CCT( (global void)

-0:28    Function Parameters: 

-0:28    Sequence

-0:28      Function Call: CDT( (global void)

-0:28      Function Call: CDT( (global void)

-0:28      Function Call: CBT( (global void)

-0:32  Function Definition: norA( (global void)

-0:32    Function Parameters: 

-0:33  Function Definition: norB( (global void)

-0:33    Function Parameters: 

-0:33    Sequence

-0:33      Function Call: norA( (global void)

-0:34  Function Definition: norC( (global void)

-0:34    Function Parameters: 

-0:34    Sequence

-0:34      Function Call: norA( (global void)

-0:35  Function Definition: norD( (global void)

-0:35    Function Parameters: 

-0:35    Sequence

-0:35      Function Call: norA( (global void)

-0:36  Function Definition: norE( (global void)

-0:36    Function Parameters: 

-0:36    Sequence

-0:36      Function Call: norB( (global void)

-0:37  Function Definition: norF( (global void)

-0:37    Function Parameters: 

-0:37    Sequence

-0:37      Function Call: norB( (global void)

-0:38  Function Definition: norG( (global void)

-0:38    Function Parameters: 

-0:38    Sequence

-0:38      Function Call: norE( (global void)

-0:39  Function Definition: norH( (global void)

-0:39    Function Parameters: 

-0:39    Sequence

-0:39      Function Call: norE( (global void)

-0:40  Function Definition: norI( (global void)

-0:40    Function Parameters: 

-0:40    Sequence

-0:40      Function Call: norE( (global void)

-0:44  Function Definition: norcA( (global void)

-0:44    Function Parameters: 

-0:45  Function Definition: norcB( (global void)

-0:45    Function Parameters: 

-0:45    Sequence

-0:45      Function Call: norcA( (global void)

-0:46  Function Definition: norcC( (global void)

-0:46    Function Parameters: 

-0:46    Sequence

-0:46      Function Call: norcB( (global void)

-0:47  Function Definition: norcD( (global void)

-0:47    Function Parameters: 

-0:47    Sequence

-0:47      Function Call: norcC( (global void)

-0:47      Function Call: norcB( (global void)

-0:48  Function Definition: norcE( (global void)

-0:48    Function Parameters: 

-0:48    Sequence

-0:48      Function Call: norcD( (global void)

-0:?   Linker Objects

-

-recurse2.frag

-Shader version: 330

-0:? Sequence

-0:9  Function Definition: cbar(i1; (global float)

-0:9    Function Parameters: 

-0:9      '' (in int)

-0:11    Sequence

-0:11      Function Call: cfoo(f1; (global void)

-0:11        Constant:

-0:11          4.200000

-0:13      Branch: Return with expression

-0:13        Constant:

-0:13          3.200000

-0:20  Function Definition: CB( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      Function Call: CC( (global void)

-0:21  Function Definition: CD( (global void)

-0:21    Function Parameters: 

-0:21    Sequence

-0:21      Function Call: CA( (global void)

-0:27  Function Definition: CBT( (global void)

-0:27    Function Parameters: 

-0:27    Sequence

-0:27      Function Call: CCT( (global void)

-0:27      Function Call: CCT( (global void)

-0:27      Function Call: CCT( (global void)

-0:28  Function Definition: CDT( (global void)

-0:28    Function Parameters: 

-0:28    Sequence

-0:28      Function Call: CAT( (global void)

-0:?   Linker Objects

-

-

-Linked vertex stage:

-

-ERROR: Linking vertex stage: Recursion detected:

-    BT( calling CT(

-ERROR: Linking vertex stage: Recursion detected:

-    AT( calling BT(

-ERROR: Linking vertex stage: Recursion detected:

-    DT( calling AT(

-ERROR: Linking vertex stage: Recursion detected:

-    D( calling A(

-ERROR: Linking vertex stage: Recursion detected:

-    bar(i1; calling foo(f1;

-ERROR: Linking vertex stage: Recursion detected:

-    self( calling self(

-

-Linked fragment stage:

-

-ERROR: Linking fragment stage: Recursion detected:

-    CCT( calling CBT(

-ERROR: Linking fragment stage: Recursion detected:

-    CBT( calling CCT(

-ERROR: Linking fragment stage: Recursion detected:

-    CC( calling CD(

-ERROR: Linking fragment stage: Recursion detected:

-    cfoo(f1; calling cbar(i1;

-

-Shader version: 330

-0:? Sequence

-0:3  Function Definition: main( (global void)

-0:3    Function Parameters: 

-0:9  Function Definition: self( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Function Call: self( (global void)

-0:16  Function Definition: foo(f1; (global void)

-0:16    Function Parameters: 

-0:16      '' (in float)

-0:18    Sequence

-0:18      Function Call: bar(i1; (global float)

-0:18        Constant:

-0:18          2 (const int)

-0:21  Function Definition: bar(i1; (global float)

-0:21    Function Parameters: 

-0:21      '' (in int)

-0:23    Sequence

-0:23      Function Call: foo(f1; (global void)

-0:23        Constant:

-0:23          4.200000

-0:25      Branch: Return with expression

-0:25        Constant:

-0:25          3.200000

-0:32  Function Definition: A( (global void)

-0:32    Function Parameters: 

-0:32    Sequence

-0:32      Function Call: B( (global void)

-0:33  Function Definition: C( (global void)

-0:33    Function Parameters: 

-0:33    Sequence

-0:33      Function Call: D( (global void)

-0:34  Function Definition: B( (global void)

-0:34    Function Parameters: 

-0:34    Sequence

-0:34      Function Call: C( (global void)

-0:35  Function Definition: D( (global void)

-0:35    Function Parameters: 

-0:35    Sequence

-0:35      Function Call: A( (global void)

-0:41  Function Definition: AT( (global void)

-0:41    Function Parameters: 

-0:41    Sequence

-0:41      Function Call: BT( (global void)

-0:41      Function Call: BT( (global void)

-0:41      Function Call: BT( (global void)

-0:42  Function Definition: CT( (global void)

-0:42    Function Parameters: 

-0:42    Sequence

-0:42      Function Call: DT( (global void)

-0:42      Function Call: AT( (global void)

-0:42      Function Call: DT( (global void)

-0:42      Function Call: BT( (global void)

-0:43  Function Definition: BT( (global void)

-0:43    Function Parameters: 

-0:43    Sequence

-0:43      Function Call: CT( (global void)

-0:43      Function Call: CT( (global void)

-0:43      Function Call: CT( (global void)

-0:44  Function Definition: DT( (global void)

-0:44    Function Parameters: 

-0:44    Sequence

-0:44      Function Call: AT( (global void)

-0:?   Linker Objects

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-Shader version: 330

-0:? Sequence

-0:5  Function Definition: main( (global void)

-0:5    Function Parameters: 

-0:11  Function Definition: cfoo(f1; (global void)

-0:11    Function Parameters: 

-0:11      '' (in float)

-0:13    Sequence

-0:13      Function Call: cbar(i1; (global float)

-0:13        Constant:

-0:13          2 (const int)

-0:20  Function Definition: CA( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      Function Call: CB( (global void)

-0:21  Function Definition: CC( (global void)

-0:21    Function Parameters: 

-0:21    Sequence

-0:21      Function Call: CD( (global void)

-0:27  Function Definition: CAT( (global void)

-0:27    Function Parameters: 

-0:27    Sequence

-0:27      Function Call: CBT( (global void)

-0:27      Function Call: CBT( (global void)

-0:27      Function Call: CBT( (global void)

-0:28  Function Definition: CCT( (global void)

-0:28    Function Parameters: 

-0:28    Sequence

-0:28      Function Call: CDT( (global void)

-0:28      Function Call: CDT( (global void)

-0:28      Function Call: CBT( (global void)

-0:32  Function Definition: norA( (global void)

-0:32    Function Parameters: 

-0:33  Function Definition: norB( (global void)

-0:33    Function Parameters: 

-0:33    Sequence

-0:33      Function Call: norA( (global void)

-0:34  Function Definition: norC( (global void)

-0:34    Function Parameters: 

-0:34    Sequence

-0:34      Function Call: norA( (global void)

-0:35  Function Definition: norD( (global void)

-0:35    Function Parameters: 

-0:35    Sequence

-0:35      Function Call: norA( (global void)

-0:36  Function Definition: norE( (global void)

-0:36    Function Parameters: 

-0:36    Sequence

-0:36      Function Call: norB( (global void)

-0:37  Function Definition: norF( (global void)

-0:37    Function Parameters: 

-0:37    Sequence

-0:37      Function Call: norB( (global void)

-0:38  Function Definition: norG( (global void)

-0:38    Function Parameters: 

-0:38    Sequence

-0:38      Function Call: norE( (global void)

-0:39  Function Definition: norH( (global void)

-0:39    Function Parameters: 

-0:39    Sequence

-0:39      Function Call: norE( (global void)

-0:40  Function Definition: norI( (global void)

-0:40    Function Parameters: 

-0:40    Sequence

-0:40      Function Call: norE( (global void)

-0:44  Function Definition: norcA( (global void)

-0:44    Function Parameters: 

-0:45  Function Definition: norcB( (global void)

-0:45    Function Parameters: 

-0:45    Sequence

-0:45      Function Call: norcA( (global void)

-0:46  Function Definition: norcC( (global void)

-0:46    Function Parameters: 

-0:46    Sequence

-0:46      Function Call: norcB( (global void)

-0:47  Function Definition: norcD( (global void)

-0:47    Function Parameters: 

-0:47    Sequence

-0:47      Function Call: norcC( (global void)

-0:47      Function Call: norcB( (global void)

-0:48  Function Definition: norcE( (global void)

-0:48    Function Parameters: 

-0:48    Sequence

-0:48      Function Call: norcD( (global void)

-0:9  Function Definition: cbar(i1; (global float)

-0:9    Function Parameters: 

-0:9      '' (in int)

-0:11    Sequence

-0:11      Function Call: cfoo(f1; (global void)

-0:11        Constant:

-0:11          4.200000

-0:13      Branch: Return with expression

-0:13        Constant:

-0:13          3.200000

-0:20  Function Definition: CB( (global void)

-0:20    Function Parameters: 

-0:20    Sequence

-0:20      Function Call: CC( (global void)

-0:21  Function Definition: CD( (global void)

-0:21    Function Parameters: 

-0:21    Sequence

-0:21      Function Call: CA( (global void)

-0:27  Function Definition: CBT( (global void)

-0:27    Function Parameters: 

-0:27    Sequence

-0:27      Function Call: CCT( (global void)

-0:27      Function Call: CCT( (global void)

-0:27      Function Call: CCT( (global void)

-0:28  Function Definition: CDT( (global void)

-0:28    Function Parameters: 

-0:28    Sequence

-0:28      Function Call: CAT( (global void)

-0:?   Linker Objects

-

+recurse1.vert
+Shader version: 330
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:9  Function Definition: self( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Function Call: self( (global void)
+0:16  Function Definition: foo(f1; (global void)
+0:16    Function Parameters: 
+0:16      '' (in float)
+0:18    Sequence
+0:18      Function Call: bar(i1; (global float)
+0:18        Constant:
+0:18          2 (const int)
+0:21  Function Definition: bar(i1; (global float)
+0:21    Function Parameters: 
+0:21      '' (in int)
+0:23    Sequence
+0:23      Function Call: foo(f1; (global void)
+0:23        Constant:
+0:23          4.200000
+0:25      Branch: Return with expression
+0:25        Constant:
+0:25          3.200000
+0:32  Function Definition: A( (global void)
+0:32    Function Parameters: 
+0:32    Sequence
+0:32      Function Call: B( (global void)
+0:33  Function Definition: C( (global void)
+0:33    Function Parameters: 
+0:33    Sequence
+0:33      Function Call: D( (global void)
+0:34  Function Definition: B( (global void)
+0:34    Function Parameters: 
+0:34    Sequence
+0:34      Function Call: C( (global void)
+0:35  Function Definition: D( (global void)
+0:35    Function Parameters: 
+0:35    Sequence
+0:35      Function Call: A( (global void)
+0:41  Function Definition: AT( (global void)
+0:41    Function Parameters: 
+0:41    Sequence
+0:41      Function Call: BT( (global void)
+0:41      Function Call: BT( (global void)
+0:41      Function Call: BT( (global void)
+0:42  Function Definition: CT( (global void)
+0:42    Function Parameters: 
+0:42    Sequence
+0:42      Function Call: DT( (global void)
+0:42      Function Call: AT( (global void)
+0:42      Function Call: DT( (global void)
+0:42      Function Call: BT( (global void)
+0:43  Function Definition: BT( (global void)
+0:43    Function Parameters: 
+0:43    Sequence
+0:43      Function Call: CT( (global void)
+0:43      Function Call: CT( (global void)
+0:43      Function Call: CT( (global void)
+0:44  Function Definition: DT( (global void)
+0:44    Function Parameters: 
+0:44    Sequence
+0:44      Function Call: AT( (global void)
+0:?   Linker Objects
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+recurse1.frag
+Shader version: 330
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:11  Function Definition: cfoo(f1; (global void)
+0:11    Function Parameters: 
+0:11      '' (in float)
+0:13    Sequence
+0:13      Function Call: cbar(i1; (global float)
+0:13        Constant:
+0:13          2 (const int)
+0:20  Function Definition: CA( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      Function Call: CB( (global void)
+0:21  Function Definition: CC( (global void)
+0:21    Function Parameters: 
+0:21    Sequence
+0:21      Function Call: CD( (global void)
+0:27  Function Definition: CAT( (global void)
+0:27    Function Parameters: 
+0:27    Sequence
+0:27      Function Call: CBT( (global void)
+0:27      Function Call: CBT( (global void)
+0:27      Function Call: CBT( (global void)
+0:28  Function Definition: CCT( (global void)
+0:28    Function Parameters: 
+0:28    Sequence
+0:28      Function Call: CDT( (global void)
+0:28      Function Call: CDT( (global void)
+0:28      Function Call: CBT( (global void)
+0:32  Function Definition: norA( (global void)
+0:32    Function Parameters: 
+0:33  Function Definition: norB( (global void)
+0:33    Function Parameters: 
+0:33    Sequence
+0:33      Function Call: norA( (global void)
+0:34  Function Definition: norC( (global void)
+0:34    Function Parameters: 
+0:34    Sequence
+0:34      Function Call: norA( (global void)
+0:35  Function Definition: norD( (global void)
+0:35    Function Parameters: 
+0:35    Sequence
+0:35      Function Call: norA( (global void)
+0:36  Function Definition: norE( (global void)
+0:36    Function Parameters: 
+0:36    Sequence
+0:36      Function Call: norB( (global void)
+0:37  Function Definition: norF( (global void)
+0:37    Function Parameters: 
+0:37    Sequence
+0:37      Function Call: norB( (global void)
+0:38  Function Definition: norG( (global void)
+0:38    Function Parameters: 
+0:38    Sequence
+0:38      Function Call: norE( (global void)
+0:39  Function Definition: norH( (global void)
+0:39    Function Parameters: 
+0:39    Sequence
+0:39      Function Call: norE( (global void)
+0:40  Function Definition: norI( (global void)
+0:40    Function Parameters: 
+0:40    Sequence
+0:40      Function Call: norE( (global void)
+0:44  Function Definition: norcA( (global void)
+0:44    Function Parameters: 
+0:45  Function Definition: norcB( (global void)
+0:45    Function Parameters: 
+0:45    Sequence
+0:45      Function Call: norcA( (global void)
+0:46  Function Definition: norcC( (global void)
+0:46    Function Parameters: 
+0:46    Sequence
+0:46      Function Call: norcB( (global void)
+0:47  Function Definition: norcD( (global void)
+0:47    Function Parameters: 
+0:47    Sequence
+0:47      Function Call: norcC( (global void)
+0:47      Function Call: norcB( (global void)
+0:48  Function Definition: norcE( (global void)
+0:48    Function Parameters: 
+0:48    Sequence
+0:48      Function Call: norcD( (global void)
+0:?   Linker Objects
+
+recurse2.frag
+Shader version: 330
+0:? Sequence
+0:9  Function Definition: cbar(i1; (global float)
+0:9    Function Parameters: 
+0:9      '' (in int)
+0:11    Sequence
+0:11      Function Call: cfoo(f1; (global void)
+0:11        Constant:
+0:11          4.200000
+0:13      Branch: Return with expression
+0:13        Constant:
+0:13          3.200000
+0:20  Function Definition: CB( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      Function Call: CC( (global void)
+0:21  Function Definition: CD( (global void)
+0:21    Function Parameters: 
+0:21    Sequence
+0:21      Function Call: CA( (global void)
+0:27  Function Definition: CBT( (global void)
+0:27    Function Parameters: 
+0:27    Sequence
+0:27      Function Call: CCT( (global void)
+0:27      Function Call: CCT( (global void)
+0:27      Function Call: CCT( (global void)
+0:28  Function Definition: CDT( (global void)
+0:28    Function Parameters: 
+0:28    Sequence
+0:28      Function Call: CAT( (global void)
+0:?   Linker Objects
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Recursion detected:
+    BT( calling CT(
+ERROR: Linking vertex stage: Recursion detected:
+    AT( calling BT(
+ERROR: Linking vertex stage: Recursion detected:
+    DT( calling AT(
+ERROR: Linking vertex stage: Recursion detected:
+    D( calling A(
+ERROR: Linking vertex stage: Recursion detected:
+    bar(i1; calling foo(f1;
+ERROR: Linking vertex stage: Recursion detected:
+    self( calling self(
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Recursion detected:
+    CCT( calling CBT(
+ERROR: Linking fragment stage: Recursion detected:
+    CBT( calling CCT(
+ERROR: Linking fragment stage: Recursion detected:
+    CC( calling CD(
+ERROR: Linking fragment stage: Recursion detected:
+    cfoo(f1; calling cbar(i1;
+
+Shader version: 330
+0:? Sequence
+0:3  Function Definition: main( (global void)
+0:3    Function Parameters: 
+0:9  Function Definition: self( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Function Call: self( (global void)
+0:16  Function Definition: foo(f1; (global void)
+0:16    Function Parameters: 
+0:16      '' (in float)
+0:18    Sequence
+0:18      Function Call: bar(i1; (global float)
+0:18        Constant:
+0:18          2 (const int)
+0:21  Function Definition: bar(i1; (global float)
+0:21    Function Parameters: 
+0:21      '' (in int)
+0:23    Sequence
+0:23      Function Call: foo(f1; (global void)
+0:23        Constant:
+0:23          4.200000
+0:25      Branch: Return with expression
+0:25        Constant:
+0:25          3.200000
+0:32  Function Definition: A( (global void)
+0:32    Function Parameters: 
+0:32    Sequence
+0:32      Function Call: B( (global void)
+0:33  Function Definition: C( (global void)
+0:33    Function Parameters: 
+0:33    Sequence
+0:33      Function Call: D( (global void)
+0:34  Function Definition: B( (global void)
+0:34    Function Parameters: 
+0:34    Sequence
+0:34      Function Call: C( (global void)
+0:35  Function Definition: D( (global void)
+0:35    Function Parameters: 
+0:35    Sequence
+0:35      Function Call: A( (global void)
+0:41  Function Definition: AT( (global void)
+0:41    Function Parameters: 
+0:41    Sequence
+0:41      Function Call: BT( (global void)
+0:41      Function Call: BT( (global void)
+0:41      Function Call: BT( (global void)
+0:42  Function Definition: CT( (global void)
+0:42    Function Parameters: 
+0:42    Sequence
+0:42      Function Call: DT( (global void)
+0:42      Function Call: AT( (global void)
+0:42      Function Call: DT( (global void)
+0:42      Function Call: BT( (global void)
+0:43  Function Definition: BT( (global void)
+0:43    Function Parameters: 
+0:43    Sequence
+0:43      Function Call: CT( (global void)
+0:43      Function Call: CT( (global void)
+0:43      Function Call: CT( (global void)
+0:44  Function Definition: DT( (global void)
+0:44    Function Parameters: 
+0:44    Sequence
+0:44      Function Call: AT( (global void)
+0:?   Linker Objects
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+Shader version: 330
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:11  Function Definition: cfoo(f1; (global void)
+0:11    Function Parameters: 
+0:11      '' (in float)
+0:13    Sequence
+0:13      Function Call: cbar(i1; (global float)
+0:13        Constant:
+0:13          2 (const int)
+0:20  Function Definition: CA( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      Function Call: CB( (global void)
+0:21  Function Definition: CC( (global void)
+0:21    Function Parameters: 
+0:21    Sequence
+0:21      Function Call: CD( (global void)
+0:27  Function Definition: CAT( (global void)
+0:27    Function Parameters: 
+0:27    Sequence
+0:27      Function Call: CBT( (global void)
+0:27      Function Call: CBT( (global void)
+0:27      Function Call: CBT( (global void)
+0:28  Function Definition: CCT( (global void)
+0:28    Function Parameters: 
+0:28    Sequence
+0:28      Function Call: CDT( (global void)
+0:28      Function Call: CDT( (global void)
+0:28      Function Call: CBT( (global void)
+0:32  Function Definition: norA( (global void)
+0:32    Function Parameters: 
+0:33  Function Definition: norB( (global void)
+0:33    Function Parameters: 
+0:33    Sequence
+0:33      Function Call: norA( (global void)
+0:34  Function Definition: norC( (global void)
+0:34    Function Parameters: 
+0:34    Sequence
+0:34      Function Call: norA( (global void)
+0:35  Function Definition: norD( (global void)
+0:35    Function Parameters: 
+0:35    Sequence
+0:35      Function Call: norA( (global void)
+0:36  Function Definition: norE( (global void)
+0:36    Function Parameters: 
+0:36    Sequence
+0:36      Function Call: norB( (global void)
+0:37  Function Definition: norF( (global void)
+0:37    Function Parameters: 
+0:37    Sequence
+0:37      Function Call: norB( (global void)
+0:38  Function Definition: norG( (global void)
+0:38    Function Parameters: 
+0:38    Sequence
+0:38      Function Call: norE( (global void)
+0:39  Function Definition: norH( (global void)
+0:39    Function Parameters: 
+0:39    Sequence
+0:39      Function Call: norE( (global void)
+0:40  Function Definition: norI( (global void)
+0:40    Function Parameters: 
+0:40    Sequence
+0:40      Function Call: norE( (global void)
+0:44  Function Definition: norcA( (global void)
+0:44    Function Parameters: 
+0:45  Function Definition: norcB( (global void)
+0:45    Function Parameters: 
+0:45    Sequence
+0:45      Function Call: norcA( (global void)
+0:46  Function Definition: norcC( (global void)
+0:46    Function Parameters: 
+0:46    Sequence
+0:46      Function Call: norcB( (global void)
+0:47  Function Definition: norcD( (global void)
+0:47    Function Parameters: 
+0:47    Sequence
+0:47      Function Call: norcC( (global void)
+0:47      Function Call: norcB( (global void)
+0:48  Function Definition: norcE( (global void)
+0:48    Function Parameters: 
+0:48    Sequence
+0:48      Function Call: norcD( (global void)
+0:9  Function Definition: cbar(i1; (global float)
+0:9    Function Parameters: 
+0:9      '' (in int)
+0:11    Sequence
+0:11      Function Call: cfoo(f1; (global void)
+0:11        Constant:
+0:11          4.200000
+0:13      Branch: Return with expression
+0:13        Constant:
+0:13          3.200000
+0:20  Function Definition: CB( (global void)
+0:20    Function Parameters: 
+0:20    Sequence
+0:20      Function Call: CC( (global void)
+0:21  Function Definition: CD( (global void)
+0:21    Function Parameters: 
+0:21    Sequence
+0:21      Function Call: CA( (global void)
+0:27  Function Definition: CBT( (global void)
+0:27    Function Parameters: 
+0:27    Sequence
+0:27      Function Call: CCT( (global void)
+0:27      Function Call: CCT( (global void)
+0:27      Function Call: CCT( (global void)
+0:28  Function Definition: CDT( (global void)
+0:28    Function Parameters: 
+0:28    Sequence
+0:28      Function Call: CAT( (global void)
+0:?   Linker Objects
+
diff --git a/Test/baseResults/reflection.vert.out b/Test/baseResults/reflection.vert.out
index cb01abe..7e9d322 100644
--- a/Test/baseResults/reflection.vert.out
+++ b/Test/baseResults/reflection.vert.out
@@ -1,97 +1,97 @@
-reflection.vert

-Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked vertex stage:

-

-

-Uniform reflection:

-image_ui2D: offset -1, type 9063, size 1, index -1

-sampler_2D: offset -1, type 8b5e, size 1, index -1

-sampler_2DMSArray: offset -1, type 910b, size 1, index -1

-anonMember3: offset 80, type 8b52, size 1, index 0

-s.a: offset -1, type 1404, size 1, index -1

-named.scalar: offset 12, type 1404, size 1, index 1

-m23: offset 16, type 8b67, size 1, index 0

-scalarAfterm23: offset 48, type 1404, size 1, index 0

-c_m23: offset 16, type 8b67, size 1, index 2

-c_scalarAfterm23: offset 64, type 1404, size 1, index 2

-scalarBeforeArray: offset 96, type 1404, size 1, index 0

-floatArray: offset 112, type 1406, size 5, index 0

-scalarAfterArray: offset 192, type 1404, size 1, index 0

-named.memvec2: offset 48, type 8b50, size 1, index 1

-named.memf1: offset 56, type 1406, size 1, index 1

-named.memf2: offset 60, type 8b56, size 1, index 1

-named.memf3: offset 64, type 1404, size 1, index 1

-named.memvec2a: offset 72, type 8b50, size 1, index 1

-named.m22: offset 80, type 8b5a, size 7, index 1

-dm22: offset -1, type 8b5a, size 4, index -1

-m22: offset 208, type 8b5a, size 3, index 0

-nested.foo.n1.a: offset 0, type 1406, size 1, index 3

-nested.foo.n2.b: offset 16, type 1406, size 1, index 3

-nested.foo.n2.c: offset 20, type 1406, size 1, index 3

-nested.foo.n2.d: offset 24, type 1406, size 1, index 3

-deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1

-deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1

-deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1

-deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1

-deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1

-deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1

-deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1

-deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1

-deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1

-deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1

-deepC[1].iv4: offset -1, type 8b52, size 1, index -1

-deepC[1].d2.i: offset -1, type 1404, size 1, index -1

-deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1

-deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1

-deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1

-deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1

-deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1

-deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1

-deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1

-deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1

-deepC[1].v3: offset -1, type 8b54, size 1, index -1

-deepD[0].iv4: offset -1, type 8b52, size 1, index -1

-deepD[0].d2.i: offset -1, type 1404, size 1, index -1

-deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1

-deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1

-deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1

-deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1

-deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1

-deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1

-deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1

-deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1

-deepD[0].v3: offset -1, type 8b54, size 1, index -1

-deepD[1].iv4: offset -1, type 8b52, size 1, index -1

-deepD[1].d2.i: offset -1, type 1404, size 1, index -1

-deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1

-deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1

-deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1

-deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1

-deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1

-deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1

-deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1

-deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1

-deepD[1].v3: offset -1, type 8b54, size 1, index -1

-abl.foo: offset 0, type 1406, size 1, index 7

-abl2.foo: offset 0, type 1406, size 1, index 11

-anonMember1: offset 0, type 8b51, size 1, index 0

-uf1: offset -1, type 1406, size 1, index -1

-uf2: offset -1, type 1406, size 1, index -1

-named.member3: offset 32, type 8b52, size 1, index 1

-

-Uniform block reflection:

-nameless: offset -1, type ffffffff, size 496, index -1

-named: offset -1, type ffffffff, size 304, index -1

-c_nameless: offset -1, type ffffffff, size 112, index -1

-nested: offset -1, type ffffffff, size 28, index -1

-abl[0]: offset -1, type ffffffff, size 4, index -1

-abl[1]: offset -1, type ffffffff, size 4, index -1

-abl[2]: offset -1, type ffffffff, size 4, index -1

-abl[3]: offset -1, type ffffffff, size 4, index -1

-abl2[0]: offset -1, type ffffffff, size 4, index -1

-abl2[1]: offset -1, type ffffffff, size 4, index -1

-abl2[2]: offset -1, type ffffffff, size 4, index -1

-abl2[3]: offset -1, type ffffffff, size 4, index -1

-

+reflection.vert
+Warning, version 440 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+Uniform reflection:
+image_ui2D: offset -1, type 9063, size 1, index -1
+sampler_2D: offset -1, type 8b5e, size 1, index -1
+sampler_2DMSArray: offset -1, type 910b, size 1, index -1
+anonMember3: offset 80, type 8b52, size 1, index 0
+s.a: offset -1, type 1404, size 1, index -1
+named.scalar: offset 12, type 1404, size 1, index 1
+m23: offset 16, type 8b67, size 1, index 0
+scalarAfterm23: offset 48, type 1404, size 1, index 0
+c_m23: offset 16, type 8b67, size 1, index 2
+c_scalarAfterm23: offset 64, type 1404, size 1, index 2
+scalarBeforeArray: offset 96, type 1404, size 1, index 0
+floatArray: offset 112, type 1406, size 5, index 0
+scalarAfterArray: offset 192, type 1404, size 1, index 0
+named.memvec2: offset 48, type 8b50, size 1, index 1
+named.memf1: offset 56, type 1406, size 1, index 1
+named.memf2: offset 60, type 8b56, size 1, index 1
+named.memf3: offset 64, type 1404, size 1, index 1
+named.memvec2a: offset 72, type 8b50, size 1, index 1
+named.m22: offset 80, type 8b5a, size 7, index 1
+dm22: offset -1, type 8b5a, size 4, index -1
+m22: offset 208, type 8b5a, size 3, index 0
+nested.foo.n1.a: offset 0, type 1406, size 1, index 3
+nested.foo.n2.b: offset 16, type 1406, size 1, index 3
+nested.foo.n2.c: offset 20, type 1406, size 1, index 3
+nested.foo.n2.d: offset 24, type 1406, size 1, index 3
+deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1
+deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1
+deepC[1].iv4: offset -1, type 8b52, size 1, index -1
+deepC[1].d2.i: offset -1, type 1404, size 1, index -1
+deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1
+deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1
+deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1
+deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1
+deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1
+deepC[1].v3: offset -1, type 8b54, size 1, index -1
+deepD[0].iv4: offset -1, type 8b52, size 1, index -1
+deepD[0].d2.i: offset -1, type 1404, size 1, index -1
+deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1
+deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1
+deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1
+deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1
+deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1
+deepD[0].v3: offset -1, type 8b54, size 1, index -1
+deepD[1].iv4: offset -1, type 8b52, size 1, index -1
+deepD[1].d2.i: offset -1, type 1404, size 1, index -1
+deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1
+deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1
+deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1
+deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1
+deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1
+deepD[1].v3: offset -1, type 8b54, size 1, index -1
+abl.foo: offset 0, type 1406, size 1, index 7
+abl2.foo: offset 0, type 1406, size 1, index 11
+anonMember1: offset 0, type 8b51, size 1, index 0
+uf1: offset -1, type 1406, size 1, index -1
+uf2: offset -1, type 1406, size 1, index -1
+named.member3: offset 32, type 8b52, size 1, index 1
+
+Uniform block reflection:
+nameless: offset -1, type ffffffff, size 496, index -1
+named: offset -1, type ffffffff, size 304, index -1
+c_nameless: offset -1, type ffffffff, size 112, index -1
+nested: offset -1, type ffffffff, size 28, index -1
+abl[0]: offset -1, type ffffffff, size 4, index -1
+abl[1]: offset -1, type ffffffff, size 4, index -1
+abl[2]: offset -1, type ffffffff, size 4, index -1
+abl[3]: offset -1, type ffffffff, size 4, index -1
+abl2[0]: offset -1, type ffffffff, size 4, index -1
+abl2[1]: offset -1, type ffffffff, size 4, index -1
+abl2[2]: offset -1, type ffffffff, size 4, index -1
+abl2[3]: offset -1, type ffffffff, size 4, index -1
+
diff --git a/Test/baseResults/sample.frag.out b/Test/baseResults/sample.frag.out
index bfa6e5a..7ad9295 100644
--- a/Test/baseResults/sample.frag.out
+++ b/Test/baseResults/sample.frag.out
@@ -1,33 +1,33 @@
-sample.frag

-Shader version: 110

-0:? Sequence

-0:38  Function Definition: main( (global void)

-0:38    Function Parameters: 

-0:40    Sequence

-0:40      move second child to first child (temp 4-component vector of float)

-0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:40        Construct vec4 (temp 4-component vector of float)

-0:40          'color' (smooth in 3-component vector of float)

-0:40          Constant:

-0:40            1.000000

-0:?   Linker Objects

-0:?     'color' (smooth in 3-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:38  Function Definition: main( (global void)

-0:38    Function Parameters: 

-0:40    Sequence

-0:40      move second child to first child (temp 4-component vector of float)

-0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:40        Construct vec4 (temp 4-component vector of float)

-0:40          'color' (smooth in 3-component vector of float)

-0:40          Constant:

-0:40            1.000000

-0:?   Linker Objects

-0:?     'color' (smooth in 3-component vector of float)

-

+sample.frag
+Shader version: 110
+0:? Sequence
+0:38  Function Definition: main( (global void)
+0:38    Function Parameters: 
+0:40    Sequence
+0:40      move second child to first child (temp 4-component vector of float)
+0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40        Construct vec4 (temp 4-component vector of float)
+0:40          'color' (smooth in 3-component vector of float)
+0:40          Constant:
+0:40            1.000000
+0:?   Linker Objects
+0:?     'color' (smooth in 3-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:38  Function Definition: main( (global void)
+0:38    Function Parameters: 
+0:40    Sequence
+0:40      move second child to first child (temp 4-component vector of float)
+0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40        Construct vec4 (temp 4-component vector of float)
+0:40          'color' (smooth in 3-component vector of float)
+0:40          Constant:
+0:40            1.000000
+0:?   Linker Objects
+0:?     'color' (smooth in 3-component vector of float)
+
diff --git a/Test/baseResults/sample.vert.out b/Test/baseResults/sample.vert.out
index a2071e9..e67db57 100644
--- a/Test/baseResults/sample.vert.out
+++ b/Test/baseResults/sample.vert.out
@@ -1,43 +1,43 @@
-sample.vert

-Shader version: 110

-0:? Sequence

-0:38  Function Definition: main( (global void)

-0:38    Function Parameters: 

-0:40    Sequence

-0:40      move second child to first child (temp 3-component vector of float)

-0:40        'color' (smooth out 3-component vector of float)

-0:40        Constant:

-0:40          1.000000

-0:40          1.000000

-0:40          1.000000

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        'gl_Position' (gl_Position 4-component vector of float Position)

-0:42        matrix-times-vector (temp 4-component vector of float)

-0:42          'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)

-0:42          'gl_Vertex' (in 4-component vector of float Vertex)

-0:?   Linker Objects

-0:?     'color' (smooth out 3-component vector of float)

-

-

-Linked vertex stage:

-

-

-Shader version: 110

-0:? Sequence

-0:38  Function Definition: main( (global void)

-0:38    Function Parameters: 

-0:40    Sequence

-0:40      move second child to first child (temp 3-component vector of float)

-0:40        'color' (smooth out 3-component vector of float)

-0:40        Constant:

-0:40          1.000000

-0:40          1.000000

-0:40          1.000000

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        'gl_Position' (gl_Position 4-component vector of float Position)

-0:42        matrix-times-vector (temp 4-component vector of float)

-0:42          'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)

-0:42          'gl_Vertex' (in 4-component vector of float Vertex)

-0:?   Linker Objects

-0:?     'color' (smooth out 3-component vector of float)

-

+sample.vert
+Shader version: 110
+0:? Sequence
+0:38  Function Definition: main( (global void)
+0:38    Function Parameters: 
+0:40    Sequence
+0:40      move second child to first child (temp 3-component vector of float)
+0:40        'color' (smooth out 3-component vector of float)
+0:40        Constant:
+0:40          1.000000
+0:40          1.000000
+0:40          1.000000
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        'gl_Position' (gl_Position 4-component vector of float Position)
+0:42        matrix-times-vector (temp 4-component vector of float)
+0:42          'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)
+0:42          'gl_Vertex' (in 4-component vector of float Vertex)
+0:?   Linker Objects
+0:?     'color' (smooth out 3-component vector of float)
+
+
+Linked vertex stage:
+
+
+Shader version: 110
+0:? Sequence
+0:38  Function Definition: main( (global void)
+0:38    Function Parameters: 
+0:40    Sequence
+0:40      move second child to first child (temp 3-component vector of float)
+0:40        'color' (smooth out 3-component vector of float)
+0:40        Constant:
+0:40          1.000000
+0:40          1.000000
+0:40          1.000000
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        'gl_Position' (gl_Position 4-component vector of float Position)
+0:42        matrix-times-vector (temp 4-component vector of float)
+0:42          'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float)
+0:42          'gl_Vertex' (in 4-component vector of float Vertex)
+0:?   Linker Objects
+0:?     'color' (smooth out 3-component vector of float)
+
diff --git a/Test/baseResults/simpleFunctionCall.frag.out b/Test/baseResults/simpleFunctionCall.frag.out
index cb55c55..2cc42a3 100644
--- a/Test/baseResults/simpleFunctionCall.frag.out
+++ b/Test/baseResults/simpleFunctionCall.frag.out
@@ -1,43 +1,43 @@
-simpleFunctionCall.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-Shader version: 150

-0:? Sequence

-0:7  Function Definition: foo( (global 4-component vector of float)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Branch: Return with expression

-0:9        'BaseColor' (smooth in 4-component vector of float)

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:14    Sequence

-0:14      move second child to first child (temp 4-component vector of float)

-0:14        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:14        Function Call: foo( (global 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

-

-Linked fragment stage:

-

-

-Shader version: 150

-0:? Sequence

-0:7  Function Definition: foo( (global 4-component vector of float)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Branch: Return with expression

-0:9        'BaseColor' (smooth in 4-component vector of float)

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:14    Sequence

-0:14      move second child to first child (temp 4-component vector of float)

-0:14        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:14        Function Call: foo( (global 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

+simpleFunctionCall.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 150
+0:? Sequence
+0:7  Function Definition: foo( (global 4-component vector of float)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Branch: Return with expression
+0:9        'BaseColor' (smooth in 4-component vector of float)
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:14    Sequence
+0:14      move second child to first child (temp 4-component vector of float)
+0:14        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:14        Function Call: foo( (global 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 150
+0:? Sequence
+0:7  Function Definition: foo( (global 4-component vector of float)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Branch: Return with expression
+0:9        'BaseColor' (smooth in 4-component vector of float)
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:14    Sequence
+0:14      move second child to first child (temp 4-component vector of float)
+0:14        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:14        Function Call: foo( (global 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out
index f73c7e3..464a279 100644
--- a/Test/baseResults/specExamples.frag.out
+++ b/Test/baseResults/specExamples.frag.out
@@ -1,617 +1,617 @@
-specExamples.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:6: '=' :  cannot convert from 'const uint' to 'global int'

-ERROR: 0:20: '' : numeric literal too big 

-ERROR: 0:21: '' : hexidecimal literal too big 

-ERROR: 0:37: 'view' : redefinition 

-ERROR: 0:63: 'invariant' : can only apply to an output 

-ERROR: 0:68: 'lightPosition' : redefinition 

-ERROR: 0:75: 'Atten' : member storage qualifier cannot contradict block storage qualifier 

-ERROR: 0:87: 'Color' : redefinition 

-ERROR: 0:92: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord

-ERROR: 0:93: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord

-ERROR: 0:99: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:99: 'local_size_y' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:100: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:102: 'color' : redefinition 

-ERROR: 0:112: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth

-ERROR: 0:118: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth

-ERROR: 0:121: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth

-ERROR: 0:172: 'x' : undeclared identifier 

-ERROR: 0:172: '[]' : scalar integer expression required 

-ERROR: 0:175: 'x' : undeclared identifier 

-ERROR: 0:175: '[]' : scalar integer expression required 

-ERROR: 0:175: 'b' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:175: 'a' : vector field selection out of range 

-ERROR: 0:175: 'length' : does not operate on this type: const float

-ERROR: 0:175: '' : function call, method, or subroutine call expected 

-ERROR: 0:175: '' : no matching overloaded function found 

-ERROR: 0:178: '[]' : scalar integer expression required 

-ERROR: 0:178: 's' : undeclared identifier 

-ERROR: 0:178: 's' :  left of '[' is not of type array, matrix, or vector  

-ERROR: 0:178: 'a' : vector field selection out of range 

-ERROR: 0:178: 'length' : does not operate on this type: const float

-ERROR: 0:178: '' : function call, method, or subroutine call expected 

-ERROR: 0:178: '' : no matching overloaded function found 

-ERROR: 0:198: 'e' : redefinition 

-ERROR: 0:226: 'in' : not allowed in nested scope 

-ERROR: 0:227: 'in' : not allowed in nested scope 

-ERROR: 0:228: 'in' : not allowed in nested scope 

-ERROR: 0:232: 'out' : not allowed in nested scope 

-ERROR: 38 compilation errors.  No code generated.

-

-

-Shader version: 430

-Requested GL_3DL_array_objects

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-using early_fragment_tests

-using depth_greater

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp int)

-0:5      'a' (global int)

-0:5      Constant:

-0:5        -1 (const int)

-0:7  Sequence

-0:7    move second child to first child (temp uint)

-0:7      'c' (global uint)

-0:7      Constant:

-0:7        4294967295 (const uint)

-0:8  Sequence

-0:8    move second child to first child (temp uint)

-0:8      'd' (global uint)

-0:8      Constant:

-0:8        4294967295 (const uint)

-0:9  Sequence

-0:9    move second child to first child (temp int)

-0:9      'e' (global int)

-0:9      Constant:

-0:9        -1 (const int)

-0:13  Sequence

-0:13    move second child to first child (temp uint)

-0:13      'f' (global uint)

-0:13      Constant:

-0:13        4294967295 (const uint)

-0:17  Sequence

-0:17    move second child to first child (temp int)

-0:17      'g' (global int)

-0:17      Constant:

-0:17        -1294967296 (const int)

-0:19  Sequence

-0:19    move second child to first child (temp int)

-0:19      'h' (global int)

-0:19      Constant:

-0:19        -1610612736 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp int)

-0:20      'i' (global int)

-0:20      Constant:

-0:20        -1 (const int)

-0:21  Sequence

-0:21    move second child to first child (temp int)

-0:21      'j' (global int)

-0:21      Constant:

-0:21        -1 (const int)

-0:22  Sequence

-0:22    move second child to first child (temp int)

-0:22      'k' (global int)

-0:22      Constant:

-0:22        -2147483648 (const int)

-0:23  Sequence

-0:23    move second child to first child (temp int)

-0:23      'l' (global int)

-0:23      Constant:

-0:23        -2147483648 (const int)

-0:25  Sequence

-0:25    move second child to first child (temp float)

-0:25      'fb' (global float)

-0:25      Constant:

-0:25        1.500000

-0:26  Sequence

-0:26    move second child to first child (temp double)

-0:26      'fd' (global double)

-0:26      Constant:

-0:26        2.000000

-0:127  Function Definition: foo(f1[5]; (global 5-element array of float)

-0:127    Function Parameters: 

-0:127      '' (in 5-element array of float)

-0:129    Sequence

-0:129      Branch: Return with expression

-0:129        Constant:

-0:129          3.400000

-0:129          4.200000

-0:129          5.000000

-0:129          5.200000

-0:129          1.100000

-0:137  Function Definition: main( (global void)

-0:137    Function Parameters: 

-0:140    Sequence

-0:140      Sequence

-0:140        Sequence

-0:140          move second child to first child (temp 5-element array of float)

-0:140            'a' (temp 5-element array of float)

-0:140            Constant:

-0:140              3.400000

-0:140              4.200000

-0:140              5.000000

-0:140              5.200000

-0:140              1.100000

-0:143      Sequence

-0:143        Sequence

-0:143          move second child to first child (temp 5-element array of float)

-0:143            'a' (temp 5-element array of float)

-0:143            Constant:

-0:143              3.400000

-0:143              4.200000

-0:143              5.000000

-0:143              5.200000

-0:143              1.100000

-0:?       Sequence

-0:149        Sequence

-0:149          move second child to first child (temp 2-element array of 4-component vector of float)

-0:149            'b' (temp 2-element array of 4-component vector of float)

-0:149            Constant:

-0:149              0.000000

-0:149              0.000000

-0:149              0.000000

-0:149              0.000000

-0:149              0.100000

-0:149              0.100000

-0:149              0.100000

-0:149              0.100000

-0:150        Sequence

-0:150          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:150            'a3' (temp 3-element array of 2-element array of 4-component vector of float)

-0:150            Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:150              'b' (temp 2-element array of 4-component vector of float)

-0:150              'b' (temp 2-element array of 4-component vector of float)

-0:150              'b' (temp 2-element array of 4-component vector of float)

-0:152        Sequence

-0:152          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:152            'a4' (temp 3-element array of 2-element array of 4-component vector of float)

-0:152            Constant:

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:?       Sequence

-0:159        Sequence

-0:159          Sequence

-0:159            move second child to first child (temp 5-element array of float)

-0:159              'b' (temp 5-element array of float)

-0:159              'a' (temp 5-element array of float)

-0:162        Sequence

-0:162          Sequence

-0:162            move second child to first child (temp 5-element array of float)

-0:162              'b' (temp 5-element array of float)

-0:162              'a' (temp 5-element array of float)

-0:165        Sequence

-0:165          Sequence

-0:165            move second child to first child (temp 5-element array of float)

-0:165              'b' (temp 5-element array of float)

-0:165              Constant:

-0:165                1.000000

-0:165                2.000000

-0:165                3.000000

-0:165                4.000000

-0:165                5.000000

-0:167        Constant:

-0:167          5 (const int)

-0:?       Sequence

-0:171        Constant:

-0:171          3 (const int)

-0:172        Constant:

-0:172          2 (const int)

-0:175      Constant:

-0:175        0.000000

-0:178      Constant:

-0:178        0.000000

-0:193      Sequence

-0:193        move second child to first child (temp structure{temp float a, temp int b})

-0:193          'e' (temp structure{temp float a, temp int b})

-0:193          Constant:

-0:193            1.200000

-0:193            2 (const int)

-0:216      Sequence

-0:216        Sequence

-0:216          move second child to first child (temp 5-element array of float)

-0:216            'a' (temp 5-element array of float)

-0:216            Constant:

-0:216              3.400000

-0:216              4.200000

-0:216              5.000000

-0:216              5.200000

-0:216              1.100000

-0:217        Sequence

-0:217          move second child to first child (temp 5-element array of float)

-0:217            'b' (temp 5-element array of float)

-0:217            Constant:

-0:217              3.400000

-0:217              4.200000

-0:217              5.000000

-0:217              5.200000

-0:217              1.100000

-0:218        Sequence

-0:218          move second child to first child (temp 5-element array of float)

-0:218            'c' (temp 5-element array of float)

-0:218            'a' (temp 5-element array of float)

-0:219        Sequence

-0:219          move second child to first child (temp 5-element array of float)

-0:219            'd' (temp 5-element array of float)

-0:219            'b' (temp 5-element array of float)

-0:?       Sequence

-0:223        Sequence

-0:223          move second child to first child (temp float)

-0:223            'ceiling' (const (read only) float)

-0:223            Convert int to float (temp float)

-0:223              add (temp int)

-0:223                'a' (global int)

-0:223                'b' (global int)

-0:?   Linker Objects

-0:?     'a' (global int)

-0:?     'b' (global int)

-0:?     'c' (global uint)

-0:?     'd' (global uint)

-0:?     'e' (global int)

-0:?     'f' (global uint)

-0:?     'g' (global int)

-0:?     'h' (global int)

-0:?     'i' (global int)

-0:?     'j' (global int)

-0:?     'k' (global int)

-0:?     'l' (global int)

-0:?     'fa' (global float)

-0:?     'fb' (global float)

-0:?     'fc' (global double)

-0:?     'fd' (global double)

-0:?     'texcoord1' (global 2-component vector of float)

-0:?     'texcoord2' (global 2-component vector of float)

-0:?     'position' (global 3-component vector of float)

-0:?     'myRGBA' (global 4-component vector of float)

-0:?     'textureLookup' (global 2-component vector of int)

-0:?     'less' (global 3-component vector of bool)

-0:?     'mat2D' (global 2X2 matrix of float)

-0:?     'optMatrix' (global 3X3 matrix of float)

-0:?     'view' (global 4X4 matrix of float)

-0:?     'projection' (global 4X4 matrix of float)

-0:?     'm' (global 3X2 matrix of float)

-0:?     'highPrecisionMVP' (global 4X4 matrix of double)

-0:?     'dm' (global 2X4 matrix of double)

-0:?     'lightVar' (global structure{global float intensity, global 3-component vector of float position})

-0:?     'frequencies' (global 3-element array of float)

-0:?     'lightPosition' (uniform 4-element array of 4-component vector of float)

-0:?     'lights' (global 2-element array of structure{global float intensity, global 3-component vector of float position})

-0:?     'numLights' (const int)

-0:?       2 (const int)

-0:?     'normal' (smooth in 3-component vector of float)

-0:?     'TexCoord' (centroid smooth in 2-component vector of float)

-0:?     'Color' (invariant centroid smooth in 4-component vector of float)

-0:?     'temperature' (noperspective in float)

-0:?     'myColor' (flat in 3-component vector of float)

-0:?     'myTexCoord' (centroid noperspective in 2-component vector of float)

-0:?     'color' (uniform 3-component vector of float)

-0:?       0.700000

-0:?       0.700000

-0:?       0.200000

-0:?     'anon@0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})

-0:?     'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})

-0:?     'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'factor' (layout(location=3 index=1 ) out 4-component vector of float)

-0:?     'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-

-

-Linked fragment stage:

-

-

-Shader version: 430

-Requested GL_3DL_array_objects

-gl_FragCoord pixel center is integer

-gl_FragCoord origin is upper left

-using early_fragment_tests

-using depth_greater

-ERROR: node is still EOpNull!

-0:5  Sequence

-0:5    move second child to first child (temp int)

-0:5      'a' (global int)

-0:5      Constant:

-0:5        -1 (const int)

-0:7  Sequence

-0:7    move second child to first child (temp uint)

-0:7      'c' (global uint)

-0:7      Constant:

-0:7        4294967295 (const uint)

-0:8  Sequence

-0:8    move second child to first child (temp uint)

-0:8      'd' (global uint)

-0:8      Constant:

-0:8        4294967295 (const uint)

-0:9  Sequence

-0:9    move second child to first child (temp int)

-0:9      'e' (global int)

-0:9      Constant:

-0:9        -1 (const int)

-0:13  Sequence

-0:13    move second child to first child (temp uint)

-0:13      'f' (global uint)

-0:13      Constant:

-0:13        4294967295 (const uint)

-0:17  Sequence

-0:17    move second child to first child (temp int)

-0:17      'g' (global int)

-0:17      Constant:

-0:17        -1294967296 (const int)

-0:19  Sequence

-0:19    move second child to first child (temp int)

-0:19      'h' (global int)

-0:19      Constant:

-0:19        -1610612736 (const int)

-0:20  Sequence

-0:20    move second child to first child (temp int)

-0:20      'i' (global int)

-0:20      Constant:

-0:20        -1 (const int)

-0:21  Sequence

-0:21    move second child to first child (temp int)

-0:21      'j' (global int)

-0:21      Constant:

-0:21        -1 (const int)

-0:22  Sequence

-0:22    move second child to first child (temp int)

-0:22      'k' (global int)

-0:22      Constant:

-0:22        -2147483648 (const int)

-0:23  Sequence

-0:23    move second child to first child (temp int)

-0:23      'l' (global int)

-0:23      Constant:

-0:23        -2147483648 (const int)

-0:25  Sequence

-0:25    move second child to first child (temp float)

-0:25      'fb' (global float)

-0:25      Constant:

-0:25        1.500000

-0:26  Sequence

-0:26    move second child to first child (temp double)

-0:26      'fd' (global double)

-0:26      Constant:

-0:26        2.000000

-0:127  Function Definition: foo(f1[5]; (global 5-element array of float)

-0:127    Function Parameters: 

-0:127      '' (in 5-element array of float)

-0:129    Sequence

-0:129      Branch: Return with expression

-0:129        Constant:

-0:129          3.400000

-0:129          4.200000

-0:129          5.000000

-0:129          5.200000

-0:129          1.100000

-0:137  Function Definition: main( (global void)

-0:137    Function Parameters: 

-0:140    Sequence

-0:140      Sequence

-0:140        Sequence

-0:140          move second child to first child (temp 5-element array of float)

-0:140            'a' (temp 5-element array of float)

-0:140            Constant:

-0:140              3.400000

-0:140              4.200000

-0:140              5.000000

-0:140              5.200000

-0:140              1.100000

-0:143      Sequence

-0:143        Sequence

-0:143          move second child to first child (temp 5-element array of float)

-0:143            'a' (temp 5-element array of float)

-0:143            Constant:

-0:143              3.400000

-0:143              4.200000

-0:143              5.000000

-0:143              5.200000

-0:143              1.100000

-0:?       Sequence

-0:149        Sequence

-0:149          move second child to first child (temp 2-element array of 4-component vector of float)

-0:149            'b' (temp 2-element array of 4-component vector of float)

-0:149            Constant:

-0:149              0.000000

-0:149              0.000000

-0:149              0.000000

-0:149              0.000000

-0:149              0.100000

-0:149              0.100000

-0:149              0.100000

-0:149              0.100000

-0:150        Sequence

-0:150          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:150            'a3' (temp 3-element array of 2-element array of 4-component vector of float)

-0:150            Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:150              'b' (temp 2-element array of 4-component vector of float)

-0:150              'b' (temp 2-element array of 4-component vector of float)

-0:150              'b' (temp 2-element array of 4-component vector of float)

-0:152        Sequence

-0:152          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)

-0:152            'a4' (temp 3-element array of 2-element array of 4-component vector of float)

-0:152            Constant:

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              0.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:152              1.000000

-0:?       Sequence

-0:159        Sequence

-0:159          Sequence

-0:159            move second child to first child (temp 5-element array of float)

-0:159              'b' (temp 5-element array of float)

-0:159              'a' (temp 5-element array of float)

-0:162        Sequence

-0:162          Sequence

-0:162            move second child to first child (temp 5-element array of float)

-0:162              'b' (temp 5-element array of float)

-0:162              'a' (temp 5-element array of float)

-0:165        Sequence

-0:165          Sequence

-0:165            move second child to first child (temp 5-element array of float)

-0:165              'b' (temp 5-element array of float)

-0:165              Constant:

-0:165                1.000000

-0:165                2.000000

-0:165                3.000000

-0:165                4.000000

-0:165                5.000000

-0:167        Constant:

-0:167          5 (const int)

-0:?       Sequence

-0:171        Constant:

-0:171          3 (const int)

-0:172        Constant:

-0:172          2 (const int)

-0:175      Constant:

-0:175        0.000000

-0:178      Constant:

-0:178        0.000000

-0:193      Sequence

-0:193        move second child to first child (temp structure{temp float a, temp int b})

-0:193          'e' (temp structure{temp float a, temp int b})

-0:193          Constant:

-0:193            1.200000

-0:193            2 (const int)

-0:216      Sequence

-0:216        Sequence

-0:216          move second child to first child (temp 5-element array of float)

-0:216            'a' (temp 5-element array of float)

-0:216            Constant:

-0:216              3.400000

-0:216              4.200000

-0:216              5.000000

-0:216              5.200000

-0:216              1.100000

-0:217        Sequence

-0:217          move second child to first child (temp 5-element array of float)

-0:217            'b' (temp 5-element array of float)

-0:217            Constant:

-0:217              3.400000

-0:217              4.200000

-0:217              5.000000

-0:217              5.200000

-0:217              1.100000

-0:218        Sequence

-0:218          move second child to first child (temp 5-element array of float)

-0:218            'c' (temp 5-element array of float)

-0:218            'a' (temp 5-element array of float)

-0:219        Sequence

-0:219          move second child to first child (temp 5-element array of float)

-0:219            'd' (temp 5-element array of float)

-0:219            'b' (temp 5-element array of float)

-0:?       Sequence

-0:223        Sequence

-0:223          move second child to first child (temp float)

-0:223            'ceiling' (const (read only) float)

-0:223            Convert int to float (temp float)

-0:223              add (temp int)

-0:223                'a' (global int)

-0:223                'b' (global int)

-0:?   Linker Objects

-0:?     'a' (global int)

-0:?     'b' (global int)

-0:?     'c' (global uint)

-0:?     'd' (global uint)

-0:?     'e' (global int)

-0:?     'f' (global uint)

-0:?     'g' (global int)

-0:?     'h' (global int)

-0:?     'i' (global int)

-0:?     'j' (global int)

-0:?     'k' (global int)

-0:?     'l' (global int)

-0:?     'fa' (global float)

-0:?     'fb' (global float)

-0:?     'fc' (global double)

-0:?     'fd' (global double)

-0:?     'texcoord1' (global 2-component vector of float)

-0:?     'texcoord2' (global 2-component vector of float)

-0:?     'position' (global 3-component vector of float)

-0:?     'myRGBA' (global 4-component vector of float)

-0:?     'textureLookup' (global 2-component vector of int)

-0:?     'less' (global 3-component vector of bool)

-0:?     'mat2D' (global 2X2 matrix of float)

-0:?     'optMatrix' (global 3X3 matrix of float)

-0:?     'view' (global 4X4 matrix of float)

-0:?     'projection' (global 4X4 matrix of float)

-0:?     'm' (global 3X2 matrix of float)

-0:?     'highPrecisionMVP' (global 4X4 matrix of double)

-0:?     'dm' (global 2X4 matrix of double)

-0:?     'lightVar' (global structure{global float intensity, global 3-component vector of float position})

-0:?     'frequencies' (global 3-element array of float)

-0:?     'lightPosition' (uniform 4-element array of 4-component vector of float)

-0:?     'lights' (global 2-element array of structure{global float intensity, global 3-component vector of float position})

-0:?     'numLights' (const int)

-0:?       2 (const int)

-0:?     'normal' (smooth in 3-component vector of float)

-0:?     'TexCoord' (centroid smooth in 2-component vector of float)

-0:?     'Color' (invariant centroid smooth in 4-component vector of float)

-0:?     'temperature' (noperspective in float)

-0:?     'myColor' (flat in 3-component vector of float)

-0:?     'myTexCoord' (centroid noperspective in 2-component vector of float)

-0:?     'color' (uniform 3-component vector of float)

-0:?       0.700000

-0:?       0.700000

-0:?       0.200000

-0:?     'anon@0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})

-0:?     'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})

-0:?     'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)

-0:?     'factor' (layout(location=3 index=1 ) out 4-component vector of float)

-0:?     'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)

-0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})

-

+specExamples.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:6: '=' :  cannot convert from 'const uint' to 'global int'
+ERROR: 0:20: '' : numeric literal too big 
+ERROR: 0:21: '' : hexidecimal literal too big 
+ERROR: 0:37: 'view' : redefinition 
+ERROR: 0:63: 'invariant' : can only apply to an output 
+ERROR: 0:68: 'lightPosition' : redefinition 
+ERROR: 0:75: 'Atten' : member storage qualifier cannot contradict block storage qualifier 
+ERROR: 0:87: 'Color' : redefinition 
+ERROR: 0:92: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:93: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
+ERROR: 0:99: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:99: 'local_size_y' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:100: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:102: 'color' : redefinition 
+ERROR: 0:112: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:118: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:121: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth
+ERROR: 0:172: 'x' : undeclared identifier 
+ERROR: 0:172: '[]' : scalar integer expression required 
+ERROR: 0:175: 'x' : undeclared identifier 
+ERROR: 0:175: '[]' : scalar integer expression required 
+ERROR: 0:175: 'b' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:175: 'a' : vector field selection out of range 
+ERROR: 0:175: 'length' : does not operate on this type: const float
+ERROR: 0:175: '' : function call, method, or subroutine call expected 
+ERROR: 0:175: '' : no matching overloaded function found 
+ERROR: 0:178: '[]' : scalar integer expression required 
+ERROR: 0:178: 's' : undeclared identifier 
+ERROR: 0:178: 's' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:178: 'a' : vector field selection out of range 
+ERROR: 0:178: 'length' : does not operate on this type: const float
+ERROR: 0:178: '' : function call, method, or subroutine call expected 
+ERROR: 0:178: '' : no matching overloaded function found 
+ERROR: 0:198: 'e' : redefinition 
+ERROR: 0:226: 'in' : not allowed in nested scope 
+ERROR: 0:227: 'in' : not allowed in nested scope 
+ERROR: 0:228: 'in' : not allowed in nested scope 
+ERROR: 0:232: 'out' : not allowed in nested scope 
+ERROR: 38 compilation errors.  No code generated.
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_greater
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp int)
+0:5      'a' (global int)
+0:5      Constant:
+0:5        -1 (const int)
+0:7  Sequence
+0:7    move second child to first child (temp uint)
+0:7      'c' (global uint)
+0:7      Constant:
+0:7        4294967295 (const uint)
+0:8  Sequence
+0:8    move second child to first child (temp uint)
+0:8      'd' (global uint)
+0:8      Constant:
+0:8        4294967295 (const uint)
+0:9  Sequence
+0:9    move second child to first child (temp int)
+0:9      'e' (global int)
+0:9      Constant:
+0:9        -1 (const int)
+0:13  Sequence
+0:13    move second child to first child (temp uint)
+0:13      'f' (global uint)
+0:13      Constant:
+0:13        4294967295 (const uint)
+0:17  Sequence
+0:17    move second child to first child (temp int)
+0:17      'g' (global int)
+0:17      Constant:
+0:17        -1294967296 (const int)
+0:19  Sequence
+0:19    move second child to first child (temp int)
+0:19      'h' (global int)
+0:19      Constant:
+0:19        -1610612736 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp int)
+0:20      'i' (global int)
+0:20      Constant:
+0:20        -1 (const int)
+0:21  Sequence
+0:21    move second child to first child (temp int)
+0:21      'j' (global int)
+0:21      Constant:
+0:21        -1 (const int)
+0:22  Sequence
+0:22    move second child to first child (temp int)
+0:22      'k' (global int)
+0:22      Constant:
+0:22        -2147483648 (const int)
+0:23  Sequence
+0:23    move second child to first child (temp int)
+0:23      'l' (global int)
+0:23      Constant:
+0:23        -2147483648 (const int)
+0:25  Sequence
+0:25    move second child to first child (temp float)
+0:25      'fb' (global float)
+0:25      Constant:
+0:25        1.500000
+0:26  Sequence
+0:26    move second child to first child (temp double)
+0:26      'fd' (global double)
+0:26      Constant:
+0:26        2.000000
+0:127  Function Definition: foo(f1[5]; (global 5-element array of float)
+0:127    Function Parameters: 
+0:127      '' (in 5-element array of float)
+0:129    Sequence
+0:129      Branch: Return with expression
+0:129        Constant:
+0:129          3.400000
+0:129          4.200000
+0:129          5.000000
+0:129          5.200000
+0:129          1.100000
+0:137  Function Definition: main( (global void)
+0:137    Function Parameters: 
+0:140    Sequence
+0:140      Sequence
+0:140        Sequence
+0:140          move second child to first child (temp 5-element array of float)
+0:140            'a' (temp 5-element array of float)
+0:140            Constant:
+0:140              3.400000
+0:140              4.200000
+0:140              5.000000
+0:140              5.200000
+0:140              1.100000
+0:143      Sequence
+0:143        Sequence
+0:143          move second child to first child (temp 5-element array of float)
+0:143            'a' (temp 5-element array of float)
+0:143            Constant:
+0:143              3.400000
+0:143              4.200000
+0:143              5.000000
+0:143              5.200000
+0:143              1.100000
+0:?       Sequence
+0:149        Sequence
+0:149          move second child to first child (temp 2-element array of 4-component vector of float)
+0:149            'b' (temp 2-element array of 4-component vector of float)
+0:149            Constant:
+0:149              0.000000
+0:149              0.000000
+0:149              0.000000
+0:149              0.000000
+0:149              0.100000
+0:149              0.100000
+0:149              0.100000
+0:149              0.100000
+0:150        Sequence
+0:150          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:150            'a3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:150            Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:150              'b' (temp 2-element array of 4-component vector of float)
+0:150              'b' (temp 2-element array of 4-component vector of float)
+0:150              'b' (temp 2-element array of 4-component vector of float)
+0:152        Sequence
+0:152          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:152            'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:152            Constant:
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:?       Sequence
+0:159        Sequence
+0:159          Sequence
+0:159            move second child to first child (temp 5-element array of float)
+0:159              'b' (temp 5-element array of float)
+0:159              'a' (temp 5-element array of float)
+0:162        Sequence
+0:162          Sequence
+0:162            move second child to first child (temp 5-element array of float)
+0:162              'b' (temp 5-element array of float)
+0:162              'a' (temp 5-element array of float)
+0:165        Sequence
+0:165          Sequence
+0:165            move second child to first child (temp 5-element array of float)
+0:165              'b' (temp 5-element array of float)
+0:165              Constant:
+0:165                1.000000
+0:165                2.000000
+0:165                3.000000
+0:165                4.000000
+0:165                5.000000
+0:167        Constant:
+0:167          5 (const int)
+0:?       Sequence
+0:171        Constant:
+0:171          3 (const int)
+0:172        Constant:
+0:172          2 (const int)
+0:175      Constant:
+0:175        0.000000
+0:178      Constant:
+0:178        0.000000
+0:193      Sequence
+0:193        move second child to first child (temp structure{temp float a, temp int b})
+0:193          'e' (temp structure{temp float a, temp int b})
+0:193          Constant:
+0:193            1.200000
+0:193            2 (const int)
+0:216      Sequence
+0:216        Sequence
+0:216          move second child to first child (temp 5-element array of float)
+0:216            'a' (temp 5-element array of float)
+0:216            Constant:
+0:216              3.400000
+0:216              4.200000
+0:216              5.000000
+0:216              5.200000
+0:216              1.100000
+0:217        Sequence
+0:217          move second child to first child (temp 5-element array of float)
+0:217            'b' (temp 5-element array of float)
+0:217            Constant:
+0:217              3.400000
+0:217              4.200000
+0:217              5.000000
+0:217              5.200000
+0:217              1.100000
+0:218        Sequence
+0:218          move second child to first child (temp 5-element array of float)
+0:218            'c' (temp 5-element array of float)
+0:218            'a' (temp 5-element array of float)
+0:219        Sequence
+0:219          move second child to first child (temp 5-element array of float)
+0:219            'd' (temp 5-element array of float)
+0:219            'b' (temp 5-element array of float)
+0:?       Sequence
+0:223        Sequence
+0:223          move second child to first child (temp float)
+0:223            'ceiling' (const (read only) float)
+0:223            Convert int to float (temp float)
+0:223              add (temp int)
+0:223                'a' (global int)
+0:223                'b' (global int)
+0:?   Linker Objects
+0:?     'a' (global int)
+0:?     'b' (global int)
+0:?     'c' (global uint)
+0:?     'd' (global uint)
+0:?     'e' (global int)
+0:?     'f' (global uint)
+0:?     'g' (global int)
+0:?     'h' (global int)
+0:?     'i' (global int)
+0:?     'j' (global int)
+0:?     'k' (global int)
+0:?     'l' (global int)
+0:?     'fa' (global float)
+0:?     'fb' (global float)
+0:?     'fc' (global double)
+0:?     'fd' (global double)
+0:?     'texcoord1' (global 2-component vector of float)
+0:?     'texcoord2' (global 2-component vector of float)
+0:?     'position' (global 3-component vector of float)
+0:?     'myRGBA' (global 4-component vector of float)
+0:?     'textureLookup' (global 2-component vector of int)
+0:?     'less' (global 3-component vector of bool)
+0:?     'mat2D' (global 2X2 matrix of float)
+0:?     'optMatrix' (global 3X3 matrix of float)
+0:?     'view' (global 4X4 matrix of float)
+0:?     'projection' (global 4X4 matrix of float)
+0:?     'm' (global 3X2 matrix of float)
+0:?     'highPrecisionMVP' (global 4X4 matrix of double)
+0:?     'dm' (global 2X4 matrix of double)
+0:?     'lightVar' (global structure{global float intensity, global 3-component vector of float position})
+0:?     'frequencies' (global 3-element array of float)
+0:?     'lightPosition' (uniform 4-element array of 4-component vector of float)
+0:?     'lights' (global 2-element array of structure{global float intensity, global 3-component vector of float position})
+0:?     'numLights' (const int)
+0:?       2 (const int)
+0:?     'normal' (smooth in 3-component vector of float)
+0:?     'TexCoord' (centroid smooth in 2-component vector of float)
+0:?     'Color' (invariant centroid smooth in 4-component vector of float)
+0:?     'temperature' (noperspective in float)
+0:?     'myColor' (flat in 3-component vector of float)
+0:?     'myTexCoord' (centroid noperspective in 2-component vector of float)
+0:?     'color' (uniform 3-component vector of float)
+0:?       0.700000
+0:?       0.700000
+0:?       0.200000
+0:?     'anon@0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})
+0:?     'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})
+0:?     'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'factor' (layout(location=3 index=1 ) out 4-component vector of float)
+0:?     'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+
+
+Linked fragment stage:
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+gl_FragCoord pixel center is integer
+gl_FragCoord origin is upper left
+using early_fragment_tests
+using depth_greater
+ERROR: node is still EOpNull!
+0:5  Sequence
+0:5    move second child to first child (temp int)
+0:5      'a' (global int)
+0:5      Constant:
+0:5        -1 (const int)
+0:7  Sequence
+0:7    move second child to first child (temp uint)
+0:7      'c' (global uint)
+0:7      Constant:
+0:7        4294967295 (const uint)
+0:8  Sequence
+0:8    move second child to first child (temp uint)
+0:8      'd' (global uint)
+0:8      Constant:
+0:8        4294967295 (const uint)
+0:9  Sequence
+0:9    move second child to first child (temp int)
+0:9      'e' (global int)
+0:9      Constant:
+0:9        -1 (const int)
+0:13  Sequence
+0:13    move second child to first child (temp uint)
+0:13      'f' (global uint)
+0:13      Constant:
+0:13        4294967295 (const uint)
+0:17  Sequence
+0:17    move second child to first child (temp int)
+0:17      'g' (global int)
+0:17      Constant:
+0:17        -1294967296 (const int)
+0:19  Sequence
+0:19    move second child to first child (temp int)
+0:19      'h' (global int)
+0:19      Constant:
+0:19        -1610612736 (const int)
+0:20  Sequence
+0:20    move second child to first child (temp int)
+0:20      'i' (global int)
+0:20      Constant:
+0:20        -1 (const int)
+0:21  Sequence
+0:21    move second child to first child (temp int)
+0:21      'j' (global int)
+0:21      Constant:
+0:21        -1 (const int)
+0:22  Sequence
+0:22    move second child to first child (temp int)
+0:22      'k' (global int)
+0:22      Constant:
+0:22        -2147483648 (const int)
+0:23  Sequence
+0:23    move second child to first child (temp int)
+0:23      'l' (global int)
+0:23      Constant:
+0:23        -2147483648 (const int)
+0:25  Sequence
+0:25    move second child to first child (temp float)
+0:25      'fb' (global float)
+0:25      Constant:
+0:25        1.500000
+0:26  Sequence
+0:26    move second child to first child (temp double)
+0:26      'fd' (global double)
+0:26      Constant:
+0:26        2.000000
+0:127  Function Definition: foo(f1[5]; (global 5-element array of float)
+0:127    Function Parameters: 
+0:127      '' (in 5-element array of float)
+0:129    Sequence
+0:129      Branch: Return with expression
+0:129        Constant:
+0:129          3.400000
+0:129          4.200000
+0:129          5.000000
+0:129          5.200000
+0:129          1.100000
+0:137  Function Definition: main( (global void)
+0:137    Function Parameters: 
+0:140    Sequence
+0:140      Sequence
+0:140        Sequence
+0:140          move second child to first child (temp 5-element array of float)
+0:140            'a' (temp 5-element array of float)
+0:140            Constant:
+0:140              3.400000
+0:140              4.200000
+0:140              5.000000
+0:140              5.200000
+0:140              1.100000
+0:143      Sequence
+0:143        Sequence
+0:143          move second child to first child (temp 5-element array of float)
+0:143            'a' (temp 5-element array of float)
+0:143            Constant:
+0:143              3.400000
+0:143              4.200000
+0:143              5.000000
+0:143              5.200000
+0:143              1.100000
+0:?       Sequence
+0:149        Sequence
+0:149          move second child to first child (temp 2-element array of 4-component vector of float)
+0:149            'b' (temp 2-element array of 4-component vector of float)
+0:149            Constant:
+0:149              0.000000
+0:149              0.000000
+0:149              0.000000
+0:149              0.000000
+0:149              0.100000
+0:149              0.100000
+0:149              0.100000
+0:149              0.100000
+0:150        Sequence
+0:150          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:150            'a3' (temp 3-element array of 2-element array of 4-component vector of float)
+0:150            Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:150              'b' (temp 2-element array of 4-component vector of float)
+0:150              'b' (temp 2-element array of 4-component vector of float)
+0:150              'b' (temp 2-element array of 4-component vector of float)
+0:152        Sequence
+0:152          move second child to first child (temp 3-element array of 2-element array of 4-component vector of float)
+0:152            'a4' (temp 3-element array of 2-element array of 4-component vector of float)
+0:152            Constant:
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              0.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:152              1.000000
+0:?       Sequence
+0:159        Sequence
+0:159          Sequence
+0:159            move second child to first child (temp 5-element array of float)
+0:159              'b' (temp 5-element array of float)
+0:159              'a' (temp 5-element array of float)
+0:162        Sequence
+0:162          Sequence
+0:162            move second child to first child (temp 5-element array of float)
+0:162              'b' (temp 5-element array of float)
+0:162              'a' (temp 5-element array of float)
+0:165        Sequence
+0:165          Sequence
+0:165            move second child to first child (temp 5-element array of float)
+0:165              'b' (temp 5-element array of float)
+0:165              Constant:
+0:165                1.000000
+0:165                2.000000
+0:165                3.000000
+0:165                4.000000
+0:165                5.000000
+0:167        Constant:
+0:167          5 (const int)
+0:?       Sequence
+0:171        Constant:
+0:171          3 (const int)
+0:172        Constant:
+0:172          2 (const int)
+0:175      Constant:
+0:175        0.000000
+0:178      Constant:
+0:178        0.000000
+0:193      Sequence
+0:193        move second child to first child (temp structure{temp float a, temp int b})
+0:193          'e' (temp structure{temp float a, temp int b})
+0:193          Constant:
+0:193            1.200000
+0:193            2 (const int)
+0:216      Sequence
+0:216        Sequence
+0:216          move second child to first child (temp 5-element array of float)
+0:216            'a' (temp 5-element array of float)
+0:216            Constant:
+0:216              3.400000
+0:216              4.200000
+0:216              5.000000
+0:216              5.200000
+0:216              1.100000
+0:217        Sequence
+0:217          move second child to first child (temp 5-element array of float)
+0:217            'b' (temp 5-element array of float)
+0:217            Constant:
+0:217              3.400000
+0:217              4.200000
+0:217              5.000000
+0:217              5.200000
+0:217              1.100000
+0:218        Sequence
+0:218          move second child to first child (temp 5-element array of float)
+0:218            'c' (temp 5-element array of float)
+0:218            'a' (temp 5-element array of float)
+0:219        Sequence
+0:219          move second child to first child (temp 5-element array of float)
+0:219            'd' (temp 5-element array of float)
+0:219            'b' (temp 5-element array of float)
+0:?       Sequence
+0:223        Sequence
+0:223          move second child to first child (temp float)
+0:223            'ceiling' (const (read only) float)
+0:223            Convert int to float (temp float)
+0:223              add (temp int)
+0:223                'a' (global int)
+0:223                'b' (global int)
+0:?   Linker Objects
+0:?     'a' (global int)
+0:?     'b' (global int)
+0:?     'c' (global uint)
+0:?     'd' (global uint)
+0:?     'e' (global int)
+0:?     'f' (global uint)
+0:?     'g' (global int)
+0:?     'h' (global int)
+0:?     'i' (global int)
+0:?     'j' (global int)
+0:?     'k' (global int)
+0:?     'l' (global int)
+0:?     'fa' (global float)
+0:?     'fb' (global float)
+0:?     'fc' (global double)
+0:?     'fd' (global double)
+0:?     'texcoord1' (global 2-component vector of float)
+0:?     'texcoord2' (global 2-component vector of float)
+0:?     'position' (global 3-component vector of float)
+0:?     'myRGBA' (global 4-component vector of float)
+0:?     'textureLookup' (global 2-component vector of int)
+0:?     'less' (global 3-component vector of bool)
+0:?     'mat2D' (global 2X2 matrix of float)
+0:?     'optMatrix' (global 3X3 matrix of float)
+0:?     'view' (global 4X4 matrix of float)
+0:?     'projection' (global 4X4 matrix of float)
+0:?     'm' (global 3X2 matrix of float)
+0:?     'highPrecisionMVP' (global 4X4 matrix of double)
+0:?     'dm' (global 2X4 matrix of double)
+0:?     'lightVar' (global structure{global float intensity, global 3-component vector of float position})
+0:?     'frequencies' (global 3-element array of float)
+0:?     'lightPosition' (uniform 4-element array of 4-component vector of float)
+0:?     'lights' (global 2-element array of structure{global float intensity, global 3-component vector of float position})
+0:?     'numLights' (const int)
+0:?       2 (const int)
+0:?     'normal' (smooth in 3-component vector of float)
+0:?     'TexCoord' (centroid smooth in 2-component vector of float)
+0:?     'Color' (invariant centroid smooth in 4-component vector of float)
+0:?     'temperature' (noperspective in float)
+0:?     'myColor' (flat in 3-component vector of float)
+0:?     'myTexCoord' (centroid noperspective in 2-component vector of float)
+0:?     'color' (uniform 3-component vector of float)
+0:?       0.700000
+0:?       0.700000
+0:?       0.200000
+0:?     'anon@0' (in block{smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten})
+0:?     'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})
+0:?     'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
+0:?     'factor' (layout(location=3 index=1 ) out 4-component vector of float)
+0:?     'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'gl_FragDepth' (gl_FragDepth float FragDepth)
+0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+0:?     'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
+
diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out
index 8359f12..bec3fb3 100644
--- a/Test/baseResults/specExamples.vert.out
+++ b/Test/baseResults/specExamples.vert.out
@@ -1,603 +1,603 @@
-specExamples.vert

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-ERROR: 0:29: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 

-ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 

-ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value 

-ERROR: 0:80: 's17' : redefinition 

-ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:89: 'binding' : atomic_uint binding is too large 

-ERROR: 0:91: 'bar' : redefinition 

-ERROR: 0:92: 'atomic_uint' : layout(binding=X) is required 

-ERROR: 0:94: 'a2' : redefinition 

-ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 

-ERROR: 0:106: '' : vertex input cannot be further qualified 

-ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor

-ERROR: 0:112: 'ColorIvn' : identifier not previously declared 

-WARNING: 0:118: '' : unknown requalification 

-ERROR: 0:132: 'shared' : not supported in this stage: vertex

-ERROR: 0:134: '' : function does not return a value: funcA

-ERROR: 0:136: '' : function does not return a value: funcB

-ERROR: 0:153: '' : function does not return a value: func3

-ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter 

-ERROR: 33 compilation errors.  No code generated.

-

-

-Shader version: 430

-Requested GL_3DL_array_objects

-ERROR: node is still EOpNull!

-0:134  Function Definition: funcA(I21; (global 4-component vector of float)

-0:134    Function Parameters: 

-0:134      'a' (restrict in image2D)

-0:136  Function Definition: funcB(I21; (global 4-component vector of float)

-0:136    Function Parameters: 

-0:136      'a' (in image2D)

-0:140  Function Definition: func(f1;f1;f1;f1; (global float)

-0:140    Function Parameters: 

-0:140      'e' (in float)

-0:140      'f' (in float)

-0:140      'g' (in float)

-0:140      'h' (in float)

-0:142    Sequence

-0:142      Branch: Return with expression

-0:142        add (temp float)

-0:142          component-wise multiply (temp float)

-0:142            'e' (in float)

-0:142            'f' (in float)

-0:142          component-wise multiply (temp float)

-0:142            'g' (in float)

-0:142            'h' (in float)

-0:146  Function Definition: func2(f1;f1;f1;f1; (global float)

-0:146    Function Parameters: 

-0:146      'e' (in float)

-0:146      'f' (in float)

-0:146      'g' (in float)

-0:146      'h' (in float)

-0:148    Sequence

-0:148      Sequence

-0:148        move second child to first child (temp float)

-0:148          'result' (temp float)

-0:148          add (temp float)

-0:148            component-wise multiply (temp float)

-0:148              'e' (in float)

-0:148              'f' (in float)

-0:148            component-wise multiply (temp float)

-0:148              'g' (in float)

-0:148              'h' (in float)

-0:150      Branch: Return with expression

-0:150        'result' (temp float)

-0:153  Function Definition: func3(f1;f1;f1; (global float)

-0:153    Function Parameters: 

-0:153      'i' (in float)

-0:153      'j' (in float)

-0:153      'k' (out float)

-0:155    Sequence

-0:155      move second child to first child (temp float)

-0:155        'k' (out float)

-0:155        add (temp float)

-0:155          component-wise multiply (temp float)

-0:155            'i' (in float)

-0:155            'i' (in float)

-0:155          'j' (in float)

-0:158  Function Definition: main( (global void)

-0:158    Function Parameters: 

-0:160    Sequence

-0:160      Sequence

-0:160        move second child to first child (temp 3-component vector of float)

-0:160          'r' (temp 3-component vector of float)

-0:160          Construct vec3 (temp 3-component vector of float)

-0:160            component-wise multiply (temp 4-component vector of float)

-0:160              'a' (in 4-component vector of float)

-0:160              'b' (in 4-component vector of float)

-0:161      Sequence

-0:161        move second child to first child (temp 3-component vector of float)

-0:161          's' (temp 3-component vector of float)

-0:161          Construct vec3 (temp 3-component vector of float)

-0:161            component-wise multiply (temp 4-component vector of float)

-0:161              'c' (in 4-component vector of float)

-0:161              'd' (in 4-component vector of float)

-0:162      move second child to first child (temp 3-component vector of float)

-0:162        vector swizzle (temp 3-component vector of float)

-0:162          'v' (smooth out 4-component vector of float)

-0:162          Sequence

-0:162            Constant:

-0:162              0 (const int)

-0:162            Constant:

-0:162              1 (const int)

-0:162            Constant:

-0:162              2 (const int)

-0:162        add (temp 3-component vector of float)

-0:162          'r' (temp 3-component vector of float)

-0:162          's' (temp 3-component vector of float)

-0:163      move second child to first child (temp float)

-0:163        direct index (temp float)

-0:163          'v' (smooth out 4-component vector of float)

-0:163          Constant:

-0:163            3 (const int)

-0:163        add (temp float)

-0:163          component-wise multiply (temp float)

-0:163            direct index (temp float)

-0:163              'a' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:163            direct index (temp float)

-0:163              'b' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:163          component-wise multiply (temp float)

-0:163            direct index (temp float)

-0:163              'c' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:163            direct index (temp float)

-0:163              'd' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:164      move second child to first child (temp float)

-0:164        direct index (temp float)

-0:164          'v' (smooth out 4-component vector of float)

-0:164          Constant:

-0:164            0 (const int)

-0:164        Function Call: func(f1;f1;f1;f1; (global float)

-0:164          direct index (temp float)

-0:164            'a' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:164          direct index (temp float)

-0:164            'b' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:164          direct index (temp float)

-0:164            'c' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:164          direct index (temp float)

-0:164            'd' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:166      move second child to first child (temp float)

-0:166        direct index (temp float)

-0:166          'v' (smooth out 4-component vector of float)

-0:166          Constant:

-0:166            0 (const int)

-0:166        Function Call: func2(f1;f1;f1;f1; (global float)

-0:166          direct index (temp float)

-0:166            'a' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:166          direct index (temp float)

-0:166            'b' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:166          direct index (temp float)

-0:166            'c' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:166          direct index (temp float)

-0:166            'd' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:167      Function Call: func3(f1;f1;f1; (global float)

-0:167        component-wise multiply (temp float)

-0:167          direct index (temp float)

-0:167            'a' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167          direct index (temp float)

-0:167            'b' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167        component-wise multiply (temp float)

-0:167          direct index (temp float)

-0:167            'c' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167          direct index (temp float)

-0:167            'd' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167        direct index (temp float)

-0:167          'v' (smooth out 4-component vector of float)

-0:167          Constant:

-0:167            0 (const int)

-0:169      Function Call: funcA(I21; (global 4-component vector of float)

-0:169        'img1' (layout(rgba32f ) uniform image2D)

-0:170      Function Call: funcB(I21; (global 4-component vector of float)

-0:170        'img2' (layout(rgba32f ) coherent uniform image2D)

-0:?       Sequence

-0:178        Sequence

-0:178          move second child to first child (temp structure{temp float intensity, temp 3-component vector of float position})

-0:178            'lightVar' (temp structure{temp float intensity, temp 3-component vector of float position})

-0:178            Constant:

-0:178              3.000000

-0:178              1.000000

-0:178              2.000000

-0:178              3.000000

-0:?       Sequence

-0:185        Sequence

-0:185          move second child to first child (temp 5-element array of float)

-0:185            'a' (temp 5-element array of float)

-0:185            Construct float (temp 5-element array of float)

-0:185              'g' (temp float)

-0:185              Constant:

-0:185                1.000000

-0:185              'g' (temp float)

-0:185              Constant:

-0:185                2.300000

-0:185              'g' (temp float)

-0:188        move second child to first child (temp 3-element array of float)

-0:188          'b' (temp 3-element array of float)

-0:188          Construct float (temp 3-element array of float)

-0:188            'g' (temp float)

-0:188            add (temp float)

-0:188              'g' (temp float)

-0:188              Constant:

-0:188                1.000000

-0:188            add (temp float)

-0:188              'g' (temp float)

-0:188              Constant:

-0:188                2.000000

-0:191      Sequence

-0:191        Sequence

-0:191          move second child to first child (temp 2-element array of 4-component vector of float)

-0:191            'b' (temp 2-element array of 4-component vector of float)

-0:191            Constant:

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:192        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:192          'b' (temp 2-element array of 4-component vector of float)

-0:192          'b' (temp 2-element array of 4-component vector of float)

-0:192          'b' (temp 2-element array of 4-component vector of float)

-0:193        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:193          'b' (temp 2-element array of 4-component vector of float)

-0:193          'b' (temp 2-element array of 4-component vector of float)

-0:193          'b' (temp 2-element array of 4-component vector of float)

-0:194        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:194          'b' (temp 2-element array of 4-component vector of float)

-0:194          'b' (temp 2-element array of 4-component vector of float)

-0:194          'b' (temp 2-element array of 4-component vector of float)

-0:?   Linker Objects

-0:?     'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})

-0:?     'anon@0' (out block{out 4-component vector of float Color})

-0:?     'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform implicitly-sized array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})

-0:?     'normal' (layout(location=3 ) in 4-component vector of float)

-0:?     'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)

-0:?     'transforms2' (layout(location=9 ) in 2-element array of 4X4 matrix of float)

-0:?     's' (layout(location=3 ) temp structure{global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c})

-0:?     'var1' (smooth out 4-component vector of float)

-0:?     'anon@1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})

-0:?     'var5' (smooth out 4-component vector of float)

-0:?     'anon@2' (out block{out 4-component vector of float var6})

-0:?     'var7' (smooth out 4-component vector of float)

-0:?     'anon@3' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform 3X3 matrix of float N1})

-0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})

-0:?     's17' (layout(binding=3 ) uniform sampler2D)

-0:?     'a2' (layout(binding=2 offset=4 ) uniform atomic_uint)

-0:?     'bar' (layout(binding=2 ) uniform atomic_uint)

-0:?     'bar23' (layout(offset=8 ) uniform atomic_uint)

-0:?     'b2' (layout(binding=2 ) uniform atomic_uint)

-0:?     'c2' (layout(binding=3 ) uniform atomic_uint)

-0:?     'd2' (layout(binding=2 ) uniform atomic_uint)

-0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'ColorInv' (smooth out 3-component vector of float)

-0:?     'Color4' (invariant centroid smooth out 3-component vector of float)

-0:?     'position' (smooth out 4-component vector of float)

-0:?     'Color5' (smooth out 3-component vector of float)

-0:?     'a' (in 4-component vector of float)

-0:?     'b' (in 4-component vector of float)

-0:?     'c' (in 4-component vector of float)

-0:?     'd' (in 4-component vector of float)

-0:?     'v' (smooth out 4-component vector of float)

-0:?     'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})

-0:?     'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})

-0:?     'shv' (shared 4-component vector of float)

-0:?     'img1' (layout(rgba32f ) uniform image2D)

-0:?     'img2' (layout(rgba32f ) coherent uniform image2D)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 430

-Requested GL_3DL_array_objects

-ERROR: node is still EOpNull!

-0:134  Function Definition: funcA(I21; (global 4-component vector of float)

-0:134    Function Parameters: 

-0:134      'a' (restrict in image2D)

-0:136  Function Definition: funcB(I21; (global 4-component vector of float)

-0:136    Function Parameters: 

-0:136      'a' (in image2D)

-0:140  Function Definition: func(f1;f1;f1;f1; (global float)

-0:140    Function Parameters: 

-0:140      'e' (in float)

-0:140      'f' (in float)

-0:140      'g' (in float)

-0:140      'h' (in float)

-0:142    Sequence

-0:142      Branch: Return with expression

-0:142        add (temp float)

-0:142          component-wise multiply (temp float)

-0:142            'e' (in float)

-0:142            'f' (in float)

-0:142          component-wise multiply (temp float)

-0:142            'g' (in float)

-0:142            'h' (in float)

-0:146  Function Definition: func2(f1;f1;f1;f1; (global float)

-0:146    Function Parameters: 

-0:146      'e' (in float)

-0:146      'f' (in float)

-0:146      'g' (in float)

-0:146      'h' (in float)

-0:148    Sequence

-0:148      Sequence

-0:148        move second child to first child (temp float)

-0:148          'result' (temp float)

-0:148          add (temp float)

-0:148            component-wise multiply (temp float)

-0:148              'e' (in float)

-0:148              'f' (in float)

-0:148            component-wise multiply (temp float)

-0:148              'g' (in float)

-0:148              'h' (in float)

-0:150      Branch: Return with expression

-0:150        'result' (temp float)

-0:153  Function Definition: func3(f1;f1;f1; (global float)

-0:153    Function Parameters: 

-0:153      'i' (in float)

-0:153      'j' (in float)

-0:153      'k' (out float)

-0:155    Sequence

-0:155      move second child to first child (temp float)

-0:155        'k' (out float)

-0:155        add (temp float)

-0:155          component-wise multiply (temp float)

-0:155            'i' (in float)

-0:155            'i' (in float)

-0:155          'j' (in float)

-0:158  Function Definition: main( (global void)

-0:158    Function Parameters: 

-0:160    Sequence

-0:160      Sequence

-0:160        move second child to first child (temp 3-component vector of float)

-0:160          'r' (temp 3-component vector of float)

-0:160          Construct vec3 (temp 3-component vector of float)

-0:160            component-wise multiply (temp 4-component vector of float)

-0:160              'a' (in 4-component vector of float)

-0:160              'b' (in 4-component vector of float)

-0:161      Sequence

-0:161        move second child to first child (temp 3-component vector of float)

-0:161          's' (temp 3-component vector of float)

-0:161          Construct vec3 (temp 3-component vector of float)

-0:161            component-wise multiply (temp 4-component vector of float)

-0:161              'c' (in 4-component vector of float)

-0:161              'd' (in 4-component vector of float)

-0:162      move second child to first child (temp 3-component vector of float)

-0:162        vector swizzle (temp 3-component vector of float)

-0:162          'v' (smooth out 4-component vector of float)

-0:162          Sequence

-0:162            Constant:

-0:162              0 (const int)

-0:162            Constant:

-0:162              1 (const int)

-0:162            Constant:

-0:162              2 (const int)

-0:162        add (temp 3-component vector of float)

-0:162          'r' (temp 3-component vector of float)

-0:162          's' (temp 3-component vector of float)

-0:163      move second child to first child (temp float)

-0:163        direct index (temp float)

-0:163          'v' (smooth out 4-component vector of float)

-0:163          Constant:

-0:163            3 (const int)

-0:163        add (temp float)

-0:163          component-wise multiply (temp float)

-0:163            direct index (temp float)

-0:163              'a' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:163            direct index (temp float)

-0:163              'b' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:163          component-wise multiply (temp float)

-0:163            direct index (temp float)

-0:163              'c' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:163            direct index (temp float)

-0:163              'd' (in 4-component vector of float)

-0:163              Constant:

-0:163                3 (const int)

-0:164      move second child to first child (temp float)

-0:164        direct index (temp float)

-0:164          'v' (smooth out 4-component vector of float)

-0:164          Constant:

-0:164            0 (const int)

-0:164        Function Call: func(f1;f1;f1;f1; (global float)

-0:164          direct index (temp float)

-0:164            'a' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:164          direct index (temp float)

-0:164            'b' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:164          direct index (temp float)

-0:164            'c' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:164          direct index (temp float)

-0:164            'd' (in 4-component vector of float)

-0:164            Constant:

-0:164              0 (const int)

-0:166      move second child to first child (temp float)

-0:166        direct index (temp float)

-0:166          'v' (smooth out 4-component vector of float)

-0:166          Constant:

-0:166            0 (const int)

-0:166        Function Call: func2(f1;f1;f1;f1; (global float)

-0:166          direct index (temp float)

-0:166            'a' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:166          direct index (temp float)

-0:166            'b' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:166          direct index (temp float)

-0:166            'c' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:166          direct index (temp float)

-0:166            'd' (in 4-component vector of float)

-0:166            Constant:

-0:166              0 (const int)

-0:167      Function Call: func3(f1;f1;f1; (global float)

-0:167        component-wise multiply (temp float)

-0:167          direct index (temp float)

-0:167            'a' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167          direct index (temp float)

-0:167            'b' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167        component-wise multiply (temp float)

-0:167          direct index (temp float)

-0:167            'c' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167          direct index (temp float)

-0:167            'd' (in 4-component vector of float)

-0:167            Constant:

-0:167              0 (const int)

-0:167        direct index (temp float)

-0:167          'v' (smooth out 4-component vector of float)

-0:167          Constant:

-0:167            0 (const int)

-0:169      Function Call: funcA(I21; (global 4-component vector of float)

-0:169        'img1' (layout(rgba32f ) uniform image2D)

-0:170      Function Call: funcB(I21; (global 4-component vector of float)

-0:170        'img2' (layout(rgba32f ) coherent uniform image2D)

-0:?       Sequence

-0:178        Sequence

-0:178          move second child to first child (temp structure{temp float intensity, temp 3-component vector of float position})

-0:178            'lightVar' (temp structure{temp float intensity, temp 3-component vector of float position})

-0:178            Constant:

-0:178              3.000000

-0:178              1.000000

-0:178              2.000000

-0:178              3.000000

-0:?       Sequence

-0:185        Sequence

-0:185          move second child to first child (temp 5-element array of float)

-0:185            'a' (temp 5-element array of float)

-0:185            Construct float (temp 5-element array of float)

-0:185              'g' (temp float)

-0:185              Constant:

-0:185                1.000000

-0:185              'g' (temp float)

-0:185              Constant:

-0:185                2.300000

-0:185              'g' (temp float)

-0:188        move second child to first child (temp 3-element array of float)

-0:188          'b' (temp 3-element array of float)

-0:188          Construct float (temp 3-element array of float)

-0:188            'g' (temp float)

-0:188            add (temp float)

-0:188              'g' (temp float)

-0:188              Constant:

-0:188                1.000000

-0:188            add (temp float)

-0:188              'g' (temp float)

-0:188              Constant:

-0:188                2.000000

-0:191      Sequence

-0:191        Sequence

-0:191          move second child to first child (temp 2-element array of 4-component vector of float)

-0:191            'b' (temp 2-element array of 4-component vector of float)

-0:191            Constant:

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:191              1.000000

-0:192        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:192          'b' (temp 2-element array of 4-component vector of float)

-0:192          'b' (temp 2-element array of 4-component vector of float)

-0:192          'b' (temp 2-element array of 4-component vector of float)

-0:193        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:193          'b' (temp 2-element array of 4-component vector of float)

-0:193          'b' (temp 2-element array of 4-component vector of float)

-0:193          'b' (temp 2-element array of 4-component vector of float)

-0:194        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)

-0:194          'b' (temp 2-element array of 4-component vector of float)

-0:194          'b' (temp 2-element array of 4-component vector of float)

-0:194          'b' (temp 2-element array of 4-component vector of float)

-0:?   Linker Objects

-0:?     'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})

-0:?     'anon@0' (out block{out 4-component vector of float Color})

-0:?     'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform 1-element array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})

-0:?     'normal' (layout(location=3 ) in 4-component vector of float)

-0:?     'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)

-0:?     'transforms2' (layout(location=9 ) in 2-element array of 4X4 matrix of float)

-0:?     's' (layout(location=3 ) temp structure{global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c})

-0:?     'var1' (smooth out 4-component vector of float)

-0:?     'anon@1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})

-0:?     'var5' (smooth out 4-component vector of float)

-0:?     'anon@2' (out block{out 4-component vector of float var6})

-0:?     'var7' (smooth out 4-component vector of float)

-0:?     'anon@3' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform 3X3 matrix of float N1})

-0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})

-0:?     's17' (layout(binding=3 ) uniform sampler2D)

-0:?     'a2' (layout(binding=2 offset=4 ) uniform atomic_uint)

-0:?     'bar' (layout(binding=2 ) uniform atomic_uint)

-0:?     'bar23' (layout(offset=8 ) uniform atomic_uint)

-0:?     'b2' (layout(binding=2 ) uniform atomic_uint)

-0:?     'c2' (layout(binding=3 ) uniform atomic_uint)

-0:?     'd2' (layout(binding=2 ) uniform atomic_uint)

-0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'ColorInv' (smooth out 3-component vector of float)

-0:?     'Color4' (invariant centroid smooth out 3-component vector of float)

-0:?     'position' (smooth out 4-component vector of float)

-0:?     'Color5' (smooth out 3-component vector of float)

-0:?     'a' (in 4-component vector of float)

-0:?     'b' (in 4-component vector of float)

-0:?     'c' (in 4-component vector of float)

-0:?     'd' (in 4-component vector of float)

-0:?     'v' (smooth out 4-component vector of float)

-0:?     'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})

-0:?     'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})

-0:?     'shv' (shared 4-component vector of float)

-0:?     'img1' (layout(rgba32f ) uniform image2D)

-0:?     'img2' (layout(rgba32f ) coherent uniform image2D)

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+specExamples.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:29: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers 
+ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) 
+ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value 
+ERROR: 0:80: 's17' : redefinition 
+ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:89: 'binding' : atomic_uint binding is too large 
+ERROR: 0:91: 'bar' : redefinition 
+ERROR: 0:92: 'atomic_uint' : layout(binding=X) is required 
+ERROR: 0:94: 'a2' : redefinition 
+ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
+ERROR: 0:106: '' : vertex input cannot be further qualified 
+ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor
+ERROR: 0:112: 'ColorIvn' : identifier not previously declared 
+WARNING: 0:118: '' : unknown requalification 
+ERROR: 0:132: 'shared' : not supported in this stage: vertex
+ERROR: 0:134: '' : function does not return a value: funcA
+ERROR: 0:136: '' : function does not return a value: funcB
+ERROR: 0:153: '' : function does not return a value: func3
+ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter 
+ERROR: 33 compilation errors.  No code generated.
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+ERROR: node is still EOpNull!
+0:134  Function Definition: funcA(I21; (global 4-component vector of float)
+0:134    Function Parameters: 
+0:134      'a' (restrict in image2D)
+0:136  Function Definition: funcB(I21; (global 4-component vector of float)
+0:136    Function Parameters: 
+0:136      'a' (in image2D)
+0:140  Function Definition: func(f1;f1;f1;f1; (global float)
+0:140    Function Parameters: 
+0:140      'e' (in float)
+0:140      'f' (in float)
+0:140      'g' (in float)
+0:140      'h' (in float)
+0:142    Sequence
+0:142      Branch: Return with expression
+0:142        add (temp float)
+0:142          component-wise multiply (temp float)
+0:142            'e' (in float)
+0:142            'f' (in float)
+0:142          component-wise multiply (temp float)
+0:142            'g' (in float)
+0:142            'h' (in float)
+0:146  Function Definition: func2(f1;f1;f1;f1; (global float)
+0:146    Function Parameters: 
+0:146      'e' (in float)
+0:146      'f' (in float)
+0:146      'g' (in float)
+0:146      'h' (in float)
+0:148    Sequence
+0:148      Sequence
+0:148        move second child to first child (temp float)
+0:148          'result' (temp float)
+0:148          add (temp float)
+0:148            component-wise multiply (temp float)
+0:148              'e' (in float)
+0:148              'f' (in float)
+0:148            component-wise multiply (temp float)
+0:148              'g' (in float)
+0:148              'h' (in float)
+0:150      Branch: Return with expression
+0:150        'result' (temp float)
+0:153  Function Definition: func3(f1;f1;f1; (global float)
+0:153    Function Parameters: 
+0:153      'i' (in float)
+0:153      'j' (in float)
+0:153      'k' (out float)
+0:155    Sequence
+0:155      move second child to first child (temp float)
+0:155        'k' (out float)
+0:155        add (temp float)
+0:155          component-wise multiply (temp float)
+0:155            'i' (in float)
+0:155            'i' (in float)
+0:155          'j' (in float)
+0:158  Function Definition: main( (global void)
+0:158    Function Parameters: 
+0:160    Sequence
+0:160      Sequence
+0:160        move second child to first child (temp 3-component vector of float)
+0:160          'r' (temp 3-component vector of float)
+0:160          Construct vec3 (temp 3-component vector of float)
+0:160            component-wise multiply (temp 4-component vector of float)
+0:160              'a' (in 4-component vector of float)
+0:160              'b' (in 4-component vector of float)
+0:161      Sequence
+0:161        move second child to first child (temp 3-component vector of float)
+0:161          's' (temp 3-component vector of float)
+0:161          Construct vec3 (temp 3-component vector of float)
+0:161            component-wise multiply (temp 4-component vector of float)
+0:161              'c' (in 4-component vector of float)
+0:161              'd' (in 4-component vector of float)
+0:162      move second child to first child (temp 3-component vector of float)
+0:162        vector swizzle (temp 3-component vector of float)
+0:162          'v' (smooth out 4-component vector of float)
+0:162          Sequence
+0:162            Constant:
+0:162              0 (const int)
+0:162            Constant:
+0:162              1 (const int)
+0:162            Constant:
+0:162              2 (const int)
+0:162        add (temp 3-component vector of float)
+0:162          'r' (temp 3-component vector of float)
+0:162          's' (temp 3-component vector of float)
+0:163      move second child to first child (temp float)
+0:163        direct index (temp float)
+0:163          'v' (smooth out 4-component vector of float)
+0:163          Constant:
+0:163            3 (const int)
+0:163        add (temp float)
+0:163          component-wise multiply (temp float)
+0:163            direct index (temp float)
+0:163              'a' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:163            direct index (temp float)
+0:163              'b' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:163          component-wise multiply (temp float)
+0:163            direct index (temp float)
+0:163              'c' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:163            direct index (temp float)
+0:163              'd' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:164      move second child to first child (temp float)
+0:164        direct index (temp float)
+0:164          'v' (smooth out 4-component vector of float)
+0:164          Constant:
+0:164            0 (const int)
+0:164        Function Call: func(f1;f1;f1;f1; (global float)
+0:164          direct index (temp float)
+0:164            'a' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:164          direct index (temp float)
+0:164            'b' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:164          direct index (temp float)
+0:164            'c' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:164          direct index (temp float)
+0:164            'd' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:166      move second child to first child (temp float)
+0:166        direct index (temp float)
+0:166          'v' (smooth out 4-component vector of float)
+0:166          Constant:
+0:166            0 (const int)
+0:166        Function Call: func2(f1;f1;f1;f1; (global float)
+0:166          direct index (temp float)
+0:166            'a' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:166          direct index (temp float)
+0:166            'b' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:166          direct index (temp float)
+0:166            'c' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:166          direct index (temp float)
+0:166            'd' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:167      Function Call: func3(f1;f1;f1; (global float)
+0:167        component-wise multiply (temp float)
+0:167          direct index (temp float)
+0:167            'a' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167          direct index (temp float)
+0:167            'b' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167        component-wise multiply (temp float)
+0:167          direct index (temp float)
+0:167            'c' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167          direct index (temp float)
+0:167            'd' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167        direct index (temp float)
+0:167          'v' (smooth out 4-component vector of float)
+0:167          Constant:
+0:167            0 (const int)
+0:169      Function Call: funcA(I21; (global 4-component vector of float)
+0:169        'img1' (layout(rgba32f ) uniform image2D)
+0:170      Function Call: funcB(I21; (global 4-component vector of float)
+0:170        'img2' (layout(rgba32f ) coherent uniform image2D)
+0:?       Sequence
+0:178        Sequence
+0:178          move second child to first child (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178            'lightVar' (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178            Constant:
+0:178              3.000000
+0:178              1.000000
+0:178              2.000000
+0:178              3.000000
+0:?       Sequence
+0:185        Sequence
+0:185          move second child to first child (temp 5-element array of float)
+0:185            'a' (temp 5-element array of float)
+0:185            Construct float (temp 5-element array of float)
+0:185              'g' (temp float)
+0:185              Constant:
+0:185                1.000000
+0:185              'g' (temp float)
+0:185              Constant:
+0:185                2.300000
+0:185              'g' (temp float)
+0:188        move second child to first child (temp 3-element array of float)
+0:188          'b' (temp 3-element array of float)
+0:188          Construct float (temp 3-element array of float)
+0:188            'g' (temp float)
+0:188            add (temp float)
+0:188              'g' (temp float)
+0:188              Constant:
+0:188                1.000000
+0:188            add (temp float)
+0:188              'g' (temp float)
+0:188              Constant:
+0:188                2.000000
+0:191      Sequence
+0:191        Sequence
+0:191          move second child to first child (temp 2-element array of 4-component vector of float)
+0:191            'b' (temp 2-element array of 4-component vector of float)
+0:191            Constant:
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:192        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:192          'b' (temp 2-element array of 4-component vector of float)
+0:192          'b' (temp 2-element array of 4-component vector of float)
+0:192          'b' (temp 2-element array of 4-component vector of float)
+0:193        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:193          'b' (temp 2-element array of 4-component vector of float)
+0:193          'b' (temp 2-element array of 4-component vector of float)
+0:193          'b' (temp 2-element array of 4-component vector of float)
+0:194        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:194          'b' (temp 2-element array of 4-component vector of float)
+0:194          'b' (temp 2-element array of 4-component vector of float)
+0:194          'b' (temp 2-element array of 4-component vector of float)
+0:?   Linker Objects
+0:?     'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})
+0:?     'anon@0' (out block{out 4-component vector of float Color})
+0:?     'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform implicitly-sized array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})
+0:?     'normal' (layout(location=3 ) in 4-component vector of float)
+0:?     'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)
+0:?     'transforms2' (layout(location=9 ) in 2-element array of 4X4 matrix of float)
+0:?     's' (layout(location=3 ) temp structure{global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c})
+0:?     'var1' (smooth out 4-component vector of float)
+0:?     'anon@1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})
+0:?     'var5' (smooth out 4-component vector of float)
+0:?     'anon@2' (out block{out 4-component vector of float var6})
+0:?     'var7' (smooth out 4-component vector of float)
+0:?     'anon@3' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform 3X3 matrix of float N1})
+0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})
+0:?     's17' (layout(binding=3 ) uniform sampler2D)
+0:?     'a2' (layout(binding=2 offset=4 ) uniform atomic_uint)
+0:?     'bar' (layout(binding=2 ) uniform atomic_uint)
+0:?     'bar23' (layout(offset=8 ) uniform atomic_uint)
+0:?     'b2' (layout(binding=2 ) uniform atomic_uint)
+0:?     'c2' (layout(binding=3 ) uniform atomic_uint)
+0:?     'd2' (layout(binding=2 ) uniform atomic_uint)
+0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'ColorInv' (smooth out 3-component vector of float)
+0:?     'Color4' (invariant centroid smooth out 3-component vector of float)
+0:?     'position' (smooth out 4-component vector of float)
+0:?     'Color5' (smooth out 3-component vector of float)
+0:?     'a' (in 4-component vector of float)
+0:?     'b' (in 4-component vector of float)
+0:?     'c' (in 4-component vector of float)
+0:?     'd' (in 4-component vector of float)
+0:?     'v' (smooth out 4-component vector of float)
+0:?     'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})
+0:?     'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})
+0:?     'shv' (shared 4-component vector of float)
+0:?     'img1' (layout(rgba32f ) uniform image2D)
+0:?     'img2' (layout(rgba32f ) coherent uniform image2D)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 430
+Requested GL_3DL_array_objects
+ERROR: node is still EOpNull!
+0:134  Function Definition: funcA(I21; (global 4-component vector of float)
+0:134    Function Parameters: 
+0:134      'a' (restrict in image2D)
+0:136  Function Definition: funcB(I21; (global 4-component vector of float)
+0:136    Function Parameters: 
+0:136      'a' (in image2D)
+0:140  Function Definition: func(f1;f1;f1;f1; (global float)
+0:140    Function Parameters: 
+0:140      'e' (in float)
+0:140      'f' (in float)
+0:140      'g' (in float)
+0:140      'h' (in float)
+0:142    Sequence
+0:142      Branch: Return with expression
+0:142        add (temp float)
+0:142          component-wise multiply (temp float)
+0:142            'e' (in float)
+0:142            'f' (in float)
+0:142          component-wise multiply (temp float)
+0:142            'g' (in float)
+0:142            'h' (in float)
+0:146  Function Definition: func2(f1;f1;f1;f1; (global float)
+0:146    Function Parameters: 
+0:146      'e' (in float)
+0:146      'f' (in float)
+0:146      'g' (in float)
+0:146      'h' (in float)
+0:148    Sequence
+0:148      Sequence
+0:148        move second child to first child (temp float)
+0:148          'result' (temp float)
+0:148          add (temp float)
+0:148            component-wise multiply (temp float)
+0:148              'e' (in float)
+0:148              'f' (in float)
+0:148            component-wise multiply (temp float)
+0:148              'g' (in float)
+0:148              'h' (in float)
+0:150      Branch: Return with expression
+0:150        'result' (temp float)
+0:153  Function Definition: func3(f1;f1;f1; (global float)
+0:153    Function Parameters: 
+0:153      'i' (in float)
+0:153      'j' (in float)
+0:153      'k' (out float)
+0:155    Sequence
+0:155      move second child to first child (temp float)
+0:155        'k' (out float)
+0:155        add (temp float)
+0:155          component-wise multiply (temp float)
+0:155            'i' (in float)
+0:155            'i' (in float)
+0:155          'j' (in float)
+0:158  Function Definition: main( (global void)
+0:158    Function Parameters: 
+0:160    Sequence
+0:160      Sequence
+0:160        move second child to first child (temp 3-component vector of float)
+0:160          'r' (temp 3-component vector of float)
+0:160          Construct vec3 (temp 3-component vector of float)
+0:160            component-wise multiply (temp 4-component vector of float)
+0:160              'a' (in 4-component vector of float)
+0:160              'b' (in 4-component vector of float)
+0:161      Sequence
+0:161        move second child to first child (temp 3-component vector of float)
+0:161          's' (temp 3-component vector of float)
+0:161          Construct vec3 (temp 3-component vector of float)
+0:161            component-wise multiply (temp 4-component vector of float)
+0:161              'c' (in 4-component vector of float)
+0:161              'd' (in 4-component vector of float)
+0:162      move second child to first child (temp 3-component vector of float)
+0:162        vector swizzle (temp 3-component vector of float)
+0:162          'v' (smooth out 4-component vector of float)
+0:162          Sequence
+0:162            Constant:
+0:162              0 (const int)
+0:162            Constant:
+0:162              1 (const int)
+0:162            Constant:
+0:162              2 (const int)
+0:162        add (temp 3-component vector of float)
+0:162          'r' (temp 3-component vector of float)
+0:162          's' (temp 3-component vector of float)
+0:163      move second child to first child (temp float)
+0:163        direct index (temp float)
+0:163          'v' (smooth out 4-component vector of float)
+0:163          Constant:
+0:163            3 (const int)
+0:163        add (temp float)
+0:163          component-wise multiply (temp float)
+0:163            direct index (temp float)
+0:163              'a' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:163            direct index (temp float)
+0:163              'b' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:163          component-wise multiply (temp float)
+0:163            direct index (temp float)
+0:163              'c' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:163            direct index (temp float)
+0:163              'd' (in 4-component vector of float)
+0:163              Constant:
+0:163                3 (const int)
+0:164      move second child to first child (temp float)
+0:164        direct index (temp float)
+0:164          'v' (smooth out 4-component vector of float)
+0:164          Constant:
+0:164            0 (const int)
+0:164        Function Call: func(f1;f1;f1;f1; (global float)
+0:164          direct index (temp float)
+0:164            'a' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:164          direct index (temp float)
+0:164            'b' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:164          direct index (temp float)
+0:164            'c' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:164          direct index (temp float)
+0:164            'd' (in 4-component vector of float)
+0:164            Constant:
+0:164              0 (const int)
+0:166      move second child to first child (temp float)
+0:166        direct index (temp float)
+0:166          'v' (smooth out 4-component vector of float)
+0:166          Constant:
+0:166            0 (const int)
+0:166        Function Call: func2(f1;f1;f1;f1; (global float)
+0:166          direct index (temp float)
+0:166            'a' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:166          direct index (temp float)
+0:166            'b' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:166          direct index (temp float)
+0:166            'c' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:166          direct index (temp float)
+0:166            'd' (in 4-component vector of float)
+0:166            Constant:
+0:166              0 (const int)
+0:167      Function Call: func3(f1;f1;f1; (global float)
+0:167        component-wise multiply (temp float)
+0:167          direct index (temp float)
+0:167            'a' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167          direct index (temp float)
+0:167            'b' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167        component-wise multiply (temp float)
+0:167          direct index (temp float)
+0:167            'c' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167          direct index (temp float)
+0:167            'd' (in 4-component vector of float)
+0:167            Constant:
+0:167              0 (const int)
+0:167        direct index (temp float)
+0:167          'v' (smooth out 4-component vector of float)
+0:167          Constant:
+0:167            0 (const int)
+0:169      Function Call: funcA(I21; (global 4-component vector of float)
+0:169        'img1' (layout(rgba32f ) uniform image2D)
+0:170      Function Call: funcB(I21; (global 4-component vector of float)
+0:170        'img2' (layout(rgba32f ) coherent uniform image2D)
+0:?       Sequence
+0:178        Sequence
+0:178          move second child to first child (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178            'lightVar' (temp structure{temp float intensity, temp 3-component vector of float position})
+0:178            Constant:
+0:178              3.000000
+0:178              1.000000
+0:178              2.000000
+0:178              3.000000
+0:?       Sequence
+0:185        Sequence
+0:185          move second child to first child (temp 5-element array of float)
+0:185            'a' (temp 5-element array of float)
+0:185            Construct float (temp 5-element array of float)
+0:185              'g' (temp float)
+0:185              Constant:
+0:185                1.000000
+0:185              'g' (temp float)
+0:185              Constant:
+0:185                2.300000
+0:185              'g' (temp float)
+0:188        move second child to first child (temp 3-element array of float)
+0:188          'b' (temp 3-element array of float)
+0:188          Construct float (temp 3-element array of float)
+0:188            'g' (temp float)
+0:188            add (temp float)
+0:188              'g' (temp float)
+0:188              Constant:
+0:188                1.000000
+0:188            add (temp float)
+0:188              'g' (temp float)
+0:188              Constant:
+0:188                2.000000
+0:191      Sequence
+0:191        Sequence
+0:191          move second child to first child (temp 2-element array of 4-component vector of float)
+0:191            'b' (temp 2-element array of 4-component vector of float)
+0:191            Constant:
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:191              1.000000
+0:192        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:192          'b' (temp 2-element array of 4-component vector of float)
+0:192          'b' (temp 2-element array of 4-component vector of float)
+0:192          'b' (temp 2-element array of 4-component vector of float)
+0:193        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:193          'b' (temp 2-element array of 4-component vector of float)
+0:193          'b' (temp 2-element array of 4-component vector of float)
+0:193          'b' (temp 2-element array of 4-component vector of float)
+0:194        Construct vec4 (temp 3-element array of 2-element array of 4-component vector of float)
+0:194          'b' (temp 2-element array of 4-component vector of float)
+0:194          'b' (temp 2-element array of 4-component vector of float)
+0:194          'b' (temp 2-element array of 4-component vector of float)
+0:?   Linker Objects
+0:?     'Coords' (out block{out 4-component vector of float Position, out 2-component vector of float Texture})
+0:?     'anon@0' (out block{out 4-component vector of float Color})
+0:?     'transforms' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform 4X4 matrix of float ModelViewMatrix, layout(column_major shared ) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout(column_major shared ) uniform 1-element array of 4-component vector of float a, layout(column_major shared ) uniform float Deformation})
+0:?     'normal' (layout(location=3 ) in 4-component vector of float)
+0:?     'colors' (layout(location=6 ) in 3-element array of 4-component vector of float)
+0:?     'transforms2' (layout(location=9 ) in 2-element array of 4X4 matrix of float)
+0:?     's' (layout(location=3 ) temp structure{global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c})
+0:?     'var1' (smooth out 4-component vector of float)
+0:?     'anon@1' (out block{out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4})
+0:?     'var5' (smooth out 4-component vector of float)
+0:?     'anon@2' (out block{out 4-component vector of float var6})
+0:?     'var7' (smooth out 4-component vector of float)
+0:?     'anon@3' (layout(row_major std140 ) uniform block{layout(row_major std140 offset=0 ) uniform 4X4 matrix of float M1, layout(column_major std140 offset=64 ) uniform 4X4 matrix of float M2, layout(row_major std140 offset=128 ) uniform 3X3 matrix of float N1})
+0:?     'anon@4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})
+0:?     's17' (layout(binding=3 ) uniform sampler2D)
+0:?     'a2' (layout(binding=2 offset=4 ) uniform atomic_uint)
+0:?     'bar' (layout(binding=2 ) uniform atomic_uint)
+0:?     'bar23' (layout(offset=8 ) uniform atomic_uint)
+0:?     'b2' (layout(binding=2 ) uniform atomic_uint)
+0:?     'c2' (layout(binding=3 ) uniform atomic_uint)
+0:?     'd2' (layout(binding=2 ) uniform atomic_uint)
+0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'ColorInv' (smooth out 3-component vector of float)
+0:?     'Color4' (invariant centroid smooth out 3-component vector of float)
+0:?     'position' (smooth out 4-component vector of float)
+0:?     'Color5' (smooth out 3-component vector of float)
+0:?     'a' (in 4-component vector of float)
+0:?     'b' (in 4-component vector of float)
+0:?     'c' (in 4-component vector of float)
+0:?     'd' (in 4-component vector of float)
+0:?     'v' (smooth out 4-component vector of float)
+0:?     'anon@6' (layout(column_major shared ) coherent buffer block{layout(column_major shared ) readonly buffer 4-component vector of float member1, layout(column_major shared ) buffer 4-component vector of float member2})
+0:?     'anon@7' (layout(column_major shared ) buffer block{layout(column_major shared ) coherent readonly buffer 4-component vector of float member1A, layout(column_major shared ) coherent buffer 4-component vector of float member2A})
+0:?     'shv' (shared 4-component vector of float)
+0:?     'img1' (layout(rgba32f ) uniform image2D)
+0:?     'img2' (layout(rgba32f ) coherent uniform image2D)
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out
index 3534299..0a2251a 100755
--- a/Test/baseResults/spv.100ops.frag.out
+++ b/Test/baseResults/spv.100ops.frag.out
@@ -1,85 +1,85 @@
-spv.100ops.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 47

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main"

-                              ExecutionMode 4 OriginLowerLeft

-                              Source ESSL 100

-                              Name 4  "main"

-                              Name 8  "foo("

-                              Name 11  "face1"

-                              Name 13  "face2"

-                              Name 17  "z"

-                              Name 21  "low"

-                              Name 26  "high"

-                              Name 36  "gl_FragColor"

-                              Decorate 11(face1) RelaxedPrecision

-                              Decorate 13(face2) RelaxedPrecision

-                              Decorate 17(z) RelaxedPrecision

-                              Decorate 21(low) RelaxedPrecision

-                              Decorate 26(high) RelaxedPrecision

-                              Decorate 36(gl_FragColor) RelaxedPrecision

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeFunction 6(float)

-              10:             TypePointer Private 6(float)

-       11(face1):     10(ptr) Variable Private

-              12:    6(float) Constant 1093664768

-       13(face2):     10(ptr) Variable Private

-              14:    6(float) Constant 3221225472

-              15:             TypeInt 32 1

-              16:             TypePointer Function 15(int)

-              18:     15(int) Constant 3

-              19:     15(int) Constant 2

-              20:             TypePointer UniformConstant 15(int)

-         21(low):     20(ptr) Variable UniformConstant

-              24:     15(int) Constant 1

-        26(high):     20(ptr) Variable UniformConstant

-              28:             TypeBool

-              34:             TypeVector 6(float) 4

-              35:             TypePointer Output 34(fvec4)

-36(gl_FragColor):     35(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-           17(z):     16(ptr) Variable Function

-                              Store 11(face1) 12

-                              Store 13(face2) 14

-                              Store 17(z) 18

-              22:     15(int) Load 21(low)

-              23:     15(int) IMul 19 22

-              25:     15(int) IAdd 23 24

-              27:     15(int) Load 26(high)

-              29:    28(bool) SLessThan 25 27

-                              SelectionMerge 31 None

-                              BranchConditional 29 30 31

-              30:               Label

-              32:     15(int)   Load 17(z)

-              33:     15(int)   IAdd 32 24

-                                Store 17(z) 33

-                                Branch 31

-              31:             Label

-              37:    6(float) Load 11(face1)

-              38:     15(int) Load 17(z)

-              39:    6(float) ConvertSToF 38

-              40:   34(fvec4) CompositeConstruct 39 39 39 39

-              41:   34(fvec4) VectorTimesScalar 40 37

-              42:    6(float) FunctionCall 8(foo()

-              43:   34(fvec4) CompositeConstruct 42 42 42 42

-              44:   34(fvec4) FAdd 41 43

-                              Store 36(gl_FragColor) 44

-                              Return

-                              FunctionEnd

-         8(foo():    6(float) Function None 7

-               9:             Label

-              45:    6(float) Load 13(face2)

-                              ReturnValue 45

-                              FunctionEnd

+spv.100ops.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 47
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main"
+                              ExecutionMode 4 OriginLowerLeft
+                              Source ESSL 100
+                              Name 4  "main"
+                              Name 8  "foo("
+                              Name 11  "face1"
+                              Name 13  "face2"
+                              Name 17  "z"
+                              Name 21  "low"
+                              Name 26  "high"
+                              Name 36  "gl_FragColor"
+                              Decorate 11(face1) RelaxedPrecision
+                              Decorate 13(face2) RelaxedPrecision
+                              Decorate 17(z) RelaxedPrecision
+                              Decorate 21(low) RelaxedPrecision
+                              Decorate 26(high) RelaxedPrecision
+                              Decorate 36(gl_FragColor) RelaxedPrecision
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeFunction 6(float)
+              10:             TypePointer Private 6(float)
+       11(face1):     10(ptr) Variable Private
+              12:    6(float) Constant 1093664768
+       13(face2):     10(ptr) Variable Private
+              14:    6(float) Constant 3221225472
+              15:             TypeInt 32 1
+              16:             TypePointer Function 15(int)
+              18:     15(int) Constant 3
+              19:     15(int) Constant 2
+              20:             TypePointer UniformConstant 15(int)
+         21(low):     20(ptr) Variable UniformConstant
+              24:     15(int) Constant 1
+        26(high):     20(ptr) Variable UniformConstant
+              28:             TypeBool
+              34:             TypeVector 6(float) 4
+              35:             TypePointer Output 34(fvec4)
+36(gl_FragColor):     35(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+           17(z):     16(ptr) Variable Function
+                              Store 11(face1) 12
+                              Store 13(face2) 14
+                              Store 17(z) 18
+              22:     15(int) Load 21(low)
+              23:     15(int) IMul 19 22
+              25:     15(int) IAdd 23 24
+              27:     15(int) Load 26(high)
+              29:    28(bool) SLessThan 25 27
+                              SelectionMerge 31 None
+                              BranchConditional 29 30 31
+              30:               Label
+              32:     15(int)   Load 17(z)
+              33:     15(int)   IAdd 32 24
+                                Store 17(z) 33
+                                Branch 31
+              31:             Label
+              37:    6(float) Load 11(face1)
+              38:     15(int) Load 17(z)
+              39:    6(float) ConvertSToF 38
+              40:   34(fvec4) CompositeConstruct 39 39 39 39
+              41:   34(fvec4) VectorTimesScalar 40 37
+              42:    6(float) FunctionCall 8(foo()
+              43:   34(fvec4) CompositeConstruct 42 42 42 42
+              44:   34(fvec4) FAdd 41 43
+                              Store 36(gl_FragColor) 44
+                              Return
+                              FunctionEnd
+         8(foo():    6(float) Function None 7
+               9:             Label
+              45:    6(float) Load 13(face2)
+                              ReturnValue 45
+                              FunctionEnd
diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out
index 1cf2a26..e35de41 100644
--- a/Test/baseResults/spv.130.frag.out
+++ b/Test/baseResults/spv.130.frag.out
@@ -1,307 +1,307 @@
-spv.130.frag

-WARNING: 0:34: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 214

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 79 17 68 99 184 185 186 187 187 173

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              SourceExtension  "GL_ARB_gpu_shader5"

-                              SourceExtension  "GL_ARB_shader_texture_lod"

-                              SourceExtension  "GL_ARB_shading_language_420pack"

-                              SourceExtension  "GL_ARB_texture_cube_map_array"

-                              SourceExtension  "GL_ARB_texture_gather"

-                              SourceExtension  "GL_ARB_texture_rectangle"

-                              Name 4  "main"

-                              Name 6  "bar3("

-                              Name 8  "bar4("

-                              Name 10  "bar5("

-                              Name 12  "bar6("

-                              Name 17  "o"

-                              Name 21  "samp2D"

-                              Name 37  "samp2DA"

-                              Name 47  "samp2DR"

-                              Name 55  "samp2DS"

-                              Name 68  "io"

-                              Name 72  "Sca"

-                              Name 79  "i"

-                              Name 87  "Isca"

-                              Name 99  "uo"

-                              Name 103  "Usca"

-                              Name 114  "a"

-                              Name 118  "Scas"

-                              Name 124  "f"

-                              Name 133  "c"

-                              Name 154  "a1"

-                              Name 157  "m43"

-                              Name 160  "b"

-                              Name 167  "sampC"

-                              Name 173  "gl_ClipDistance"

-                              Name 183  "b"

-                              Name 184  "fflat"

-                              Name 185  "fsmooth"

-                              Name 186  "fnop"

-                              Name 187  "gl_Color"

-                              Name 194  "bounds"

-                              Name 195  "s2D"

-                              Name 196  "s2DR"

-                              Name 200  "s2DRS"

-                              Name 204  "s1D"

-                              Name 205  "s2DS"

-                              Name 207  "f"

-                              Name 209  "v2"

-                              Name 211  "v3"

-                              Name 213  "v4"

-                              Decorate 173(gl_ClipDistance) BuiltIn ClipDistance

-                              Decorate 184(fflat) Flat

-                              Decorate 186(fnop) NoPerspective

-                              Decorate 194(bounds) Binding 0

-               2:             TypeVoid

-               3:             TypeFunction 2

-              14:             TypeFloat 32

-              15:             TypeVector 14(float) 4

-              16:             TypePointer Output 15(fvec4)

-           17(o):     16(ptr) Variable Output

-              18:             TypeImage 14(float) 2D sampled format:Unknown

-              19:             TypeSampledImage 18

-              20:             TypePointer UniformConstant 19

-      21(samp2D):     20(ptr) Variable UniformConstant

-              23:             TypeVector 14(float) 2

-              24:   14(float) Constant 1050253722

-              25:   23(fvec2) ConstantComposite 24 24

-              26:             TypeInt 32 1

-              27:             TypeVector 26(int) 2

-              28:     26(int) Constant 1

-              29:   27(ivec2) ConstantComposite 28 28

-              30:     26(int) Constant 0

-              34:             TypeImage 14(float) 2D array sampled format:Unknown

-              35:             TypeSampledImage 34

-              36:             TypePointer UniformConstant 35

-     37(samp2DA):     36(ptr) Variable UniformConstant

-              39:             TypeVector 14(float) 3

-              40:   39(fvec3) ConstantComposite 24 24 24

-              44:             TypeImage 14(float) Rect sampled format:Unknown

-              45:             TypeSampledImage 44

-              46:             TypePointer UniformConstant 45

-     47(samp2DR):     46(ptr) Variable UniformConstant

-              52:             TypeImage 14(float) 2D depth sampled format:Unknown

-              53:             TypeSampledImage 52

-              54:             TypePointer UniformConstant 53

-     55(samp2DS):     54(ptr) Variable UniformConstant

-              57:   14(float) Constant 1067869798

-              62:     26(int) Constant 2

-              66:             TypeVector 26(int) 3

-              67:             TypePointer Output 66(ivec3)

-          68(io):     67(ptr) Variable Output

-              69:             TypeImage 14(float) Cube array sampled format:Unknown

-              70:             TypeSampledImage 69

-              71:             TypePointer UniformConstant 70

-         72(Sca):     71(ptr) Variable UniformConstant

-              74:     26(int) Constant 3

-              78:             TypePointer Input 15(fvec4)

-           79(i):     78(ptr) Variable Input

-              84:             TypeImage 26(int) Cube array sampled format:Unknown

-              85:             TypeSampledImage 84

-              86:             TypePointer UniformConstant 85

-        87(Isca):     86(ptr) Variable UniformConstant

-              90:   14(float) Constant 1060320051

-              91:             TypeVector 26(int) 4

-              96:             TypeInt 32 0

-              97:             TypeVector 96(int) 4

-              98:             TypePointer Output 97(ivec4)

-          99(uo):     98(ptr) Variable Output

-             100:             TypeImage 96(int) Cube array sampled format:Unknown

-             101:             TypeSampledImage 100

-             102:             TypePointer UniformConstant 101

-       103(Usca):    102(ptr) Variable UniformConstant

-             109:   14(float) Constant 1071225242

-             113:             TypePointer Private 39(fvec3)

-          114(a):    113(ptr) Variable Private

-             115:             TypeImage 14(float) Cube depth array sampled format:Unknown

-             116:             TypeSampledImage 115

-             117:             TypePointer UniformConstant 116

-       118(Scas):    117(ptr) Variable UniformConstant

-             123:             TypePointer Function 14(float)

-             127:     96(int) Constant 1

-             128:             TypePointer Input 14(float)

-             132:             TypePointer Function 91(ivec4)

-             136:   14(float) Constant 1036831949

-             137:   39(fvec3) ConstantComposite 136 136 136

-             138:   14(float) Constant 1045220557

-             139:   39(fvec3) ConstantComposite 138 138 138

-             155:             TypeMatrix 39(fvec3) 4

-             156:             TypePointer Function 155

-             161:   14(float) Constant 1073741824

-             164:             TypeImage 14(float) Cube sampled format:Unknown

-             165:             TypeSampledImage 164

-             166:             TypePointer UniformConstant 165

-      167(sampC):    166(ptr) Variable UniformConstant

-             170:     96(int) Constant 4

-             171:             TypeArray 14(float) 170

-             172:             TypePointer Input 171

-173(gl_ClipDistance):    172(ptr) Variable Input

-             176:             TypePointer Output 14(float)

-             182:             TypePointer Private 14(float)

-          183(b):    182(ptr) Variable Private

-      184(fflat):    128(ptr) Variable Input

-    185(fsmooth):    128(ptr) Variable Input

-       186(fnop):    128(ptr) Variable Input

-   187(gl_Color):     78(ptr) Variable Input

-             188:     96(int) Constant 3

-             189:             TypeArray 26(int) 188

-             190:     26(int) Constant 10

-             191:     26(int) Constant 23

-             192:     26(int) Constant 32

-             193:         189 ConstantComposite 190 191 192

-     194(bounds):     20(ptr) Variable UniformConstant

-        195(s2D):     20(ptr) Variable UniformConstant

-       196(s2DR):     46(ptr) Variable UniformConstant

-             197:             TypeImage 14(float) Rect depth sampled format:Unknown

-             198:             TypeSampledImage 197

-             199:             TypePointer UniformConstant 198

-      200(s2DRS):    199(ptr) Variable UniformConstant

-             201:             TypeImage 14(float) 1D sampled format:Unknown

-             202:             TypeSampledImage 201

-             203:             TypePointer UniformConstant 202

-        204(s1D):    203(ptr) Variable UniformConstant

-       205(s2DS):     54(ptr) Variable UniformConstant

-             206:             TypePointer UniformConstant 14(float)

-          207(f):    206(ptr) Variable UniformConstant

-             208:             TypePointer UniformConstant 23(fvec2)

-         209(v2):    208(ptr) Variable UniformConstant

-             210:             TypePointer UniformConstant 39(fvec3)

-         211(v3):    210(ptr) Variable UniformConstant

-             212:             TypePointer UniformConstant 15(fvec4)

-         213(v4):    212(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-             168:         165 Load 167(sampC)

-             169:   15(fvec4) ImageGather 168 139 30

-                              Store 17(o) 169

-             174:    128(ptr) AccessChain 173(gl_ClipDistance) 74

-             175:   14(float) Load 174

-             177:    176(ptr) AccessChain 17(o) 127

-                              Store 177 175

-             178:           2 FunctionCall 6(bar3()

-             179:           2 FunctionCall 8(bar4()

-             180:           2 FunctionCall 10(bar5()

-             181:           2 FunctionCall 12(bar6()

-                              Return

-                              FunctionEnd

-        6(bar3():           2 Function None 3

-               7:             Label

-              22:          19 Load 21(samp2D)

-              31:   15(fvec4) ImageGather 22 25 30 ConstOffset 29

-              32:   15(fvec4) Load 17(o)

-              33:   15(fvec4) FAdd 32 31

-                              Store 17(o) 33

-              38:          35 Load 37(samp2DA)

-              41:   15(fvec4) ImageGather 38 40 30 ConstOffset 29

-              42:   15(fvec4) Load 17(o)

-              43:   15(fvec4) FAdd 42 41

-                              Store 17(o) 43

-                              Return

-                              FunctionEnd

-        8(bar4():           2 Function None 3

-               9:             Label

-              48:          45 Load 47(samp2DR)

-              49:   15(fvec4) ImageGather 48 25 30 ConstOffset 29

-              50:   15(fvec4) Load 17(o)

-              51:   15(fvec4) FAdd 50 49

-                              Store 17(o) 51

-              56:          53 Load 55(samp2DS)

-              58:   15(fvec4) ImageDrefGather 56 25 57 ConstOffset 29

-              59:   15(fvec4) Load 17(o)

-              60:   15(fvec4) FAdd 59 58

-                              Store 17(o) 60

-              61:          19 Load 21(samp2D)

-              63:   15(fvec4) ImageGather 61 25 62 ConstOffset 29

-              64:   15(fvec4) Load 17(o)

-              65:   15(fvec4) FAdd 64 63

-                              Store 17(o) 65

-                              Return

-                              FunctionEnd

-       10(bar5():           2 Function None 3

-              11:             Label

-          124(f):    123(ptr) Variable Function

-          133(c):    132(ptr) Variable Function

-              73:          70 Load 72(Sca)

-              75:          69 Image 73

-              76:   66(ivec3) ImageQuerySizeLod 75 74

-                              Store 68(io) 76

-              77:          70 Load 72(Sca)

-              80:   15(fvec4) Load 79(i)

-              81:   15(fvec4) ImageSampleImplicitLod 77 80

-              82:   15(fvec4) Load 17(o)

-              83:   15(fvec4) FAdd 82 81

-                              Store 17(o) 83

-              88:          85 Load 87(Isca)

-              89:   15(fvec4) Load 79(i)

-              92:   91(ivec4) ImageSampleImplicitLod 88 89 Bias 90

-              93:   66(ivec3) VectorShuffle 92 92 0 1 2

-              94:   66(ivec3) Load 68(io)

-              95:   66(ivec3) IAdd 94 93

-                              Store 68(io) 95

-             104:         101 Load 103(Usca)

-             105:   15(fvec4) Load 79(i)

-             106:   97(ivec4) ImageSampleImplicitLod 104 105

-                              Store 99(uo) 106

-             107:          70 Load 72(Sca)

-             108:   15(fvec4) Load 79(i)

-             110:   15(fvec4) ImageSampleExplicitLod 107 108 Lod 109

-             111:   15(fvec4) Load 17(o)

-             112:   15(fvec4) FAdd 111 110

-                              Store 17(o) 112

-             119:         116 Load 118(Scas)

-             120:         115 Image 119

-             121:   66(ivec3) ImageQuerySizeLod 120 74

-             122:   39(fvec3) ConvertSToF 121

-                              Store 114(a) 122

-             125:         116 Load 118(Scas)

-             126:   15(fvec4) Load 79(i)

-             129:    128(ptr) AccessChain 79(i) 127

-             130:   14(float) Load 129

-             131:   14(float) ImageSampleDrefImplicitLod 125 126 130

-                              Store 124(f) 131

-             134:          85 Load 87(Isca)

-             135:   15(fvec4) Load 79(i)

-             140:   91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139

-                              Store 133(c) 140

-             141:   39(fvec3) Load 114(a)

-             142:   14(float) Load 124(f)

-             143:   91(ivec4) Load 133(c)

-             144:   15(fvec4) ConvertSToF 143

-             145:   15(fvec4) CompositeConstruct 142 142 142 142

-             146:   15(fvec4) FAdd 145 144

-             147:   14(float) CompositeExtract 141 0

-             148:   14(float) CompositeExtract 141 1

-             149:   14(float) CompositeExtract 141 2

-             150:   14(float) CompositeExtract 146 0

-             151:   15(fvec4) CompositeConstruct 147 148 149 150

-             152:   15(fvec4) Load 17(o)

-             153:   15(fvec4) FAdd 152 151

-                              Store 17(o) 153

-                              Return

-                              FunctionEnd

-       12(bar6():           2 Function None 3

-              13:             Label

-         154(a1):    123(ptr) Variable Function

-        157(m43):    156(ptr) Variable Function

-          160(b):    123(ptr) Variable Function

-             158:    123(ptr) AccessChain 157(m43) 74 127

-             159:   14(float) Load 158

-                              Store 154(a1) 159

-             162:   14(float) Load 154(a1)

-             163:   14(float) FMul 161 162

-                              Store 160(b) 163

-                              Return

-                              FunctionEnd

+spv.130.frag
+WARNING: 0:34: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 214
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 79 17 68 99 184 185 186 187 187 173
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              SourceExtension  "GL_ARB_gpu_shader5"
+                              SourceExtension  "GL_ARB_shader_texture_lod"
+                              SourceExtension  "GL_ARB_shading_language_420pack"
+                              SourceExtension  "GL_ARB_texture_cube_map_array"
+                              SourceExtension  "GL_ARB_texture_gather"
+                              SourceExtension  "GL_ARB_texture_rectangle"
+                              Name 4  "main"
+                              Name 6  "bar3("
+                              Name 8  "bar4("
+                              Name 10  "bar5("
+                              Name 12  "bar6("
+                              Name 17  "o"
+                              Name 21  "samp2D"
+                              Name 37  "samp2DA"
+                              Name 47  "samp2DR"
+                              Name 55  "samp2DS"
+                              Name 68  "io"
+                              Name 72  "Sca"
+                              Name 79  "i"
+                              Name 87  "Isca"
+                              Name 99  "uo"
+                              Name 103  "Usca"
+                              Name 114  "a"
+                              Name 118  "Scas"
+                              Name 124  "f"
+                              Name 133  "c"
+                              Name 154  "a1"
+                              Name 157  "m43"
+                              Name 160  "b"
+                              Name 167  "sampC"
+                              Name 173  "gl_ClipDistance"
+                              Name 183  "b"
+                              Name 184  "fflat"
+                              Name 185  "fsmooth"
+                              Name 186  "fnop"
+                              Name 187  "gl_Color"
+                              Name 194  "bounds"
+                              Name 195  "s2D"
+                              Name 196  "s2DR"
+                              Name 200  "s2DRS"
+                              Name 204  "s1D"
+                              Name 205  "s2DS"
+                              Name 207  "f"
+                              Name 209  "v2"
+                              Name 211  "v3"
+                              Name 213  "v4"
+                              Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
+                              Decorate 184(fflat) Flat
+                              Decorate 186(fnop) NoPerspective
+                              Decorate 194(bounds) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+              14:             TypeFloat 32
+              15:             TypeVector 14(float) 4
+              16:             TypePointer Output 15(fvec4)
+           17(o):     16(ptr) Variable Output
+              18:             TypeImage 14(float) 2D sampled format:Unknown
+              19:             TypeSampledImage 18
+              20:             TypePointer UniformConstant 19
+      21(samp2D):     20(ptr) Variable UniformConstant
+              23:             TypeVector 14(float) 2
+              24:   14(float) Constant 1050253722
+              25:   23(fvec2) ConstantComposite 24 24
+              26:             TypeInt 32 1
+              27:             TypeVector 26(int) 2
+              28:     26(int) Constant 1
+              29:   27(ivec2) ConstantComposite 28 28
+              30:     26(int) Constant 0
+              34:             TypeImage 14(float) 2D array sampled format:Unknown
+              35:             TypeSampledImage 34
+              36:             TypePointer UniformConstant 35
+     37(samp2DA):     36(ptr) Variable UniformConstant
+              39:             TypeVector 14(float) 3
+              40:   39(fvec3) ConstantComposite 24 24 24
+              44:             TypeImage 14(float) Rect sampled format:Unknown
+              45:             TypeSampledImage 44
+              46:             TypePointer UniformConstant 45
+     47(samp2DR):     46(ptr) Variable UniformConstant
+              52:             TypeImage 14(float) 2D depth sampled format:Unknown
+              53:             TypeSampledImage 52
+              54:             TypePointer UniformConstant 53
+     55(samp2DS):     54(ptr) Variable UniformConstant
+              57:   14(float) Constant 1067869798
+              62:     26(int) Constant 2
+              66:             TypeVector 26(int) 3
+              67:             TypePointer Output 66(ivec3)
+          68(io):     67(ptr) Variable Output
+              69:             TypeImage 14(float) Cube array sampled format:Unknown
+              70:             TypeSampledImage 69
+              71:             TypePointer UniformConstant 70
+         72(Sca):     71(ptr) Variable UniformConstant
+              74:     26(int) Constant 3
+              78:             TypePointer Input 15(fvec4)
+           79(i):     78(ptr) Variable Input
+              84:             TypeImage 26(int) Cube array sampled format:Unknown
+              85:             TypeSampledImage 84
+              86:             TypePointer UniformConstant 85
+        87(Isca):     86(ptr) Variable UniformConstant
+              90:   14(float) Constant 1060320051
+              91:             TypeVector 26(int) 4
+              96:             TypeInt 32 0
+              97:             TypeVector 96(int) 4
+              98:             TypePointer Output 97(ivec4)
+          99(uo):     98(ptr) Variable Output
+             100:             TypeImage 96(int) Cube array sampled format:Unknown
+             101:             TypeSampledImage 100
+             102:             TypePointer UniformConstant 101
+       103(Usca):    102(ptr) Variable UniformConstant
+             109:   14(float) Constant 1071225242
+             113:             TypePointer Private 39(fvec3)
+          114(a):    113(ptr) Variable Private
+             115:             TypeImage 14(float) Cube depth array sampled format:Unknown
+             116:             TypeSampledImage 115
+             117:             TypePointer UniformConstant 116
+       118(Scas):    117(ptr) Variable UniformConstant
+             123:             TypePointer Function 14(float)
+             127:     96(int) Constant 1
+             128:             TypePointer Input 14(float)
+             132:             TypePointer Function 91(ivec4)
+             136:   14(float) Constant 1036831949
+             137:   39(fvec3) ConstantComposite 136 136 136
+             138:   14(float) Constant 1045220557
+             139:   39(fvec3) ConstantComposite 138 138 138
+             155:             TypeMatrix 39(fvec3) 4
+             156:             TypePointer Function 155
+             161:   14(float) Constant 1073741824
+             164:             TypeImage 14(float) Cube sampled format:Unknown
+             165:             TypeSampledImage 164
+             166:             TypePointer UniformConstant 165
+      167(sampC):    166(ptr) Variable UniformConstant
+             170:     96(int) Constant 4
+             171:             TypeArray 14(float) 170
+             172:             TypePointer Input 171
+173(gl_ClipDistance):    172(ptr) Variable Input
+             176:             TypePointer Output 14(float)
+             182:             TypePointer Private 14(float)
+          183(b):    182(ptr) Variable Private
+      184(fflat):    128(ptr) Variable Input
+    185(fsmooth):    128(ptr) Variable Input
+       186(fnop):    128(ptr) Variable Input
+   187(gl_Color):     78(ptr) Variable Input
+             188:     96(int) Constant 3
+             189:             TypeArray 26(int) 188
+             190:     26(int) Constant 10
+             191:     26(int) Constant 23
+             192:     26(int) Constant 32
+             193:         189 ConstantComposite 190 191 192
+     194(bounds):     20(ptr) Variable UniformConstant
+        195(s2D):     20(ptr) Variable UniformConstant
+       196(s2DR):     46(ptr) Variable UniformConstant
+             197:             TypeImage 14(float) Rect depth sampled format:Unknown
+             198:             TypeSampledImage 197
+             199:             TypePointer UniformConstant 198
+      200(s2DRS):    199(ptr) Variable UniformConstant
+             201:             TypeImage 14(float) 1D sampled format:Unknown
+             202:             TypeSampledImage 201
+             203:             TypePointer UniformConstant 202
+        204(s1D):    203(ptr) Variable UniformConstant
+       205(s2DS):     54(ptr) Variable UniformConstant
+             206:             TypePointer UniformConstant 14(float)
+          207(f):    206(ptr) Variable UniformConstant
+             208:             TypePointer UniformConstant 23(fvec2)
+         209(v2):    208(ptr) Variable UniformConstant
+             210:             TypePointer UniformConstant 39(fvec3)
+         211(v3):    210(ptr) Variable UniformConstant
+             212:             TypePointer UniformConstant 15(fvec4)
+         213(v4):    212(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+             168:         165 Load 167(sampC)
+             169:   15(fvec4) ImageGather 168 139 30
+                              Store 17(o) 169
+             174:    128(ptr) AccessChain 173(gl_ClipDistance) 74
+             175:   14(float) Load 174
+             177:    176(ptr) AccessChain 17(o) 127
+                              Store 177 175
+             178:           2 FunctionCall 6(bar3()
+             179:           2 FunctionCall 8(bar4()
+             180:           2 FunctionCall 10(bar5()
+             181:           2 FunctionCall 12(bar6()
+                              Return
+                              FunctionEnd
+        6(bar3():           2 Function None 3
+               7:             Label
+              22:          19 Load 21(samp2D)
+              31:   15(fvec4) ImageGather 22 25 30 ConstOffset 29
+              32:   15(fvec4) Load 17(o)
+              33:   15(fvec4) FAdd 32 31
+                              Store 17(o) 33
+              38:          35 Load 37(samp2DA)
+              41:   15(fvec4) ImageGather 38 40 30 ConstOffset 29
+              42:   15(fvec4) Load 17(o)
+              43:   15(fvec4) FAdd 42 41
+                              Store 17(o) 43
+                              Return
+                              FunctionEnd
+        8(bar4():           2 Function None 3
+               9:             Label
+              48:          45 Load 47(samp2DR)
+              49:   15(fvec4) ImageGather 48 25 30 ConstOffset 29
+              50:   15(fvec4) Load 17(o)
+              51:   15(fvec4) FAdd 50 49
+                              Store 17(o) 51
+              56:          53 Load 55(samp2DS)
+              58:   15(fvec4) ImageDrefGather 56 25 57 ConstOffset 29
+              59:   15(fvec4) Load 17(o)
+              60:   15(fvec4) FAdd 59 58
+                              Store 17(o) 60
+              61:          19 Load 21(samp2D)
+              63:   15(fvec4) ImageGather 61 25 62 ConstOffset 29
+              64:   15(fvec4) Load 17(o)
+              65:   15(fvec4) FAdd 64 63
+                              Store 17(o) 65
+                              Return
+                              FunctionEnd
+       10(bar5():           2 Function None 3
+              11:             Label
+          124(f):    123(ptr) Variable Function
+          133(c):    132(ptr) Variable Function
+              73:          70 Load 72(Sca)
+              75:          69 Image 73
+              76:   66(ivec3) ImageQuerySizeLod 75 74
+                              Store 68(io) 76
+              77:          70 Load 72(Sca)
+              80:   15(fvec4) Load 79(i)
+              81:   15(fvec4) ImageSampleImplicitLod 77 80
+              82:   15(fvec4) Load 17(o)
+              83:   15(fvec4) FAdd 82 81
+                              Store 17(o) 83
+              88:          85 Load 87(Isca)
+              89:   15(fvec4) Load 79(i)
+              92:   91(ivec4) ImageSampleImplicitLod 88 89 Bias 90
+              93:   66(ivec3) VectorShuffle 92 92 0 1 2
+              94:   66(ivec3) Load 68(io)
+              95:   66(ivec3) IAdd 94 93
+                              Store 68(io) 95
+             104:         101 Load 103(Usca)
+             105:   15(fvec4) Load 79(i)
+             106:   97(ivec4) ImageSampleImplicitLod 104 105
+                              Store 99(uo) 106
+             107:          70 Load 72(Sca)
+             108:   15(fvec4) Load 79(i)
+             110:   15(fvec4) ImageSampleExplicitLod 107 108 Lod 109
+             111:   15(fvec4) Load 17(o)
+             112:   15(fvec4) FAdd 111 110
+                              Store 17(o) 112
+             119:         116 Load 118(Scas)
+             120:         115 Image 119
+             121:   66(ivec3) ImageQuerySizeLod 120 74
+             122:   39(fvec3) ConvertSToF 121
+                              Store 114(a) 122
+             125:         116 Load 118(Scas)
+             126:   15(fvec4) Load 79(i)
+             129:    128(ptr) AccessChain 79(i) 127
+             130:   14(float) Load 129
+             131:   14(float) ImageSampleDrefImplicitLod 125 126 130
+                              Store 124(f) 131
+             134:          85 Load 87(Isca)
+             135:   15(fvec4) Load 79(i)
+             140:   91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139
+                              Store 133(c) 140
+             141:   39(fvec3) Load 114(a)
+             142:   14(float) Load 124(f)
+             143:   91(ivec4) Load 133(c)
+             144:   15(fvec4) ConvertSToF 143
+             145:   15(fvec4) CompositeConstruct 142 142 142 142
+             146:   15(fvec4) FAdd 145 144
+             147:   14(float) CompositeExtract 141 0
+             148:   14(float) CompositeExtract 141 1
+             149:   14(float) CompositeExtract 141 2
+             150:   14(float) CompositeExtract 146 0
+             151:   15(fvec4) CompositeConstruct 147 148 149 150
+             152:   15(fvec4) Load 17(o)
+             153:   15(fvec4) FAdd 152 151
+                              Store 17(o) 153
+                              Return
+                              FunctionEnd
+       12(bar6():           2 Function None 3
+              13:             Label
+         154(a1):    123(ptr) Variable Function
+        157(m43):    156(ptr) Variable Function
+          160(b):    123(ptr) Variable Function
+             158:    123(ptr) AccessChain 157(m43) 74 127
+             159:   14(float) Load 158
+                              Store 154(a1) 159
+             162:   14(float) Load 154(a1)
+             163:   14(float) FMul 161 162
+                              Store 160(b) 163
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out
index 672553e..48f36db 100755
--- a/Test/baseResults/spv.140.frag.out
+++ b/Test/baseResults/spv.140.frag.out
@@ -1,171 +1,171 @@
-spv.140.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 99

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 43 28 33 33

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 140

-                              Name 4  "main"

-                              Name 8  "foo("

-                              Name 11  "i1"

-                              Name 16  "gl_FrontFacing"

-                              Name 24  "i2"

-                              Name 28  "o"

-                              Name 33  "gl_ClipDistance"

-                              Name 43  "k"

-                              Name 55  "sampR"

-                              Name 63  "sampB"

-                              Name 86  "samp2Da"

-                              Name 90  "bn"

-                              MemberName 90(bn) 0  "matra"

-                              MemberName 90(bn) 1  "matca"

-                              MemberName 90(bn) 2  "matr"

-                              MemberName 90(bn) 3  "matc"

-                              MemberName 90(bn) 4  "matrdef"

-                              Name 92  ""

-                              Name 95  "bi"

-                              MemberName 95(bi) 0  "v"

-                              Name 98  "bname"

-                              Decorate 16(gl_FrontFacing) BuiltIn FrontFacing

-                              Decorate 33(gl_ClipDistance) BuiltIn ClipDistance

-                              Decorate 89 ArrayStride 64

-                              Decorate 89 ArrayStride 64

-                              MemberDecorate 90(bn) 0 RowMajor

-                              MemberDecorate 90(bn) 0 Offset 0

-                              MemberDecorate 90(bn) 0 MatrixStride 16

-                              MemberDecorate 90(bn) 1 ColMajor

-                              MemberDecorate 90(bn) 1 Offset 256

-                              MemberDecorate 90(bn) 1 MatrixStride 16

-                              MemberDecorate 90(bn) 2 RowMajor

-                              MemberDecorate 90(bn) 2 Offset 512

-                              MemberDecorate 90(bn) 2 MatrixStride 16

-                              MemberDecorate 90(bn) 3 ColMajor

-                              MemberDecorate 90(bn) 3 Offset 576

-                              MemberDecorate 90(bn) 3 MatrixStride 16

-                              MemberDecorate 90(bn) 4 RowMajor

-                              MemberDecorate 90(bn) 4 Offset 640

-                              MemberDecorate 90(bn) 4 MatrixStride 16

-                              Decorate 90(bn) Block

-                              Decorate 94 ArrayStride 16

-                              MemberDecorate 95(bi) 0 Offset 0

-                              Decorate 95(bi) Block

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeFunction 6(float)

-              10:             TypePointer Private 6(float)

-          11(i1):     10(ptr) Variable Private

-              12:             TypePointer Function 6(float)

-              14:             TypeBool

-              15:             TypePointer Input 14(bool)

-16(gl_FrontFacing):     15(ptr) Variable Input

-              20:    6(float) Constant 3221225472

-              22:    6(float) Constant 1073741824

-          24(i2):     10(ptr) Variable Private

-              25:    6(float) Constant 1120665600

-              26:             TypeVector 6(float) 4

-              27:             TypePointer Output 26(fvec4)

-           28(o):     27(ptr) Variable Output

-              29:             TypeInt 32 0

-              30:     29(int) Constant 5

-              31:             TypeArray 6(float) 30

-              32:             TypePointer Input 31

-33(gl_ClipDistance):     32(ptr) Variable Input

-              34:             TypeInt 32 1

-              35:     34(int) Constant 2

-              36:             TypePointer Input 6(float)

-              39:     29(int) Constant 1

-              40:             TypePointer Output 6(float)

-              42:             TypePointer Input 26(fvec4)

-           43(k):     42(ptr) Variable Input

-              45:             TypeVector 34(int) 4

-              50:     29(int) Constant 2

-              52:             TypeImage 6(float) Rect sampled format:Unknown

-              53:             TypeSampledImage 52

-              54:             TypePointer UniformConstant 53

-       55(sampR):     54(ptr) Variable UniformConstant

-              58:             TypeVector 34(int) 2

-              60:             TypeImage 34(int) Buffer sampled format:Unknown

-              61:             TypeSampledImage 60

-              62:             TypePointer UniformConstant 61

-       63(sampB):     62(ptr) Variable UniformConstant

-              69:             TypeVector 6(float) 2

-              72:    6(float) Constant 1120403456

-              74:     29(int) Constant 3

-              82:             TypeImage 6(float) 2D sampled format:Unknown

-              83:             TypeSampledImage 82

-              84:             TypeArray 83 74

-              85:             TypePointer UniformConstant 84

-     86(samp2Da):     85(ptr) Variable UniformConstant

-              87:             TypeMatrix 26(fvec4) 4

-              88:     29(int) Constant 4

-              89:             TypeArray 87 88

-          90(bn):             TypeStruct 89 89 87 87 87

-              91:             TypePointer Uniform 90(bn)

-              92:     91(ptr) Variable Uniform

-              93:             TypeVector 6(float) 3

-              94:             TypeArray 93(fvec3) 50

-          95(bi):             TypeStruct 94

-              96:             TypeArray 95(bi) 88

-              97:             TypePointer Uniform 96

-       98(bname):     97(ptr) Variable Uniform

-         4(main):           2 Function None 3

-               5:             Label

-              13:     12(ptr) Variable Function

-              17:    14(bool) Load 16(gl_FrontFacing)

-                              SelectionMerge 19 None

-                              BranchConditional 17 18 21

-              18:               Label

-                                Store 13 20

-                                Branch 19

-              21:               Label

-                                Store 13 22

-                                Branch 19

-              19:             Label

-              23:    6(float) Load 13

-                              Store 11(i1) 23

-                              Store 24(i2) 25

-              37:     36(ptr) AccessChain 33(gl_ClipDistance) 35

-              38:    6(float) Load 37

-              41:     40(ptr) AccessChain 28(o) 39

-                              Store 41 38

-              44:   26(fvec4) Load 43(k)

-              46:   45(ivec4) ConvertFToS 44

-              47:     34(int) CompositeExtract 46 0

-              48:     36(ptr) AccessChain 33(gl_ClipDistance) 47

-              49:    6(float) Load 48

-              51:     40(ptr) AccessChain 28(o) 50

-                              Store 51 49

-              56:          53 Load 55(sampR)

-              57:          52 Image 56

-              59:   58(ivec2) ImageQuerySize 57

-              64:          61 Load 63(sampB)

-              65:          60 Image 64

-              66:     34(int) ImageQuerySize 65

-              67:   58(ivec2) CompositeConstruct 66 66

-              68:   58(ivec2) IAdd 59 67

-              70:   69(fvec2) ConvertSToF 68

-              71:    6(float) CompositeExtract 70 0

-              73:    6(float) FDiv 71 72

-              75:     40(ptr) AccessChain 28(o) 74

-                              Store 75 73

-              76:    6(float) FunctionCall 8(foo()

-              77:     40(ptr) AccessChain 28(o) 50

-                              Store 77 76

-                              Return

-                              FunctionEnd

-         8(foo():    6(float) Function None 7

-               9:             Label

-              78:    6(float) Load 11(i1)

-              79:    6(float) Load 24(i2)

-              80:    6(float) FAdd 78 79

-                              ReturnValue 80

-                              FunctionEnd

+spv.140.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 99
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 43 28 33 33
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 140
+                              Name 4  "main"
+                              Name 8  "foo("
+                              Name 11  "i1"
+                              Name 16  "gl_FrontFacing"
+                              Name 24  "i2"
+                              Name 28  "o"
+                              Name 33  "gl_ClipDistance"
+                              Name 43  "k"
+                              Name 55  "sampR"
+                              Name 63  "sampB"
+                              Name 86  "samp2Da"
+                              Name 90  "bn"
+                              MemberName 90(bn) 0  "matra"
+                              MemberName 90(bn) 1  "matca"
+                              MemberName 90(bn) 2  "matr"
+                              MemberName 90(bn) 3  "matc"
+                              MemberName 90(bn) 4  "matrdef"
+                              Name 92  ""
+                              Name 95  "bi"
+                              MemberName 95(bi) 0  "v"
+                              Name 98  "bname"
+                              Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
+                              Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
+                              Decorate 89 ArrayStride 64
+                              Decorate 89 ArrayStride 64
+                              MemberDecorate 90(bn) 0 RowMajor
+                              MemberDecorate 90(bn) 0 Offset 0
+                              MemberDecorate 90(bn) 0 MatrixStride 16
+                              MemberDecorate 90(bn) 1 ColMajor
+                              MemberDecorate 90(bn) 1 Offset 256
+                              MemberDecorate 90(bn) 1 MatrixStride 16
+                              MemberDecorate 90(bn) 2 RowMajor
+                              MemberDecorate 90(bn) 2 Offset 512
+                              MemberDecorate 90(bn) 2 MatrixStride 16
+                              MemberDecorate 90(bn) 3 ColMajor
+                              MemberDecorate 90(bn) 3 Offset 576
+                              MemberDecorate 90(bn) 3 MatrixStride 16
+                              MemberDecorate 90(bn) 4 RowMajor
+                              MemberDecorate 90(bn) 4 Offset 640
+                              MemberDecorate 90(bn) 4 MatrixStride 16
+                              Decorate 90(bn) Block
+                              Decorate 94 ArrayStride 16
+                              MemberDecorate 95(bi) 0 Offset 0
+                              Decorate 95(bi) Block
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeFunction 6(float)
+              10:             TypePointer Private 6(float)
+          11(i1):     10(ptr) Variable Private
+              12:             TypePointer Function 6(float)
+              14:             TypeBool
+              15:             TypePointer Input 14(bool)
+16(gl_FrontFacing):     15(ptr) Variable Input
+              20:    6(float) Constant 3221225472
+              22:    6(float) Constant 1073741824
+          24(i2):     10(ptr) Variable Private
+              25:    6(float) Constant 1120665600
+              26:             TypeVector 6(float) 4
+              27:             TypePointer Output 26(fvec4)
+           28(o):     27(ptr) Variable Output
+              29:             TypeInt 32 0
+              30:     29(int) Constant 5
+              31:             TypeArray 6(float) 30
+              32:             TypePointer Input 31
+33(gl_ClipDistance):     32(ptr) Variable Input
+              34:             TypeInt 32 1
+              35:     34(int) Constant 2
+              36:             TypePointer Input 6(float)
+              39:     29(int) Constant 1
+              40:             TypePointer Output 6(float)
+              42:             TypePointer Input 26(fvec4)
+           43(k):     42(ptr) Variable Input
+              45:             TypeVector 34(int) 4
+              50:     29(int) Constant 2
+              52:             TypeImage 6(float) Rect sampled format:Unknown
+              53:             TypeSampledImage 52
+              54:             TypePointer UniformConstant 53
+       55(sampR):     54(ptr) Variable UniformConstant
+              58:             TypeVector 34(int) 2
+              60:             TypeImage 34(int) Buffer sampled format:Unknown
+              61:             TypeSampledImage 60
+              62:             TypePointer UniformConstant 61
+       63(sampB):     62(ptr) Variable UniformConstant
+              69:             TypeVector 6(float) 2
+              72:    6(float) Constant 1120403456
+              74:     29(int) Constant 3
+              82:             TypeImage 6(float) 2D sampled format:Unknown
+              83:             TypeSampledImage 82
+              84:             TypeArray 83 74
+              85:             TypePointer UniformConstant 84
+     86(samp2Da):     85(ptr) Variable UniformConstant
+              87:             TypeMatrix 26(fvec4) 4
+              88:     29(int) Constant 4
+              89:             TypeArray 87 88
+          90(bn):             TypeStruct 89 89 87 87 87
+              91:             TypePointer Uniform 90(bn)
+              92:     91(ptr) Variable Uniform
+              93:             TypeVector 6(float) 3
+              94:             TypeArray 93(fvec3) 50
+          95(bi):             TypeStruct 94
+              96:             TypeArray 95(bi) 88
+              97:             TypePointer Uniform 96
+       98(bname):     97(ptr) Variable Uniform
+         4(main):           2 Function None 3
+               5:             Label
+              13:     12(ptr) Variable Function
+              17:    14(bool) Load 16(gl_FrontFacing)
+                              SelectionMerge 19 None
+                              BranchConditional 17 18 21
+              18:               Label
+                                Store 13 20
+                                Branch 19
+              21:               Label
+                                Store 13 22
+                                Branch 19
+              19:             Label
+              23:    6(float) Load 13
+                              Store 11(i1) 23
+                              Store 24(i2) 25
+              37:     36(ptr) AccessChain 33(gl_ClipDistance) 35
+              38:    6(float) Load 37
+              41:     40(ptr) AccessChain 28(o) 39
+                              Store 41 38
+              44:   26(fvec4) Load 43(k)
+              46:   45(ivec4) ConvertFToS 44
+              47:     34(int) CompositeExtract 46 0
+              48:     36(ptr) AccessChain 33(gl_ClipDistance) 47
+              49:    6(float) Load 48
+              51:     40(ptr) AccessChain 28(o) 50
+                              Store 51 49
+              56:          53 Load 55(sampR)
+              57:          52 Image 56
+              59:   58(ivec2) ImageQuerySize 57
+              64:          61 Load 63(sampB)
+              65:          60 Image 64
+              66:     34(int) ImageQuerySize 65
+              67:   58(ivec2) CompositeConstruct 66 66
+              68:   58(ivec2) IAdd 59 67
+              70:   69(fvec2) ConvertSToF 68
+              71:    6(float) CompositeExtract 70 0
+              73:    6(float) FDiv 71 72
+              75:     40(ptr) AccessChain 28(o) 74
+                              Store 75 73
+              76:    6(float) FunctionCall 8(foo()
+              77:     40(ptr) AccessChain 28(o) 50
+                              Store 77 76
+                              Return
+                              FunctionEnd
+         8(foo():    6(float) Function None 7
+               9:             Label
+              78:    6(float) Load 11(i1)
+              79:    6(float) Load 24(i2)
+              80:    6(float) FAdd 78 79
+                              ReturnValue 80
+                              FunctionEnd
diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out
index ea2b0cf..e3efab7 100755
--- a/Test/baseResults/spv.150.geom.out
+++ b/Test/baseResults/spv.150.geom.out
@@ -1,147 +1,147 @@
-spv.150.geom

-

-Linked geometry stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 71

-

-                              Capability Geometry

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Geometry 4  "main" 18 70 10 29 33

-                              ExecutionMode 4 InputTrianglesAdjacency

-                              ExecutionMode 4 Invocations 0

-                              ExecutionMode 4 OutputTriangleStrip

-                              ExecutionMode 4 OutputVertices 30

-                              Source GLSL 150

-                              Name 4  "main"

-                              Name 8  "fromVertex"

-                              MemberName 8(fromVertex) 0  "color"

-                              Name 10  ""

-                              Name 13  "fromVertex"

-                              MemberName 13(fromVertex) 0  "color"

-                              Name 18  "fromV"

-                              Name 27  "gl_PerVertex"

-                              MemberName 27(gl_PerVertex) 0  "gl_Position"

-                              MemberName 27(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 27(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 29  ""

-                              Name 30  "gl_PerVertex"

-                              MemberName 30(gl_PerVertex) 0  "gl_Position"

-                              MemberName 30(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 30(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 33  "gl_in"

-                              Name 47  "gl_PrimitiveID"

-                              Name 49  "gl_PrimitiveIDIn"

-                              Name 51  "gl_Layer"

-                              Name 68  "toFragment"

-                              MemberName 68(toFragment) 0  "color"

-                              Name 70  "toF"

-                              Decorate 8(fromVertex) Block

-                              Decorate 8(fromVertex) Stream 3

-                              Decorate 10 Stream 3

-                              Decorate 13(fromVertex) Block

-                              MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 27(gl_PerVertex) Block

-                              Decorate 27(gl_PerVertex) Stream 0

-                              Decorate 29 Stream 0

-                              MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 30(gl_PerVertex) Block

-                              Decorate 47(gl_PrimitiveID) Stream 0

-                              Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId

-                              Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId

-                              Decorate 51(gl_Layer) Stream 0

-                              Decorate 51(gl_Layer) BuiltIn Layer

-                              Decorate 68(toFragment) Block

-                              Decorate 68(toFragment) Stream 3

-                              Decorate 70(toF) Stream 3

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 3

-   8(fromVertex):             TypeStruct 7(fvec3)

-               9:             TypePointer Output 8(fromVertex)

-              10:      9(ptr) Variable Output

-              11:             TypeInt 32 1

-              12:     11(int) Constant 0

-  13(fromVertex):             TypeStruct 7(fvec3)

-              14:             TypeInt 32 0

-              15:     14(int) Constant 6

-              16:             TypeArray 13(fromVertex) 15

-              17:             TypePointer Input 16

-       18(fromV):     17(ptr) Variable Input

-              19:             TypePointer Input 7(fvec3)

-              22:             TypePointer Output 7(fvec3)

-              24:             TypeVector 6(float) 4

-              25:     14(int) Constant 1

-              26:             TypeArray 6(float) 25

-27(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26

-              28:             TypePointer Output 27(gl_PerVertex)

-              29:     28(ptr) Variable Output

-30(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26

-              31:             TypeArray 30(gl_PerVertex) 15

-              32:             TypePointer Input 31

-       33(gl_in):     32(ptr) Variable Input

-              34:             TypePointer Input 24(fvec4)

-              37:             TypePointer Output 24(fvec4)

-              39:     11(int) Constant 1

-              40:     11(int) Constant 3

-              41:             TypePointer Input 6(float)

-              44:             TypePointer Output 6(float)

-              46:             TypePointer Output 11(int)

-47(gl_PrimitiveID):     46(ptr) Variable Output

-              48:             TypePointer Input 11(int)

-49(gl_PrimitiveIDIn):     48(ptr) Variable Input

-    51(gl_Layer):     46(ptr) Variable Output

-              52:     11(int) Constant 2

-              53:    6(float) Constant 1073741824

-  68(toFragment):             TypeStruct 7(fvec3)

-              69:             TypePointer Output 68(toFragment)

-         70(toF):     69(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-              20:     19(ptr) AccessChain 18(fromV) 12 12

-              21:    7(fvec3) Load 20

-              23:     22(ptr) AccessChain 10 12

-                              Store 23 21

-              35:     34(ptr) AccessChain 33(gl_in) 12 12

-              36:   24(fvec4) Load 35

-              38:     37(ptr) AccessChain 29 12

-                              Store 38 36

-              42:     41(ptr) AccessChain 33(gl_in) 40 39

-              43:    6(float) Load 42

-              45:     44(ptr) AccessChain 29 39

-                              Store 45 43

-              50:     11(int) Load 49(gl_PrimitiveIDIn)

-                              Store 47(gl_PrimitiveID) 50

-                              Store 51(gl_Layer) 52

-                              EmitVertex

-              54:     19(ptr) AccessChain 18(fromV) 12 12

-              55:    7(fvec3) Load 54

-              56:    7(fvec3) VectorTimesScalar 55 53

-              57:     22(ptr) AccessChain 10 12

-                              Store 57 56

-              58:     34(ptr) AccessChain 33(gl_in) 12 12

-              59:   24(fvec4) Load 58

-              60:   24(fvec4) VectorTimesScalar 59 53

-              61:     37(ptr) AccessChain 29 12

-                              Store 61 60

-              62:     41(ptr) AccessChain 33(gl_in) 40 39

-              63:    6(float) Load 62

-              64:    6(float) FMul 53 63

-              65:     44(ptr) AccessChain 29 39

-                              Store 65 64

-              66:     11(int) Load 49(gl_PrimitiveIDIn)

-              67:     11(int) IAdd 66 39

-                              Store 47(gl_PrimitiveID) 67

-                              Store 51(gl_Layer) 40

-                              EmitVertex

-                              EndPrimitive

-                              Return

-                              FunctionEnd

+spv.150.geom
+
+Linked geometry stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 71
+
+                              Capability Geometry
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Geometry 4  "main" 18 70 10 29 33
+                              ExecutionMode 4 InputTrianglesAdjacency
+                              ExecutionMode 4 Invocations 0
+                              ExecutionMode 4 OutputTriangleStrip
+                              ExecutionMode 4 OutputVertices 30
+                              Source GLSL 150
+                              Name 4  "main"
+                              Name 8  "fromVertex"
+                              MemberName 8(fromVertex) 0  "color"
+                              Name 10  ""
+                              Name 13  "fromVertex"
+                              MemberName 13(fromVertex) 0  "color"
+                              Name 18  "fromV"
+                              Name 27  "gl_PerVertex"
+                              MemberName 27(gl_PerVertex) 0  "gl_Position"
+                              MemberName 27(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 27(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 29  ""
+                              Name 30  "gl_PerVertex"
+                              MemberName 30(gl_PerVertex) 0  "gl_Position"
+                              MemberName 30(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 30(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 33  "gl_in"
+                              Name 47  "gl_PrimitiveID"
+                              Name 49  "gl_PrimitiveIDIn"
+                              Name 51  "gl_Layer"
+                              Name 68  "toFragment"
+                              MemberName 68(toFragment) 0  "color"
+                              Name 70  "toF"
+                              Decorate 8(fromVertex) Block
+                              Decorate 8(fromVertex) Stream 3
+                              Decorate 10 Stream 3
+                              Decorate 13(fromVertex) Block
+                              MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 27(gl_PerVertex) Block
+                              Decorate 27(gl_PerVertex) Stream 0
+                              Decorate 29 Stream 0
+                              MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 30(gl_PerVertex) Block
+                              Decorate 47(gl_PrimitiveID) Stream 0
+                              Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId
+                              Decorate 51(gl_Layer) Stream 0
+                              Decorate 51(gl_Layer) BuiltIn Layer
+                              Decorate 68(toFragment) Block
+                              Decorate 68(toFragment) Stream 3
+                              Decorate 70(toF) Stream 3
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+   8(fromVertex):             TypeStruct 7(fvec3)
+               9:             TypePointer Output 8(fromVertex)
+              10:      9(ptr) Variable Output
+              11:             TypeInt 32 1
+              12:     11(int) Constant 0
+  13(fromVertex):             TypeStruct 7(fvec3)
+              14:             TypeInt 32 0
+              15:     14(int) Constant 6
+              16:             TypeArray 13(fromVertex) 15
+              17:             TypePointer Input 16
+       18(fromV):     17(ptr) Variable Input
+              19:             TypePointer Input 7(fvec3)
+              22:             TypePointer Output 7(fvec3)
+              24:             TypeVector 6(float) 4
+              25:     14(int) Constant 1
+              26:             TypeArray 6(float) 25
+27(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26
+              28:             TypePointer Output 27(gl_PerVertex)
+              29:     28(ptr) Variable Output
+30(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26
+              31:             TypeArray 30(gl_PerVertex) 15
+              32:             TypePointer Input 31
+       33(gl_in):     32(ptr) Variable Input
+              34:             TypePointer Input 24(fvec4)
+              37:             TypePointer Output 24(fvec4)
+              39:     11(int) Constant 1
+              40:     11(int) Constant 3
+              41:             TypePointer Input 6(float)
+              44:             TypePointer Output 6(float)
+              46:             TypePointer Output 11(int)
+47(gl_PrimitiveID):     46(ptr) Variable Output
+              48:             TypePointer Input 11(int)
+49(gl_PrimitiveIDIn):     48(ptr) Variable Input
+    51(gl_Layer):     46(ptr) Variable Output
+              52:     11(int) Constant 2
+              53:    6(float) Constant 1073741824
+  68(toFragment):             TypeStruct 7(fvec3)
+              69:             TypePointer Output 68(toFragment)
+         70(toF):     69(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+              20:     19(ptr) AccessChain 18(fromV) 12 12
+              21:    7(fvec3) Load 20
+              23:     22(ptr) AccessChain 10 12
+                              Store 23 21
+              35:     34(ptr) AccessChain 33(gl_in) 12 12
+              36:   24(fvec4) Load 35
+              38:     37(ptr) AccessChain 29 12
+                              Store 38 36
+              42:     41(ptr) AccessChain 33(gl_in) 40 39
+              43:    6(float) Load 42
+              45:     44(ptr) AccessChain 29 39
+                              Store 45 43
+              50:     11(int) Load 49(gl_PrimitiveIDIn)
+                              Store 47(gl_PrimitiveID) 50
+                              Store 51(gl_Layer) 52
+                              EmitVertex
+              54:     19(ptr) AccessChain 18(fromV) 12 12
+              55:    7(fvec3) Load 54
+              56:    7(fvec3) VectorTimesScalar 55 53
+              57:     22(ptr) AccessChain 10 12
+                              Store 57 56
+              58:     34(ptr) AccessChain 33(gl_in) 12 12
+              59:   24(fvec4) Load 58
+              60:   24(fvec4) VectorTimesScalar 59 53
+              61:     37(ptr) AccessChain 29 12
+                              Store 61 60
+              62:     41(ptr) AccessChain 33(gl_in) 40 39
+              63:    6(float) Load 62
+              64:    6(float) FMul 53 63
+              65:     44(ptr) AccessChain 29 39
+                              Store 65 64
+              66:     11(int) Load 49(gl_PrimitiveIDIn)
+              67:     11(int) IAdd 66 39
+                              Store 47(gl_PrimitiveID) 67
+                              Store 51(gl_Layer) 40
+                              EmitVertex
+                              EndPrimitive
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out
index b960466..a4e8e50 100755
--- a/Test/baseResults/spv.150.vert.out
+++ b/Test/baseResults/spv.150.vert.out
@@ -1,95 +1,95 @@
-spv.150.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 50

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 17 39 48 49

-                              Source GLSL 150

-                              Name 4  "main"

-                              Name 11  "gl_PerVertex"

-                              MemberName 11(gl_PerVertex) 0  "gl_Position"

-                              MemberName 11(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 11(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 13  ""

-                              Name 17  "iv4"

-                              Name 23  "ps"

-                              Name 35  "s1"

-                              MemberName 35(s1) 0  "a"

-                              MemberName 35(s1) 1  "a2"

-                              MemberName 35(s1) 2  "b"

-                              Name 37  "s2"

-                              MemberName 37(s2) 0  "c"

-                              MemberName 37(s2) 1  "d"

-                              Name 39  "s2out"

-                              Name 41  "i"

-                              Name 46  "ui"

-                              Name 48  "gl_VertexID"

-                              Name 49  "gl_InstanceID"

-                              MemberDecorate 11(gl_PerVertex) 0 Invariant

-                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 11(gl_PerVertex) Block

-                              Decorate 48(gl_VertexID) BuiltIn VertexId

-                              Decorate 49(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypeInt 32 0

-               9:      8(int) Constant 4

-              10:             TypeArray 6(float) 9

-11(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10

-              12:             TypePointer Output 11(gl_PerVertex)

-              13:     12(ptr) Variable Output

-              14:             TypeInt 32 1

-              15:     14(int) Constant 0

-              16:             TypePointer Input 7(fvec4)

-         17(iv4):     16(ptr) Variable Input

-              19:             TypePointer Output 7(fvec4)

-              21:     14(int) Constant 1

-              22:             TypePointer UniformConstant 6(float)

-          23(ps):     22(ptr) Variable UniformConstant

-              25:             TypePointer Output 6(float)

-              27:     14(int) Constant 2

-              28:      8(int) Constant 0

-              29:             TypePointer Input 6(float)

-              33:      8(int) Constant 3

-              34:             TypeArray 7(fvec4) 33

-          35(s1):             TypeStruct 14(int) 14(int) 34

-              36:             TypeArray 35(s1) 9

-          37(s2):             TypeStruct 14(int) 36

-              38:             TypePointer Output 37(s2)

-       39(s2out):     38(ptr) Variable Output

-              40:             TypePointer Function 14(int)

-              45:             TypePointer UniformConstant 14(int)

-          46(ui):     45(ptr) Variable UniformConstant

-              47:             TypePointer Input 14(int)

- 48(gl_VertexID):     47(ptr) Variable Input

-49(gl_InstanceID):     47(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-           41(i):     40(ptr) Variable Function

-              18:    7(fvec4) Load 17(iv4)

-              20:     19(ptr) AccessChain 13 15

-                              Store 20 18

-              24:    6(float) Load 23(ps)

-              26:     25(ptr) AccessChain 13 21

-                              Store 26 24

-              30:     29(ptr) AccessChain 17(iv4) 28

-              31:    6(float) Load 30

-              32:     25(ptr) AccessChain 13 27 27

-                              Store 32 31

-              42:     14(int) Load 41(i)

-              43:    6(float) Load 23(ps)

-              44:     25(ptr) AccessChain 39(s2out) 21 42 27 27 33

-                              Store 44 43

-                              Return

-                              FunctionEnd

+spv.150.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 50
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 17 39 48 49
+                              Source GLSL 150
+                              Name 4  "main"
+                              Name 11  "gl_PerVertex"
+                              MemberName 11(gl_PerVertex) 0  "gl_Position"
+                              MemberName 11(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 11(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 13  ""
+                              Name 17  "iv4"
+                              Name 23  "ps"
+                              Name 35  "s1"
+                              MemberName 35(s1) 0  "a"
+                              MemberName 35(s1) 1  "a2"
+                              MemberName 35(s1) 2  "b"
+                              Name 37  "s2"
+                              MemberName 37(s2) 0  "c"
+                              MemberName 37(s2) 1  "d"
+                              Name 39  "s2out"
+                              Name 41  "i"
+                              Name 46  "ui"
+                              Name 48  "gl_VertexID"
+                              Name 49  "gl_InstanceID"
+                              MemberDecorate 11(gl_PerVertex) 0 Invariant
+                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 11(gl_PerVertex) Block
+                              Decorate 48(gl_VertexID) BuiltIn VertexId
+                              Decorate 49(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeInt 32 0
+               9:      8(int) Constant 4
+              10:             TypeArray 6(float) 9
+11(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10
+              12:             TypePointer Output 11(gl_PerVertex)
+              13:     12(ptr) Variable Output
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+              16:             TypePointer Input 7(fvec4)
+         17(iv4):     16(ptr) Variable Input
+              19:             TypePointer Output 7(fvec4)
+              21:     14(int) Constant 1
+              22:             TypePointer UniformConstant 6(float)
+          23(ps):     22(ptr) Variable UniformConstant
+              25:             TypePointer Output 6(float)
+              27:     14(int) Constant 2
+              28:      8(int) Constant 0
+              29:             TypePointer Input 6(float)
+              33:      8(int) Constant 3
+              34:             TypeArray 7(fvec4) 33
+          35(s1):             TypeStruct 14(int) 14(int) 34
+              36:             TypeArray 35(s1) 9
+          37(s2):             TypeStruct 14(int) 36
+              38:             TypePointer Output 37(s2)
+       39(s2out):     38(ptr) Variable Output
+              40:             TypePointer Function 14(int)
+              45:             TypePointer UniformConstant 14(int)
+          46(ui):     45(ptr) Variable UniformConstant
+              47:             TypePointer Input 14(int)
+ 48(gl_VertexID):     47(ptr) Variable Input
+49(gl_InstanceID):     47(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+           41(i):     40(ptr) Variable Function
+              18:    7(fvec4) Load 17(iv4)
+              20:     19(ptr) AccessChain 13 15
+                              Store 20 18
+              24:    6(float) Load 23(ps)
+              26:     25(ptr) AccessChain 13 21
+                              Store 26 24
+              30:     29(ptr) AccessChain 17(iv4) 28
+              31:    6(float) Load 30
+              32:     25(ptr) AccessChain 13 27 27
+                              Store 32 31
+              42:     14(int) Load 41(i)
+              43:    6(float) Load 23(ps)
+              44:     25(ptr) AccessChain 39(s2out) 21 42 27 27 33
+                              Store 44 43
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out
index 40cccb5..675b78e 100755
--- a/Test/baseResults/spv.300BuiltIns.vert.out
+++ b/Test/baseResults/spv.300BuiltIns.vert.out
@@ -1,76 +1,76 @@
-spv.300BuiltIns.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 40

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 25 11 39

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 11  "gl_VertexID"

-                              Name 16  "j"

-                              Name 23  "gl_Position"

-                              Name 25  "ps"

-                              Name 33  "gl_PointSize"

-                              Name 39  "gl_InstanceID"

-                              Decorate 8(i) RelaxedPrecision

-                              Decorate 11(gl_VertexID) BuiltIn VertexId

-                              Decorate 16(j) RelaxedPrecision

-                              Decorate 23(gl_Position) Invariant

-                              Decorate 23(gl_Position) BuiltIn Position

-                              Decorate 25(ps) RelaxedPrecision

-                              Decorate 33(gl_PointSize) BuiltIn PointSize

-                              Decorate 39(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 4

-              10:             TypePointer Input 6(int)

- 11(gl_VertexID):     10(ptr) Variable Input

-              14:      6(int) Constant 10

-              20:             TypeFloat 32

-              21:             TypeVector 20(float) 4

-              22:             TypePointer Output 21(fvec4)

- 23(gl_Position):     22(ptr) Variable Output

-              24:             TypePointer Input 20(float)

-          25(ps):     24(ptr) Variable Input

-              32:             TypePointer Output 20(float)

-33(gl_PointSize):     32(ptr) Variable Output

-39(gl_InstanceID):     10(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-           16(j):      7(ptr) Variable Function

-              12:      6(int) Load 11(gl_VertexID)

-              13:      6(int) IMul 9 12

-              15:      6(int) ISub 13 14

-                              Store 8(i) 15

-              17:      6(int) Load 11(gl_VertexID)

-              18:      6(int) IMul 9 17

-              19:      6(int) ISub 18 14

-                              Store 16(j) 19

-              26:   20(float) Load 25(ps)

-              27:   21(fvec4) CompositeConstruct 26 26 26 26

-                              Store 23(gl_Position) 27

-              28:      6(int) Load 8(i)

-              29:   20(float) ConvertSToF 28

-              30:   21(fvec4) Load 23(gl_Position)

-              31:   21(fvec4) VectorTimesScalar 30 29

-                              Store 23(gl_Position) 31

-              34:   20(float) Load 25(ps)

-                              Store 33(gl_PointSize) 34

-              35:      6(int) Load 16(j)

-              36:   20(float) ConvertSToF 35

-              37:   20(float) Load 33(gl_PointSize)

-              38:   20(float) FMul 37 36

-                              Store 33(gl_PointSize) 38

-                              Return

-                              FunctionEnd

+spv.300BuiltIns.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 40
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 25 11 39
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 11  "gl_VertexID"
+                              Name 16  "j"
+                              Name 23  "gl_Position"
+                              Name 25  "ps"
+                              Name 33  "gl_PointSize"
+                              Name 39  "gl_InstanceID"
+                              Decorate 8(i) RelaxedPrecision
+                              Decorate 11(gl_VertexID) BuiltIn VertexId
+                              Decorate 16(j) RelaxedPrecision
+                              Decorate 23(gl_Position) Invariant
+                              Decorate 23(gl_Position) BuiltIn Position
+                              Decorate 25(ps) RelaxedPrecision
+                              Decorate 33(gl_PointSize) BuiltIn PointSize
+                              Decorate 39(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 4
+              10:             TypePointer Input 6(int)
+ 11(gl_VertexID):     10(ptr) Variable Input
+              14:      6(int) Constant 10
+              20:             TypeFloat 32
+              21:             TypeVector 20(float) 4
+              22:             TypePointer Output 21(fvec4)
+ 23(gl_Position):     22(ptr) Variable Output
+              24:             TypePointer Input 20(float)
+          25(ps):     24(ptr) Variable Input
+              32:             TypePointer Output 20(float)
+33(gl_PointSize):     32(ptr) Variable Output
+39(gl_InstanceID):     10(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+           16(j):      7(ptr) Variable Function
+              12:      6(int) Load 11(gl_VertexID)
+              13:      6(int) IMul 9 12
+              15:      6(int) ISub 13 14
+                              Store 8(i) 15
+              17:      6(int) Load 11(gl_VertexID)
+              18:      6(int) IMul 9 17
+              19:      6(int) ISub 18 14
+                              Store 16(j) 19
+              26:   20(float) Load 25(ps)
+              27:   21(fvec4) CompositeConstruct 26 26 26 26
+                              Store 23(gl_Position) 27
+              28:      6(int) Load 8(i)
+              29:   20(float) ConvertSToF 28
+              30:   21(fvec4) Load 23(gl_Position)
+              31:   21(fvec4) VectorTimesScalar 30 29
+                              Store 23(gl_Position) 31
+              34:   20(float) Load 25(ps)
+                              Store 33(gl_PointSize) 34
+              35:      6(int) Load 16(j)
+              36:   20(float) ConvertSToF 35
+              37:   20(float) Load 33(gl_PointSize)
+              38:   20(float) FMul 37 36
+                              Store 33(gl_PointSize) 38
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out
index b263e5a..62dca8d 100755
--- a/Test/baseResults/spv.300layout.frag.out
+++ b/Test/baseResults/spv.300layout.frag.out
@@ -1,71 +1,71 @@
-spv.300layout.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 37

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 29 11 9 26 15

-                              ExecutionMode 4 OriginLowerLeft

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 9  "c"

-                              Name 11  "color"

-                              Name 13  "S"

-                              MemberName 13(S) 0  "c"

-                              MemberName 13(S) 1  "f"

-                              Name 15  "s"

-                              Name 26  "p"

-                              Name 29  "pos"

-                              Decorate 9(c) RelaxedPrecision

-                              Decorate 9(c) Location 7

-                              Decorate 11(color) RelaxedPrecision

-                              MemberDecorate 13(S) 0 RelaxedPrecision

-                              MemberDecorate 13(S) 1 RelaxedPrecision

-                              Decorate 26(p) RelaxedPrecision

-                              Decorate 26(p) Location 3

-                              Decorate 29(pos) RelaxedPrecision

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 3

-               8:             TypePointer Output 7(fvec3)

-            9(c):      8(ptr) Variable Output

-              10:             TypePointer Input 7(fvec3)

-       11(color):     10(ptr) Variable Input

-           13(S):             TypeStruct 7(fvec3) 6(float)

-              14:             TypePointer Input 13(S)

-           15(s):     14(ptr) Variable Input

-              16:             TypeInt 32 1

-              17:     16(int) Constant 0

-              21:             TypeVector 6(float) 4

-              22:             TypeInt 32 0

-              23:     22(int) Constant 2

-              24:             TypeArray 21(fvec4) 23

-              25:             TypePointer Output 24

-           26(p):     25(ptr) Variable Output

-              27:     16(int) Constant 1

-              28:             TypePointer Input 21(fvec4)

-         29(pos):     28(ptr) Variable Input

-              31:             TypePointer Input 6(float)

-              35:             TypePointer Output 21(fvec4)

-         4(main):           2 Function None 3

-               5:             Label

-              12:    7(fvec3) Load 11(color)

-              18:     10(ptr) AccessChain 15(s) 17

-              19:    7(fvec3) Load 18

-              20:    7(fvec3) FAdd 12 19

-                              Store 9(c) 20

-              30:   21(fvec4) Load 29(pos)

-              32:     31(ptr) AccessChain 15(s) 27

-              33:    6(float) Load 32

-              34:   21(fvec4) VectorTimesScalar 30 33

-              36:     35(ptr) AccessChain 26(p) 27

-                              Store 36 34

-                              Return

-                              FunctionEnd

+spv.300layout.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 37
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 29 11 9 26 15
+                              ExecutionMode 4 OriginLowerLeft
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 9  "c"
+                              Name 11  "color"
+                              Name 13  "S"
+                              MemberName 13(S) 0  "c"
+                              MemberName 13(S) 1  "f"
+                              Name 15  "s"
+                              Name 26  "p"
+                              Name 29  "pos"
+                              Decorate 9(c) RelaxedPrecision
+                              Decorate 9(c) Location 7
+                              Decorate 11(color) RelaxedPrecision
+                              MemberDecorate 13(S) 0 RelaxedPrecision
+                              MemberDecorate 13(S) 1 RelaxedPrecision
+                              Decorate 26(p) RelaxedPrecision
+                              Decorate 26(p) Location 3
+                              Decorate 29(pos) RelaxedPrecision
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypePointer Output 7(fvec3)
+            9(c):      8(ptr) Variable Output
+              10:             TypePointer Input 7(fvec3)
+       11(color):     10(ptr) Variable Input
+           13(S):             TypeStruct 7(fvec3) 6(float)
+              14:             TypePointer Input 13(S)
+           15(s):     14(ptr) Variable Input
+              16:             TypeInt 32 1
+              17:     16(int) Constant 0
+              21:             TypeVector 6(float) 4
+              22:             TypeInt 32 0
+              23:     22(int) Constant 2
+              24:             TypeArray 21(fvec4) 23
+              25:             TypePointer Output 24
+           26(p):     25(ptr) Variable Output
+              27:     16(int) Constant 1
+              28:             TypePointer Input 21(fvec4)
+         29(pos):     28(ptr) Variable Input
+              31:             TypePointer Input 6(float)
+              35:             TypePointer Output 21(fvec4)
+         4(main):           2 Function None 3
+               5:             Label
+              12:    7(fvec3) Load 11(color)
+              18:     10(ptr) AccessChain 15(s) 17
+              19:    7(fvec3) Load 18
+              20:    7(fvec3) FAdd 12 19
+                              Store 9(c) 20
+              30:   21(fvec4) Load 29(pos)
+              32:     31(ptr) AccessChain 15(s) 27
+              33:    6(float) Load 32
+              34:   21(fvec4) VectorTimesScalar 30 33
+              36:     35(ptr) AccessChain 26(p) 27
+                              Store 36 34
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.300layout.vert.out b/Test/baseResults/spv.300layout.vert.out
index f996449..541970b 100644
--- a/Test/baseResults/spv.300layout.vert.out
+++ b/Test/baseResults/spv.300layout.vert.out
@@ -1,6 +1,6 @@
-spv.300layout.vert

-

-Linked vertex stage:

-

-

-Missing functionality: binary operation on matrix

+spv.300layout.vert
+
+Linked vertex stage:
+
+
+Missing functionality: binary operation on matrix
diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out
index 26714cb..d040818 100755
--- a/Test/baseResults/spv.300layoutp.vert.out
+++ b/Test/baseResults/spv.300layoutp.vert.out
@@ -1,198 +1,198 @@
-spv.300layoutp.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 117

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 53 11 73 9 51 61 81 115 116

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 9  "pos"

-                              Name 11  "p"

-                              Name 17  "Transform"

-                              MemberName 17(Transform) 0  "M1"

-                              MemberName 17(Transform) 1  "M2"

-                              MemberName 17(Transform) 2  "N1"

-                              MemberName 17(Transform) 3  "iuin"

-                              Name 19  "tblock"

-                              Name 33  "T3"

-                              MemberName 33(T3) 0  "M3"

-                              MemberName 33(T3) 1  "M4"

-                              MemberName 33(T3) 2  "N2"

-                              MemberName 33(T3) 3  "uv3a"

-                              Name 35  ""

-                              Name 43  "T2"

-                              MemberName 43(T2) 0  "b"

-                              MemberName 43(T2) 1  "t2m"

-                              Name 45  ""

-                              Name 51  "color"

-                              Name 53  "c"

-                              Name 61  "iout"

-                              Name 67  "uiuin"

-                              Name 73  "aiv2"

-                              Name 79  "S"

-                              MemberName 79(S) 0  "c"

-                              MemberName 79(S) 1  "f"

-                              Name 81  "s"

-                              Name 115  "gl_VertexID"

-                              Name 116  "gl_InstanceID"

-                              Decorate 11(p) Location 3

-                              MemberDecorate 17(Transform) 0 RowMajor

-                              MemberDecorate 17(Transform) 0 Offset 0

-                              MemberDecorate 17(Transform) 0 MatrixStride 16

-                              MemberDecorate 17(Transform) 1 ColMajor

-                              MemberDecorate 17(Transform) 1 Offset 64

-                              MemberDecorate 17(Transform) 1 MatrixStride 16

-                              MemberDecorate 17(Transform) 2 RowMajor

-                              MemberDecorate 17(Transform) 2 Offset 128

-                              MemberDecorate 17(Transform) 2 MatrixStride 16

-                              MemberDecorate 17(Transform) 3 Offset 176

-                              Decorate 17(Transform) Block

-                              MemberDecorate 33(T3) 0 ColMajor

-                              MemberDecorate 33(T3) 1 RowMajor

-                              MemberDecorate 33(T3) 2 ColMajor

-                              Decorate 33(T3) GLSLShared

-                              Decorate 33(T3) Block

-                              MemberDecorate 43(T2) 1 RowMajor

-                              Decorate 43(T2) GLSLShared

-                              Decorate 43(T2) Block

-                              Decorate 53(c) Location 7

-                              Decorate 61(iout) Flat

-                              Decorate 73(aiv2) Location 9

-                              Decorate 115(gl_VertexID) BuiltIn VertexId

-                              Decorate 116(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Output 7(fvec4)

-          9(pos):      8(ptr) Variable Output

-              10:             TypePointer Input 7(fvec4)

-           11(p):     10(ptr) Variable Input

-              13:             TypeMatrix 7(fvec4) 4

-              14:             TypeVector 6(float) 3

-              15:             TypeMatrix 14(fvec3) 3

-              16:             TypeInt 32 1

-   17(Transform):             TypeStruct 13 13 15 16(int)

-              18:             TypePointer Uniform 17(Transform)

-      19(tblock):     18(ptr) Variable Uniform

-              20:     16(int) Constant 0

-              21:             TypePointer Uniform 13

-              24:     16(int) Constant 1

-              28:             TypeMatrix 14(fvec3) 2

-              29:             TypeInt 32 0

-              30:             TypeVector 29(int) 3

-              31:     29(int) Constant 4

-              32:             TypeArray 30(ivec3) 31

-          33(T3):             TypeStruct 13 13 28 32

-              34:             TypePointer Uniform 33(T3)

-              35:     34(ptr) Variable Uniform

-              42:             TypeBool

-          43(T2):             TypeStruct 42(bool) 13

-              44:             TypePointer Uniform 43(T2)

-              45:     44(ptr) Variable Uniform

-              50:             TypePointer Output 14(fvec3)

-       51(color):     50(ptr) Variable Output

-              52:             TypePointer Input 14(fvec3)

-           53(c):     52(ptr) Variable Input

-              55:     16(int) Constant 2

-              56:             TypePointer Uniform 15

-              60:             TypePointer Output 16(int)

-        61(iout):     60(ptr) Variable Output

-              62:     16(int) Constant 3

-              63:             TypePointer Uniform 16(int)

-              66:             TypePointer UniformConstant 29(int)

-       67(uiuin):     66(ptr) Variable UniformConstant

-              71:             TypeVector 16(int) 2

-              72:             TypePointer Input 71(ivec2)

-        73(aiv2):     72(ptr) Variable Input

-              74:     29(int) Constant 1

-              75:             TypePointer Input 16(int)

-           79(S):             TypeStruct 14(fvec3) 6(float)

-              80:             TypePointer Output 79(S)

-           81(s):     80(ptr) Variable Output

-              84:     29(int) Constant 0

-              85:             TypePointer Input 6(float)

-              88:             TypePointer Output 6(float)

-              90:             TypePointer Uniform 14(fvec3)

-              93:    6(float) Constant 1065353216

-              94:   14(fvec3) ConstantComposite 93 93 93

-              95:             TypeVector 42(bool) 3

-             101:             TypePointer Uniform 30(ivec3)

-             104:     29(int) Constant 5

-             105:   30(ivec3) ConstantComposite 104 104 104

-115(gl_VertexID):     75(ptr) Variable Input

-116(gl_InstanceID):     75(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              12:    7(fvec4) Load 11(p)

-              22:     21(ptr) AccessChain 19(tblock) 20

-              23:          13 Load 22

-              25:     21(ptr) AccessChain 19(tblock) 24

-              26:          13 Load 25

-              27:          13 MatrixTimesMatrix 23 26

-              36:     21(ptr) AccessChain 35 24

-              37:          13 Load 36

-              38:          13 MatrixTimesMatrix 27 37

-              39:     21(ptr) AccessChain 35 20

-              40:          13 Load 39

-              41:          13 MatrixTimesMatrix 38 40

-              46:     21(ptr) AccessChain 45 24

-              47:          13 Load 46

-              48:          13 MatrixTimesMatrix 41 47

-              49:    7(fvec4) VectorTimesMatrix 12 48

-                              Store 9(pos) 49

-              54:   14(fvec3) Load 53(c)

-              57:     56(ptr) AccessChain 19(tblock) 55

-              58:          15 Load 57

-              59:   14(fvec3) VectorTimesMatrix 54 58

-                              Store 51(color) 59

-              64:     63(ptr) AccessChain 19(tblock) 62

-              65:     16(int) Load 64

-              68:     29(int) Load 67(uiuin)

-              69:     16(int) Bitcast 68

-              70:     16(int) IAdd 65 69

-              76:     75(ptr) AccessChain 73(aiv2) 74

-              77:     16(int) Load 76

-              78:     16(int) IAdd 70 77

-                              Store 61(iout) 78

-              82:   14(fvec3) Load 53(c)

-              83:     50(ptr) AccessChain 81(s) 20

-                              Store 83 82

-              86:     85(ptr) AccessChain 11(p) 84

-              87:    6(float) Load 86

-              89:     88(ptr) AccessChain 81(s) 24

-                              Store 89 87

-              91:     90(ptr) AccessChain 35 55 24

-              92:   14(fvec3) Load 91

-              96:   95(bvec3) FOrdNotEqual 92 94

-              97:    42(bool) Any 96

-              98:    42(bool) LogicalNot 97

-                              SelectionMerge 100 None

-                              BranchConditional 98 99 100

-              99:               Label

-             102:    101(ptr)   AccessChain 35 62 55

-             103:   30(ivec3)   Load 102

-             106:   95(bvec3)   INotEqual 103 105

-             107:    42(bool)   Any 106

-                                Branch 100

-             100:             Label

-             108:    42(bool) Phi 97 5 107 99

-                              SelectionMerge 110 None

-                              BranchConditional 108 109 110

-             109:               Label

-             111:     50(ptr)   AccessChain 81(s) 20

-             112:   14(fvec3)   Load 111

-             113:   14(fvec3)   CompositeConstruct 93 93 93

-             114:   14(fvec3)   FAdd 112 113

-                                Store 111 114

-                                Branch 110

-             110:             Label

-                              Return

-                              FunctionEnd

+spv.300layoutp.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 117
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 53 11 73 9 51 61 81 115 116
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 9  "pos"
+                              Name 11  "p"
+                              Name 17  "Transform"
+                              MemberName 17(Transform) 0  "M1"
+                              MemberName 17(Transform) 1  "M2"
+                              MemberName 17(Transform) 2  "N1"
+                              MemberName 17(Transform) 3  "iuin"
+                              Name 19  "tblock"
+                              Name 33  "T3"
+                              MemberName 33(T3) 0  "M3"
+                              MemberName 33(T3) 1  "M4"
+                              MemberName 33(T3) 2  "N2"
+                              MemberName 33(T3) 3  "uv3a"
+                              Name 35  ""
+                              Name 43  "T2"
+                              MemberName 43(T2) 0  "b"
+                              MemberName 43(T2) 1  "t2m"
+                              Name 45  ""
+                              Name 51  "color"
+                              Name 53  "c"
+                              Name 61  "iout"
+                              Name 67  "uiuin"
+                              Name 73  "aiv2"
+                              Name 79  "S"
+                              MemberName 79(S) 0  "c"
+                              MemberName 79(S) 1  "f"
+                              Name 81  "s"
+                              Name 115  "gl_VertexID"
+                              Name 116  "gl_InstanceID"
+                              Decorate 11(p) Location 3
+                              MemberDecorate 17(Transform) 0 RowMajor
+                              MemberDecorate 17(Transform) 0 Offset 0
+                              MemberDecorate 17(Transform) 0 MatrixStride 16
+                              MemberDecorate 17(Transform) 1 ColMajor
+                              MemberDecorate 17(Transform) 1 Offset 64
+                              MemberDecorate 17(Transform) 1 MatrixStride 16
+                              MemberDecorate 17(Transform) 2 RowMajor
+                              MemberDecorate 17(Transform) 2 Offset 128
+                              MemberDecorate 17(Transform) 2 MatrixStride 16
+                              MemberDecorate 17(Transform) 3 Offset 176
+                              Decorate 17(Transform) Block
+                              MemberDecorate 33(T3) 0 ColMajor
+                              MemberDecorate 33(T3) 1 RowMajor
+                              MemberDecorate 33(T3) 2 ColMajor
+                              Decorate 33(T3) GLSLShared
+                              Decorate 33(T3) Block
+                              MemberDecorate 43(T2) 1 RowMajor
+                              Decorate 43(T2) GLSLShared
+                              Decorate 43(T2) Block
+                              Decorate 53(c) Location 7
+                              Decorate 61(iout) Flat
+                              Decorate 73(aiv2) Location 9
+                              Decorate 115(gl_VertexID) BuiltIn VertexId
+                              Decorate 116(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Output 7(fvec4)
+          9(pos):      8(ptr) Variable Output
+              10:             TypePointer Input 7(fvec4)
+           11(p):     10(ptr) Variable Input
+              13:             TypeMatrix 7(fvec4) 4
+              14:             TypeVector 6(float) 3
+              15:             TypeMatrix 14(fvec3) 3
+              16:             TypeInt 32 1
+   17(Transform):             TypeStruct 13 13 15 16(int)
+              18:             TypePointer Uniform 17(Transform)
+      19(tblock):     18(ptr) Variable Uniform
+              20:     16(int) Constant 0
+              21:             TypePointer Uniform 13
+              24:     16(int) Constant 1
+              28:             TypeMatrix 14(fvec3) 2
+              29:             TypeInt 32 0
+              30:             TypeVector 29(int) 3
+              31:     29(int) Constant 4
+              32:             TypeArray 30(ivec3) 31
+          33(T3):             TypeStruct 13 13 28 32
+              34:             TypePointer Uniform 33(T3)
+              35:     34(ptr) Variable Uniform
+              42:             TypeBool
+          43(T2):             TypeStruct 42(bool) 13
+              44:             TypePointer Uniform 43(T2)
+              45:     44(ptr) Variable Uniform
+              50:             TypePointer Output 14(fvec3)
+       51(color):     50(ptr) Variable Output
+              52:             TypePointer Input 14(fvec3)
+           53(c):     52(ptr) Variable Input
+              55:     16(int) Constant 2
+              56:             TypePointer Uniform 15
+              60:             TypePointer Output 16(int)
+        61(iout):     60(ptr) Variable Output
+              62:     16(int) Constant 3
+              63:             TypePointer Uniform 16(int)
+              66:             TypePointer UniformConstant 29(int)
+       67(uiuin):     66(ptr) Variable UniformConstant
+              71:             TypeVector 16(int) 2
+              72:             TypePointer Input 71(ivec2)
+        73(aiv2):     72(ptr) Variable Input
+              74:     29(int) Constant 1
+              75:             TypePointer Input 16(int)
+           79(S):             TypeStruct 14(fvec3) 6(float)
+              80:             TypePointer Output 79(S)
+           81(s):     80(ptr) Variable Output
+              84:     29(int) Constant 0
+              85:             TypePointer Input 6(float)
+              88:             TypePointer Output 6(float)
+              90:             TypePointer Uniform 14(fvec3)
+              93:    6(float) Constant 1065353216
+              94:   14(fvec3) ConstantComposite 93 93 93
+              95:             TypeVector 42(bool) 3
+             101:             TypePointer Uniform 30(ivec3)
+             104:     29(int) Constant 5
+             105:   30(ivec3) ConstantComposite 104 104 104
+115(gl_VertexID):     75(ptr) Variable Input
+116(gl_InstanceID):     75(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              12:    7(fvec4) Load 11(p)
+              22:     21(ptr) AccessChain 19(tblock) 20
+              23:          13 Load 22
+              25:     21(ptr) AccessChain 19(tblock) 24
+              26:          13 Load 25
+              27:          13 MatrixTimesMatrix 23 26
+              36:     21(ptr) AccessChain 35 24
+              37:          13 Load 36
+              38:          13 MatrixTimesMatrix 27 37
+              39:     21(ptr) AccessChain 35 20
+              40:          13 Load 39
+              41:          13 MatrixTimesMatrix 38 40
+              46:     21(ptr) AccessChain 45 24
+              47:          13 Load 46
+              48:          13 MatrixTimesMatrix 41 47
+              49:    7(fvec4) VectorTimesMatrix 12 48
+                              Store 9(pos) 49
+              54:   14(fvec3) Load 53(c)
+              57:     56(ptr) AccessChain 19(tblock) 55
+              58:          15 Load 57
+              59:   14(fvec3) VectorTimesMatrix 54 58
+                              Store 51(color) 59
+              64:     63(ptr) AccessChain 19(tblock) 62
+              65:     16(int) Load 64
+              68:     29(int) Load 67(uiuin)
+              69:     16(int) Bitcast 68
+              70:     16(int) IAdd 65 69
+              76:     75(ptr) AccessChain 73(aiv2) 74
+              77:     16(int) Load 76
+              78:     16(int) IAdd 70 77
+                              Store 61(iout) 78
+              82:   14(fvec3) Load 53(c)
+              83:     50(ptr) AccessChain 81(s) 20
+                              Store 83 82
+              86:     85(ptr) AccessChain 11(p) 84
+              87:    6(float) Load 86
+              89:     88(ptr) AccessChain 81(s) 24
+                              Store 89 87
+              91:     90(ptr) AccessChain 35 55 24
+              92:   14(fvec3) Load 91
+              96:   95(bvec3) FOrdNotEqual 92 94
+              97:    42(bool) Any 96
+              98:    42(bool) LogicalNot 97
+                              SelectionMerge 100 None
+                              BranchConditional 98 99 100
+              99:               Label
+             102:    101(ptr)   AccessChain 35 62 55
+             103:   30(ivec3)   Load 102
+             106:   95(bvec3)   INotEqual 103 105
+             107:    42(bool)   Any 106
+                                Branch 100
+             100:             Label
+             108:    42(bool) Phi 97 5 107 99
+                              SelectionMerge 110 None
+                              BranchConditional 108 109 110
+             109:               Label
+             111:     50(ptr)   AccessChain 81(s) 20
+             112:   14(fvec3)   Load 111
+             113:   14(fvec3)   CompositeConstruct 93 93 93
+             114:   14(fvec3)   FAdd 112 113
+                                Store 111 114
+                                Branch 110
+             110:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out
index d95940b..ef46599 100755
--- a/Test/baseResults/spv.310.comp.out
+++ b/Test/baseResults/spv.310.comp.out
@@ -1,119 +1,119 @@
-spv.310.comp

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked compute stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 67

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint GLCompute 4  "main"

-                              ExecutionMode 4 LocalSize 16 32 4

-                              Source ESSL 310

-                              Name 4  "main"

-                              Name 13  "outb"

-                              MemberName 13(outb) 0  "f"

-                              MemberName 13(outb) 1  "g"

-                              MemberName 13(outb) 2  "h"

-                              MemberName 13(outb) 3  "uns"

-                              Name 15  "outbname"

-                              Name 19  "s"

-                              Name 24  "outbna"

-                              MemberName 24(outbna) 0  "k"

-                              MemberName 24(outbna) 1  "na"

-                              Name 26  "outbnamena"

-                              Name 42  "i"

-                              Name 48  "outs"

-                              MemberName 48(outs) 0  "s"

-                              MemberName 48(outs) 1  "va"

-                              Name 50  "outnames"

-                              Name 53  "gl_LocalInvocationID"

-                              Decorate 13(outb) GLSLShared

-                              Decorate 13(outb) BufferBlock

-                              Decorate 24(outbna) GLSLShared

-                              Decorate 24(outbna) BufferBlock

-                              Decorate 48(outs) GLSLShared

-                              Decorate 48(outs) BufferBlock

-                              Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId

-                              Decorate 66 BuiltIn WorkgroupSize

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 0

-               7:      6(int) Constant 1

-               8:      6(int) Constant 1023

-               9:      6(int) Constant 0

-              10:             TypeFloat 32

-              11:             TypeVector 10(float) 3

-              12:             TypeRuntimeArray 11(fvec3)

-        13(outb):             TypeStruct 10(float) 10(float) 10(float) 12

-              14:             TypePointer Uniform 13(outb)

-    15(outbname):     14(ptr) Variable Uniform

-              16:             TypeInt 32 1

-              17:     16(int) Constant 0

-              18:             TypePointer Workgroup 10(float)

-           19(s):     18(ptr) Variable Workgroup

-              21:             TypePointer Uniform 10(float)

-              23:             TypeVector 10(float) 4

-      24(outbna):             TypeStruct 16(int) 23(fvec4)

-              25:             TypePointer Uniform 24(outbna)

-  26(outbnamena):     25(ptr) Variable Uniform

-              27:     16(int) Constant 1

-              30:             TypePointer Uniform 23(fvec4)

-              32:     16(int) Constant 3

-              33:     16(int) Constant 18

-              36:     16(int) Constant 17

-              37:   10(float) Constant 1077936128

-              38:   11(fvec3) ConstantComposite 37 37 37

-              39:             TypePointer Uniform 11(fvec3)

-              41:             TypePointer Workgroup 16(int)

-           42(i):     41(ptr) Variable Workgroup

-              47:             TypeRuntimeArray 23(fvec4)

-        48(outs):             TypeStruct 16(int) 47

-              49:             TypePointer Uniform 48(outs)

-    50(outnames):     49(ptr) Variable Uniform

-              51:             TypeVector 6(int) 3

-              52:             TypePointer Input 51(ivec3)

-53(gl_LocalInvocationID):     52(ptr) Variable Input

-              54:             TypePointer Input 6(int)

-              61:             TypePointer Uniform 16(int)

-              63:      6(int) Constant 16

-              64:      6(int) Constant 32

-              65:      6(int) Constant 4

-              66:   51(ivec3) ConstantComposite 63 64 65

-         4(main):           2 Function None 3

-               5:             Label

-                              MemoryBarrier 7 8

-                              ControlBarrier 7 7 9

-              20:   10(float) Load 19(s)

-              22:     21(ptr) AccessChain 15(outbname) 17

-                              Store 22 20

-              28:   10(float) Load 19(s)

-              29:   23(fvec4) CompositeConstruct 28 28 28 28

-              31:     30(ptr) AccessChain 26(outbnamena) 27

-                              Store 31 29

-              34:     21(ptr) AccessChain 15(outbname) 32 33 9

-              35:   10(float) Load 34

-                              Store 19(s) 35

-              40:     39(ptr) AccessChain 15(outbname) 32 36

-                              Store 40 38

-              43:     16(int) Load 42(i)

-              44:   10(float) Load 19(s)

-              45:   11(fvec3) CompositeConstruct 44 44 44

-              46:     39(ptr) AccessChain 15(outbname) 32 43

-                              Store 46 45

-              55:     54(ptr) AccessChain 53(gl_LocalInvocationID) 9

-              56:      6(int) Load 55

-              57:   10(float) Load 19(s)

-              58:   23(fvec4) CompositeConstruct 57 57 57 57

-              59:     30(ptr) AccessChain 50(outnames) 27 56

-                              Store 59 58

-              60:     16(int) ArrayLength 15(outbname) 3

-              62:     61(ptr) AccessChain 50(outnames) 17

-                              Store 62 60

-                              Return

-                              FunctionEnd

+spv.310.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 67
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 16 32 4
+                              Source ESSL 310
+                              Name 4  "main"
+                              Name 13  "outb"
+                              MemberName 13(outb) 0  "f"
+                              MemberName 13(outb) 1  "g"
+                              MemberName 13(outb) 2  "h"
+                              MemberName 13(outb) 3  "uns"
+                              Name 15  "outbname"
+                              Name 19  "s"
+                              Name 24  "outbna"
+                              MemberName 24(outbna) 0  "k"
+                              MemberName 24(outbna) 1  "na"
+                              Name 26  "outbnamena"
+                              Name 42  "i"
+                              Name 48  "outs"
+                              MemberName 48(outs) 0  "s"
+                              MemberName 48(outs) 1  "va"
+                              Name 50  "outnames"
+                              Name 53  "gl_LocalInvocationID"
+                              Decorate 13(outb) GLSLShared
+                              Decorate 13(outb) BufferBlock
+                              Decorate 24(outbna) GLSLShared
+                              Decorate 24(outbna) BufferBlock
+                              Decorate 48(outs) GLSLShared
+                              Decorate 48(outs) BufferBlock
+                              Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
+                              Decorate 66 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:      6(int) Constant 1
+               8:      6(int) Constant 1023
+               9:      6(int) Constant 0
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 3
+              12:             TypeRuntimeArray 11(fvec3)
+        13(outb):             TypeStruct 10(float) 10(float) 10(float) 12
+              14:             TypePointer Uniform 13(outb)
+    15(outbname):     14(ptr) Variable Uniform
+              16:             TypeInt 32 1
+              17:     16(int) Constant 0
+              18:             TypePointer Workgroup 10(float)
+           19(s):     18(ptr) Variable Workgroup
+              21:             TypePointer Uniform 10(float)
+              23:             TypeVector 10(float) 4
+      24(outbna):             TypeStruct 16(int) 23(fvec4)
+              25:             TypePointer Uniform 24(outbna)
+  26(outbnamena):     25(ptr) Variable Uniform
+              27:     16(int) Constant 1
+              30:             TypePointer Uniform 23(fvec4)
+              32:     16(int) Constant 3
+              33:     16(int) Constant 18
+              36:     16(int) Constant 17
+              37:   10(float) Constant 1077936128
+              38:   11(fvec3) ConstantComposite 37 37 37
+              39:             TypePointer Uniform 11(fvec3)
+              41:             TypePointer Workgroup 16(int)
+           42(i):     41(ptr) Variable Workgroup
+              47:             TypeRuntimeArray 23(fvec4)
+        48(outs):             TypeStruct 16(int) 47
+              49:             TypePointer Uniform 48(outs)
+    50(outnames):     49(ptr) Variable Uniform
+              51:             TypeVector 6(int) 3
+              52:             TypePointer Input 51(ivec3)
+53(gl_LocalInvocationID):     52(ptr) Variable Input
+              54:             TypePointer Input 6(int)
+              61:             TypePointer Uniform 16(int)
+              63:      6(int) Constant 16
+              64:      6(int) Constant 32
+              65:      6(int) Constant 4
+              66:   51(ivec3) ConstantComposite 63 64 65
+         4(main):           2 Function None 3
+               5:             Label
+                              MemoryBarrier 7 8
+                              ControlBarrier 7 7 9
+              20:   10(float) Load 19(s)
+              22:     21(ptr) AccessChain 15(outbname) 17
+                              Store 22 20
+              28:   10(float) Load 19(s)
+              29:   23(fvec4) CompositeConstruct 28 28 28 28
+              31:     30(ptr) AccessChain 26(outbnamena) 27
+                              Store 31 29
+              34:     21(ptr) AccessChain 15(outbname) 32 33 9
+              35:   10(float) Load 34
+                              Store 19(s) 35
+              40:     39(ptr) AccessChain 15(outbname) 32 36
+                              Store 40 38
+              43:     16(int) Load 42(i)
+              44:   10(float) Load 19(s)
+              45:   11(fvec3) CompositeConstruct 44 44 44
+              46:     39(ptr) AccessChain 15(outbname) 32 43
+                              Store 46 45
+              55:     54(ptr) AccessChain 53(gl_LocalInvocationID) 9
+              56:      6(int) Load 55
+              57:   10(float) Load 19(s)
+              58:   23(fvec4) CompositeConstruct 57 57 57 57
+              59:     30(ptr) AccessChain 50(outnames) 27 56
+                              Store 59 58
+              60:     16(int) ArrayLength 15(outbname) 3
+              62:     61(ptr) AccessChain 50(outnames) 17
+                              Store 62 60
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out
index 5625cb3..1f310bb 100755
--- a/Test/baseResults/spv.330.geom.out
+++ b/Test/baseResults/spv.330.geom.out
@@ -1,72 +1,72 @@
-spv.330.geom

-

-Linked geometry stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 32

-

-                              Capability Geometry

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Geometry 4  "main" 20 13

-                              ExecutionMode 4 Triangles

-                              ExecutionMode 4 Invocations 0

-                              ExecutionMode 4 OutputTriangleStrip

-                              ExecutionMode 4 OutputVertices 3

-                              Source GLSL 330

-                              SourceExtension  "GL_ARB_separate_shader_objects"

-                              Name 4  "main"

-                              Name 11  "gl_PerVertex"

-                              MemberName 11(gl_PerVertex) 0  "gl_Position"

-                              MemberName 11(gl_PerVertex) 1  "gl_ClipDistance"

-                              Name 13  ""

-                              Name 16  "gl_PerVertex"

-                              MemberName 16(gl_PerVertex) 0  "gl_Position"

-                              MemberName 16(gl_PerVertex) 1  "gl_ClipDistance"

-                              Name 20  "gl_in"

-                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance

-                              Decorate 11(gl_PerVertex) Block

-                              Decorate 11(gl_PerVertex) Stream 0

-                              Decorate 13 Stream 0

-                              MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance

-                              Decorate 16(gl_PerVertex) Block

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypeInt 32 0

-               9:      8(int) Constant 1

-              10:             TypeArray 6(float) 9

-11(gl_PerVertex):             TypeStruct 7(fvec4) 10

-              12:             TypePointer Output 11(gl_PerVertex)

-              13:     12(ptr) Variable Output

-              14:             TypeInt 32 1

-              15:     14(int) Constant 0

-16(gl_PerVertex):             TypeStruct 7(fvec4) 10

-              17:      8(int) Constant 3

-              18:             TypeArray 16(gl_PerVertex) 17

-              19:             TypePointer Input 18

-       20(gl_in):     19(ptr) Variable Input

-              21:     14(int) Constant 1

-              22:             TypePointer Input 7(fvec4)

-              25:             TypePointer Output 7(fvec4)

-              27:             TypePointer Input 6(float)

-              30:             TypePointer Output 6(float)

-         4(main):           2 Function None 3

-               5:             Label

-              23:     22(ptr) AccessChain 20(gl_in) 21 15

-              24:    7(fvec4) Load 23

-              26:     25(ptr) AccessChain 13 15

-                              Store 26 24

-              28:     27(ptr) AccessChain 20(gl_in) 21 21 15

-              29:    6(float) Load 28

-              31:     30(ptr) AccessChain 13 21 15

-                              Store 31 29

-                              EmitVertex

-                              EndPrimitive

-                              Return

-                              FunctionEnd

+spv.330.geom
+
+Linked geometry stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 32
+
+                              Capability Geometry
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Geometry 4  "main" 20 13
+                              ExecutionMode 4 Triangles
+                              ExecutionMode 4 Invocations 0
+                              ExecutionMode 4 OutputTriangleStrip
+                              ExecutionMode 4 OutputVertices 3
+                              Source GLSL 330
+                              SourceExtension  "GL_ARB_separate_shader_objects"
+                              Name 4  "main"
+                              Name 11  "gl_PerVertex"
+                              MemberName 11(gl_PerVertex) 0  "gl_Position"
+                              MemberName 11(gl_PerVertex) 1  "gl_ClipDistance"
+                              Name 13  ""
+                              Name 16  "gl_PerVertex"
+                              MemberName 16(gl_PerVertex) 0  "gl_Position"
+                              MemberName 16(gl_PerVertex) 1  "gl_ClipDistance"
+                              Name 20  "gl_in"
+                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance
+                              Decorate 11(gl_PerVertex) Block
+                              Decorate 11(gl_PerVertex) Stream 0
+                              Decorate 13 Stream 0
+                              MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance
+                              Decorate 16(gl_PerVertex) Block
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeInt 32 0
+               9:      8(int) Constant 1
+              10:             TypeArray 6(float) 9
+11(gl_PerVertex):             TypeStruct 7(fvec4) 10
+              12:             TypePointer Output 11(gl_PerVertex)
+              13:     12(ptr) Variable Output
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+16(gl_PerVertex):             TypeStruct 7(fvec4) 10
+              17:      8(int) Constant 3
+              18:             TypeArray 16(gl_PerVertex) 17
+              19:             TypePointer Input 18
+       20(gl_in):     19(ptr) Variable Input
+              21:     14(int) Constant 1
+              22:             TypePointer Input 7(fvec4)
+              25:             TypePointer Output 7(fvec4)
+              27:             TypePointer Input 6(float)
+              30:             TypePointer Output 6(float)
+         4(main):           2 Function None 3
+               5:             Label
+              23:     22(ptr) AccessChain 20(gl_in) 21 15
+              24:    7(fvec4) Load 23
+              26:     25(ptr) AccessChain 13 15
+                              Store 26 24
+              28:     27(ptr) AccessChain 20(gl_in) 21 21 15
+              29:    6(float) Load 28
+              31:     30(ptr) AccessChain 13 21 15
+                              Store 31 29
+                              EmitVertex
+                              EndPrimitive
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index 86f8ba3..ffd1299 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -1,174 +1,174 @@
-spv.400.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 125

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 50 44 11 96 69 119 56

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 400

-                              SourceExtension  "GL_ARB_separate_shader_objects"

-                              Name 4  "main"

-                              Name 6  "foo23("

-                              Name 11  "outp"

-                              Name 15  "u2drs"

-                              Name 36  "v"

-                              Name 42  "arrayedSampler"

-                              Name 44  "i"

-                              Name 50  "c2D"

-                              Name 56  "gl_ClipDistance"

-                              Name 69  "uoutp"

-                              Name 73  "samp2dr"

-                              Name 96  "ioutp"

-                              Name 100  "isamp2DA"

-                              Name 117  "gl_FragCoord"

-                              Name 119  "vl2"

-                              Decorate 44(i) Flat

-                              Decorate 56(gl_ClipDistance) BuiltIn ClipDistance

-                              Decorate 117(gl_FragCoord) BuiltIn FragCoord

-                              Decorate 119(vl2) Location 6

-               2:             TypeVoid

-               3:             TypeFunction 2

-               8:             TypeFloat 32

-               9:             TypeVector 8(float) 4

-              10:             TypePointer Output 9(fvec4)

-        11(outp):     10(ptr) Variable Output

-              12:             TypeImage 8(float) Rect depth sampled format:Unknown

-              13:             TypeSampledImage 12

-              14:             TypePointer UniformConstant 13

-       15(u2drs):     14(ptr) Variable UniformConstant

-              18:             TypeVector 8(float) 2

-              19:    8(float) Constant 0

-              20:   18(fvec2) ConstantComposite 19 19

-              21:             TypeInt 32 1

-              22:             TypeVector 21(int) 2

-              23:     21(int) Constant 3

-              24:     21(int) Constant 4

-              25:   22(ivec2) ConstantComposite 23 24

-              28:             TypeInt 32 0

-              29:     28(int) Constant 0

-              30:             TypePointer Output 8(float)

-              35:             TypePointer Function 9(fvec4)

-              37:             TypeImage 8(float) 2D sampled format:Unknown

-              38:             TypeSampledImage 37

-              39:     28(int) Constant 5

-              40:             TypeArray 38 39

-              41:             TypePointer UniformConstant 40

-42(arrayedSampler):     41(ptr) Variable UniformConstant

-              43:             TypePointer Input 21(int)

-           44(i):     43(ptr) Variable Input

-              46:             TypePointer UniformConstant 38

-              49:             TypePointer Input 18(fvec2)

-         50(c2D):     49(ptr) Variable Input

-              53:     28(int) Constant 2

-              54:             TypeArray 8(float) 53

-              55:             TypePointer Input 54

-56(gl_ClipDistance):     55(ptr) Variable Input

-              57:     21(int) Constant 1

-              58:             TypePointer Input 8(float)

-              62:             TypeVector 8(float) 3

-              67:             TypeVector 28(int) 4

-              68:             TypePointer Output 67(ivec4)

-       69(uoutp):     68(ptr) Variable Output

-              70:             TypeImage 28(int) Rect sampled format:Unknown

-              71:             TypeSampledImage 70

-              72:             TypePointer UniformConstant 71

-     73(samp2dr):     72(ptr) Variable UniformConstant

-              76:     28(int) Constant 4

-              77:             TypeArray 22(ivec2) 76

-              78:     21(int) Constant 2

-              79:   22(ivec2) ConstantComposite 57 78

-              80:     21(int) Constant 15

-              81:     21(int) Constant 16

-              82:   22(ivec2) ConstantComposite 80 81

-              83:     21(int) Constant 4294967294

-              84:     21(int) Constant 0

-              85:   22(ivec2) ConstantComposite 83 84

-              86:          77 ConstantComposite 79 25 82 85

-              94:             TypeVector 21(int) 4

-              95:             TypePointer Output 94(ivec4)

-       96(ioutp):     95(ptr) Variable Output

-              97:             TypeImage 21(int) 2D array sampled format:Unknown

-              98:             TypeSampledImage 97

-              99:             TypePointer UniformConstant 98

-   100(isamp2DA):     99(ptr) Variable UniformConstant

-             102:    8(float) Constant 1036831949

-             103:   62(fvec3) ConstantComposite 102 102 102

-             104:   22(ivec2) ConstantComposite 57 57

-             116:             TypePointer Input 9(fvec4)

-117(gl_FragCoord):    116(ptr) Variable Input

-        119(vl2):    116(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-           36(v):     35(ptr) Variable Function

-              45:     21(int) Load 44(i)

-              47:     46(ptr) AccessChain 42(arrayedSampler) 45

-              48:          38 Load 47

-              51:   18(fvec2) Load 50(c2D)

-              52:    9(fvec4) ImageSampleImplicitLod 48 51

-                              Store 36(v) 52

-              59:     58(ptr) AccessChain 56(gl_ClipDistance) 57

-              60:    8(float) Load 59

-              61:     30(ptr) AccessChain 11(outp) 29

-                              Store 61 60

-              63:    9(fvec4) Load 36(v)

-              64:   62(fvec3) VectorShuffle 63 63 1 2 3

-              65:    9(fvec4) Load 11(outp)

-              66:    9(fvec4) VectorShuffle 65 64 0 4 5 6

-                              Store 11(outp) 66

-              74:          71 Load 73(samp2dr)

-              75:   18(fvec2) Load 50(c2D)

-              87:   67(ivec4) ImageGather 74 75 78 ConstOffsets 86

-                              Store 69(uoutp) 87

-              88:     46(ptr) AccessChain 42(arrayedSampler) 84

-              89:          38 Load 88

-              90:   18(fvec2) Load 50(c2D)

-              91:    9(fvec4) ImageGather 89 90 84

-              92:    9(fvec4) Load 11(outp)

-              93:    9(fvec4) FAdd 92 91

-                              Store 11(outp) 93

-             101:          98 Load 100(isamp2DA)

-             105:   94(ivec4) ImageGather 101 103 23 ConstOffset 104

-                              Store 96(ioutp) 105

-             106:          98 Load 100(isamp2DA)

-             107:   94(ivec4) ImageGather 106 103 23 ConstOffset 104

-             108:   94(ivec4) Load 96(ioutp)

-             109:   94(ivec4) IAdd 108 107

-                              Store 96(ioutp) 109

-             110:          98 Load 100(isamp2DA)

-             111:     21(int) Load 44(i)

-             112:   22(ivec2) CompositeConstruct 111 111

-             113:   94(ivec4) ImageGather 110 103 84 Offset 112

-             114:   94(ivec4) Load 96(ioutp)

-             115:   94(ivec4) IAdd 114 113

-                              Store 96(ioutp) 115

-             118:    9(fvec4) Load 117(gl_FragCoord)

-             120:    9(fvec4) Load 119(vl2)

-             121:    9(fvec4) FAdd 118 120

-             122:    9(fvec4) Load 11(outp)

-             123:    9(fvec4) FAdd 122 121

-                              Store 11(outp) 123

-             124:           2 FunctionCall 6(foo23()

-                              Return

-                              FunctionEnd

-       6(foo23():           2 Function None 3

-               7:             Label

-              16:          13 Load 15(u2drs)

-              17:    9(fvec4) Load 11(outp)

-              26:    8(float) CompositeExtract 17 3

-              27:    8(float) ImageSampleProjDrefExplicitLod 16 17 26 Grad ConstOffset 20 20 25

-              31:     30(ptr) AccessChain 11(outp) 29

-              32:    8(float) Load 31

-              33:    8(float) FAdd 32 27

-              34:     30(ptr) AccessChain 11(outp) 29

-                              Store 34 33

-                              Return

-                              FunctionEnd

+spv.400.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 125
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 50 44 11 96 69 119 56
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 400
+                              SourceExtension  "GL_ARB_separate_shader_objects"
+                              Name 4  "main"
+                              Name 6  "foo23("
+                              Name 11  "outp"
+                              Name 15  "u2drs"
+                              Name 36  "v"
+                              Name 42  "arrayedSampler"
+                              Name 44  "i"
+                              Name 50  "c2D"
+                              Name 56  "gl_ClipDistance"
+                              Name 69  "uoutp"
+                              Name 73  "samp2dr"
+                              Name 96  "ioutp"
+                              Name 100  "isamp2DA"
+                              Name 117  "gl_FragCoord"
+                              Name 119  "vl2"
+                              Decorate 44(i) Flat
+                              Decorate 56(gl_ClipDistance) BuiltIn ClipDistance
+                              Decorate 117(gl_FragCoord) BuiltIn FragCoord
+                              Decorate 119(vl2) Location 6
+               2:             TypeVoid
+               3:             TypeFunction 2
+               8:             TypeFloat 32
+               9:             TypeVector 8(float) 4
+              10:             TypePointer Output 9(fvec4)
+        11(outp):     10(ptr) Variable Output
+              12:             TypeImage 8(float) Rect depth sampled format:Unknown
+              13:             TypeSampledImage 12
+              14:             TypePointer UniformConstant 13
+       15(u2drs):     14(ptr) Variable UniformConstant
+              18:             TypeVector 8(float) 2
+              19:    8(float) Constant 0
+              20:   18(fvec2) ConstantComposite 19 19
+              21:             TypeInt 32 1
+              22:             TypeVector 21(int) 2
+              23:     21(int) Constant 3
+              24:     21(int) Constant 4
+              25:   22(ivec2) ConstantComposite 23 24
+              28:             TypeInt 32 0
+              29:     28(int) Constant 0
+              30:             TypePointer Output 8(float)
+              35:             TypePointer Function 9(fvec4)
+              37:             TypeImage 8(float) 2D sampled format:Unknown
+              38:             TypeSampledImage 37
+              39:     28(int) Constant 5
+              40:             TypeArray 38 39
+              41:             TypePointer UniformConstant 40
+42(arrayedSampler):     41(ptr) Variable UniformConstant
+              43:             TypePointer Input 21(int)
+           44(i):     43(ptr) Variable Input
+              46:             TypePointer UniformConstant 38
+              49:             TypePointer Input 18(fvec2)
+         50(c2D):     49(ptr) Variable Input
+              53:     28(int) Constant 2
+              54:             TypeArray 8(float) 53
+              55:             TypePointer Input 54
+56(gl_ClipDistance):     55(ptr) Variable Input
+              57:     21(int) Constant 1
+              58:             TypePointer Input 8(float)
+              62:             TypeVector 8(float) 3
+              67:             TypeVector 28(int) 4
+              68:             TypePointer Output 67(ivec4)
+       69(uoutp):     68(ptr) Variable Output
+              70:             TypeImage 28(int) Rect sampled format:Unknown
+              71:             TypeSampledImage 70
+              72:             TypePointer UniformConstant 71
+     73(samp2dr):     72(ptr) Variable UniformConstant
+              76:     28(int) Constant 4
+              77:             TypeArray 22(ivec2) 76
+              78:     21(int) Constant 2
+              79:   22(ivec2) ConstantComposite 57 78
+              80:     21(int) Constant 15
+              81:     21(int) Constant 16
+              82:   22(ivec2) ConstantComposite 80 81
+              83:     21(int) Constant 4294967294
+              84:     21(int) Constant 0
+              85:   22(ivec2) ConstantComposite 83 84
+              86:          77 ConstantComposite 79 25 82 85
+              94:             TypeVector 21(int) 4
+              95:             TypePointer Output 94(ivec4)
+       96(ioutp):     95(ptr) Variable Output
+              97:             TypeImage 21(int) 2D array sampled format:Unknown
+              98:             TypeSampledImage 97
+              99:             TypePointer UniformConstant 98
+   100(isamp2DA):     99(ptr) Variable UniformConstant
+             102:    8(float) Constant 1036831949
+             103:   62(fvec3) ConstantComposite 102 102 102
+             104:   22(ivec2) ConstantComposite 57 57
+             116:             TypePointer Input 9(fvec4)
+117(gl_FragCoord):    116(ptr) Variable Input
+        119(vl2):    116(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+           36(v):     35(ptr) Variable Function
+              45:     21(int) Load 44(i)
+              47:     46(ptr) AccessChain 42(arrayedSampler) 45
+              48:          38 Load 47
+              51:   18(fvec2) Load 50(c2D)
+              52:    9(fvec4) ImageSampleImplicitLod 48 51
+                              Store 36(v) 52
+              59:     58(ptr) AccessChain 56(gl_ClipDistance) 57
+              60:    8(float) Load 59
+              61:     30(ptr) AccessChain 11(outp) 29
+                              Store 61 60
+              63:    9(fvec4) Load 36(v)
+              64:   62(fvec3) VectorShuffle 63 63 1 2 3
+              65:    9(fvec4) Load 11(outp)
+              66:    9(fvec4) VectorShuffle 65 64 0 4 5 6
+                              Store 11(outp) 66
+              74:          71 Load 73(samp2dr)
+              75:   18(fvec2) Load 50(c2D)
+              87:   67(ivec4) ImageGather 74 75 78 ConstOffsets 86
+                              Store 69(uoutp) 87
+              88:     46(ptr) AccessChain 42(arrayedSampler) 84
+              89:          38 Load 88
+              90:   18(fvec2) Load 50(c2D)
+              91:    9(fvec4) ImageGather 89 90 84
+              92:    9(fvec4) Load 11(outp)
+              93:    9(fvec4) FAdd 92 91
+                              Store 11(outp) 93
+             101:          98 Load 100(isamp2DA)
+             105:   94(ivec4) ImageGather 101 103 23 ConstOffset 104
+                              Store 96(ioutp) 105
+             106:          98 Load 100(isamp2DA)
+             107:   94(ivec4) ImageGather 106 103 23 ConstOffset 104
+             108:   94(ivec4) Load 96(ioutp)
+             109:   94(ivec4) IAdd 108 107
+                              Store 96(ioutp) 109
+             110:          98 Load 100(isamp2DA)
+             111:     21(int) Load 44(i)
+             112:   22(ivec2) CompositeConstruct 111 111
+             113:   94(ivec4) ImageGather 110 103 84 Offset 112
+             114:   94(ivec4) Load 96(ioutp)
+             115:   94(ivec4) IAdd 114 113
+                              Store 96(ioutp) 115
+             118:    9(fvec4) Load 117(gl_FragCoord)
+             120:    9(fvec4) Load 119(vl2)
+             121:    9(fvec4) FAdd 118 120
+             122:    9(fvec4) Load 11(outp)
+             123:    9(fvec4) FAdd 122 121
+                              Store 11(outp) 123
+             124:           2 FunctionCall 6(foo23()
+                              Return
+                              FunctionEnd
+       6(foo23():           2 Function None 3
+               7:             Label
+              16:          13 Load 15(u2drs)
+              17:    9(fvec4) Load 11(outp)
+              26:    8(float) CompositeExtract 17 3
+              27:    8(float) ImageSampleProjDrefExplicitLod 16 17 26 Grad ConstOffset 20 20 25
+              31:     30(ptr) AccessChain 11(outp) 29
+              32:    8(float) Load 31
+              33:    8(float) FAdd 32 27
+              34:     30(ptr) AccessChain 11(outp) 29
+                              Store 34 33
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index dee214d..4ecf096 100755
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -1,176 +1,176 @@
-spv.400.tesc

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked tessellation control stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 93

-

-                              Capability Tessellation

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint TessellationControl 4  "main" 52 79 83 84 87 88 91 92

-                              ExecutionMode 4 OutputVertices 4

-                              Source GLSL 400

-                              SourceExtension  "GL_ARB_separate_shader_objects"

-                              Name 4  "main"

-                              Name 12  "a"

-                              Name 17  "p"

-                              Name 19  "gl_PerVertex"

-                              MemberName 19(gl_PerVertex) 0  "gl_Position"

-                              MemberName 19(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 19(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 23  "gl_in"

-                              Name 30  "ps"

-                              Name 34  "cd"

-                              Name 38  "pvi"

-                              Name 40  "gl_PatchVerticesIn"

-                              Name 42  "pid"

-                              Name 43  "gl_PrimitiveID"

-                              Name 45  "iid"

-                              Name 46  "gl_InvocationID"

-                              Name 48  "gl_PerVertex"

-                              MemberName 48(gl_PerVertex) 0  "gl_Position"

-                              MemberName 48(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 48(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 52  "gl_out"

-                              Name 66  "gl_TessLevelOuter"

-                              Name 73  "gl_TessLevelInner"

-                              Name 78  "outa"

-                              Name 79  "patchOut"

-                              Name 83  "inb"

-                              Name 84  "ind"

-                              Name 87  "ivla"

-                              Name 88  "ivlb"

-                              Name 91  "ovla"

-                              Name 92  "ovlb"

-                              MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 19(gl_PerVertex) Block

-                              Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices

-                              Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId

-                              Decorate 46(gl_InvocationID) BuiltIn InvocationId

-                              MemberDecorate 48(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 48(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 48(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 48(gl_PerVertex) Block

-                              Decorate 66(gl_TessLevelOuter) Patch

-                              Decorate 66(gl_TessLevelOuter) BuiltIn TessLevelOuter

-                              Decorate 73(gl_TessLevelInner) Patch

-                              Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner

-                              Decorate 79(patchOut) Patch

-                              Decorate 87(ivla) Location 3

-                              Decorate 88(ivlb) Location 4

-                              Decorate 91(ovla) Location 3

-                              Decorate 92(ovlb) Location 4

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 0

-               7:      6(int) Constant 1

-               8:      6(int) Constant 1023

-               9:      6(int) Constant 0

-              10:             TypeInt 32 1

-              11:             TypePointer Function 10(int)

-              13:     10(int) Constant 5392

-              14:             TypeFloat 32

-              15:             TypeVector 14(float) 4

-              16:             TypePointer Function 15(fvec4)

-              18:             TypeArray 14(float) 7

-19(gl_PerVertex):             TypeStruct 15(fvec4) 14(float) 18

-              20:      6(int) Constant 32

-              21:             TypeArray 19(gl_PerVertex) 20

-              22:             TypePointer Input 21

-       23(gl_in):     22(ptr) Variable Input

-              24:     10(int) Constant 1

-              25:     10(int) Constant 0

-              26:             TypePointer Input 15(fvec4)

-              29:             TypePointer Function 14(float)

-              31:             TypePointer Input 14(float)

-              35:     10(int) Constant 2

-              39:             TypePointer Input 10(int)

-40(gl_PatchVerticesIn):     39(ptr) Variable Input

-43(gl_PrimitiveID):     39(ptr) Variable Input

-46(gl_InvocationID):     39(ptr) Variable Input

-48(gl_PerVertex):             TypeStruct 15(fvec4) 14(float) 18

-              49:      6(int) Constant 4

-              50:             TypeArray 48(gl_PerVertex) 49

-              51:             TypePointer Output 50

-      52(gl_out):     51(ptr) Variable Output

-              55:             TypePointer Output 15(fvec4)

-              59:             TypePointer Output 14(float)

-              64:             TypeArray 14(float) 49

-              65:             TypePointer Output 64

-66(gl_TessLevelOuter):     65(ptr) Variable Output

-              67:     10(int) Constant 3

-              68:   14(float) Constant 1078774989

-              70:      6(int) Constant 2

-              71:             TypeArray 14(float) 70

-              72:             TypePointer Output 71

-73(gl_TessLevelInner):     72(ptr) Variable Output

-              74:   14(float) Constant 1067869798

-              76:             TypeArray 10(int) 49

-              77:             TypePointer Private 76

-        78(outa):     77(ptr) Variable Private

-    79(patchOut):     55(ptr) Variable Output

-              80:             TypeVector 14(float) 2

-              81:             TypeArray 80(fvec2) 20

-              82:             TypePointer Input 81

-         83(inb):     82(ptr) Variable Input

-         84(ind):     82(ptr) Variable Input

-              85:             TypeArray 15(fvec4) 20

-              86:             TypePointer Input 85

-        87(ivla):     86(ptr) Variable Input

-        88(ivlb):     86(ptr) Variable Input

-              89:             TypeArray 15(fvec4) 49

-              90:             TypePointer Output 89

-        91(ovla):     90(ptr) Variable Output

-        92(ovlb):     90(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-           12(a):     11(ptr) Variable Function

-           17(p):     16(ptr) Variable Function

-          30(ps):     29(ptr) Variable Function

-          34(cd):     29(ptr) Variable Function

-         38(pvi):     11(ptr) Variable Function

-         42(pid):     11(ptr) Variable Function

-         45(iid):     11(ptr) Variable Function

-                              MemoryBarrier 7 8

-                              ControlBarrier 7 7 9

-                              Store 12(a) 13

-              27:     26(ptr) AccessChain 23(gl_in) 24 25

-              28:   15(fvec4) Load 27

-                              Store 17(p) 28

-              32:     31(ptr) AccessChain 23(gl_in) 24 24

-              33:   14(float) Load 32

-                              Store 30(ps) 33

-              36:     31(ptr) AccessChain 23(gl_in) 24 35 35

-              37:   14(float) Load 36

-                              Store 34(cd) 37

-              41:     10(int) Load 40(gl_PatchVerticesIn)

-                              Store 38(pvi) 41

-              44:     10(int) Load 43(gl_PrimitiveID)

-                              Store 42(pid) 44

-              47:     10(int) Load 46(gl_InvocationID)

-                              Store 45(iid) 47

-              53:     10(int) Load 46(gl_InvocationID)

-              54:   15(fvec4) Load 17(p)

-              56:     55(ptr) AccessChain 52(gl_out) 53 25

-                              Store 56 54

-              57:     10(int) Load 46(gl_InvocationID)

-              58:   14(float) Load 30(ps)

-              60:     59(ptr) AccessChain 52(gl_out) 57 24

-                              Store 60 58

-              61:     10(int) Load 46(gl_InvocationID)

-              62:   14(float) Load 34(cd)

-              63:     59(ptr) AccessChain 52(gl_out) 61 35 24

-                              Store 63 62

-              69:     59(ptr) AccessChain 66(gl_TessLevelOuter) 67

-                              Store 69 68

-              75:     59(ptr) AccessChain 73(gl_TessLevelInner) 24

-                              Store 75 74

-                              Return

-                              FunctionEnd

+spv.400.tesc
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked tessellation control stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 93
+
+                              Capability Tessellation
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint TessellationControl 4  "main" 52 79 83 84 87 88 91 92
+                              ExecutionMode 4 OutputVertices 4
+                              Source GLSL 400
+                              SourceExtension  "GL_ARB_separate_shader_objects"
+                              Name 4  "main"
+                              Name 12  "a"
+                              Name 17  "p"
+                              Name 19  "gl_PerVertex"
+                              MemberName 19(gl_PerVertex) 0  "gl_Position"
+                              MemberName 19(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 19(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 23  "gl_in"
+                              Name 30  "ps"
+                              Name 34  "cd"
+                              Name 38  "pvi"
+                              Name 40  "gl_PatchVerticesIn"
+                              Name 42  "pid"
+                              Name 43  "gl_PrimitiveID"
+                              Name 45  "iid"
+                              Name 46  "gl_InvocationID"
+                              Name 48  "gl_PerVertex"
+                              MemberName 48(gl_PerVertex) 0  "gl_Position"
+                              MemberName 48(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 48(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 52  "gl_out"
+                              Name 66  "gl_TessLevelOuter"
+                              Name 73  "gl_TessLevelInner"
+                              Name 78  "outa"
+                              Name 79  "patchOut"
+                              Name 83  "inb"
+                              Name 84  "ind"
+                              Name 87  "ivla"
+                              Name 88  "ivlb"
+                              Name 91  "ovla"
+                              Name 92  "ovlb"
+                              MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 19(gl_PerVertex) Block
+                              Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices
+                              Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 46(gl_InvocationID) BuiltIn InvocationId
+                              MemberDecorate 48(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 48(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 48(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 48(gl_PerVertex) Block
+                              Decorate 66(gl_TessLevelOuter) Patch
+                              Decorate 66(gl_TessLevelOuter) BuiltIn TessLevelOuter
+                              Decorate 73(gl_TessLevelInner) Patch
+                              Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner
+                              Decorate 79(patchOut) Patch
+                              Decorate 87(ivla) Location 3
+                              Decorate 88(ivlb) Location 4
+                              Decorate 91(ovla) Location 3
+                              Decorate 92(ovlb) Location 4
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:      6(int) Constant 1
+               8:      6(int) Constant 1023
+               9:      6(int) Constant 0
+              10:             TypeInt 32 1
+              11:             TypePointer Function 10(int)
+              13:     10(int) Constant 5392
+              14:             TypeFloat 32
+              15:             TypeVector 14(float) 4
+              16:             TypePointer Function 15(fvec4)
+              18:             TypeArray 14(float) 7
+19(gl_PerVertex):             TypeStruct 15(fvec4) 14(float) 18
+              20:      6(int) Constant 32
+              21:             TypeArray 19(gl_PerVertex) 20
+              22:             TypePointer Input 21
+       23(gl_in):     22(ptr) Variable Input
+              24:     10(int) Constant 1
+              25:     10(int) Constant 0
+              26:             TypePointer Input 15(fvec4)
+              29:             TypePointer Function 14(float)
+              31:             TypePointer Input 14(float)
+              35:     10(int) Constant 2
+              39:             TypePointer Input 10(int)
+40(gl_PatchVerticesIn):     39(ptr) Variable Input
+43(gl_PrimitiveID):     39(ptr) Variable Input
+46(gl_InvocationID):     39(ptr) Variable Input
+48(gl_PerVertex):             TypeStruct 15(fvec4) 14(float) 18
+              49:      6(int) Constant 4
+              50:             TypeArray 48(gl_PerVertex) 49
+              51:             TypePointer Output 50
+      52(gl_out):     51(ptr) Variable Output
+              55:             TypePointer Output 15(fvec4)
+              59:             TypePointer Output 14(float)
+              64:             TypeArray 14(float) 49
+              65:             TypePointer Output 64
+66(gl_TessLevelOuter):     65(ptr) Variable Output
+              67:     10(int) Constant 3
+              68:   14(float) Constant 1078774989
+              70:      6(int) Constant 2
+              71:             TypeArray 14(float) 70
+              72:             TypePointer Output 71
+73(gl_TessLevelInner):     72(ptr) Variable Output
+              74:   14(float) Constant 1067869798
+              76:             TypeArray 10(int) 49
+              77:             TypePointer Private 76
+        78(outa):     77(ptr) Variable Private
+    79(patchOut):     55(ptr) Variable Output
+              80:             TypeVector 14(float) 2
+              81:             TypeArray 80(fvec2) 20
+              82:             TypePointer Input 81
+         83(inb):     82(ptr) Variable Input
+         84(ind):     82(ptr) Variable Input
+              85:             TypeArray 15(fvec4) 20
+              86:             TypePointer Input 85
+        87(ivla):     86(ptr) Variable Input
+        88(ivlb):     86(ptr) Variable Input
+              89:             TypeArray 15(fvec4) 49
+              90:             TypePointer Output 89
+        91(ovla):     90(ptr) Variable Output
+        92(ovlb):     90(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+           12(a):     11(ptr) Variable Function
+           17(p):     16(ptr) Variable Function
+          30(ps):     29(ptr) Variable Function
+          34(cd):     29(ptr) Variable Function
+         38(pvi):     11(ptr) Variable Function
+         42(pid):     11(ptr) Variable Function
+         45(iid):     11(ptr) Variable Function
+                              MemoryBarrier 7 8
+                              ControlBarrier 7 7 9
+                              Store 12(a) 13
+              27:     26(ptr) AccessChain 23(gl_in) 24 25
+              28:   15(fvec4) Load 27
+                              Store 17(p) 28
+              32:     31(ptr) AccessChain 23(gl_in) 24 24
+              33:   14(float) Load 32
+                              Store 30(ps) 33
+              36:     31(ptr) AccessChain 23(gl_in) 24 35 35
+              37:   14(float) Load 36
+                              Store 34(cd) 37
+              41:     10(int) Load 40(gl_PatchVerticesIn)
+                              Store 38(pvi) 41
+              44:     10(int) Load 43(gl_PrimitiveID)
+                              Store 42(pid) 44
+              47:     10(int) Load 46(gl_InvocationID)
+                              Store 45(iid) 47
+              53:     10(int) Load 46(gl_InvocationID)
+              54:   15(fvec4) Load 17(p)
+              56:     55(ptr) AccessChain 52(gl_out) 53 25
+                              Store 56 54
+              57:     10(int) Load 46(gl_InvocationID)
+              58:   14(float) Load 30(ps)
+              60:     59(ptr) AccessChain 52(gl_out) 57 24
+                              Store 60 58
+              61:     10(int) Load 46(gl_InvocationID)
+              62:   14(float) Load 34(cd)
+              63:     59(ptr) AccessChain 52(gl_out) 61 35 24
+                              Store 63 62
+              69:     59(ptr) AccessChain 66(gl_TessLevelOuter) 67
+                              Store 69 68
+              75:     59(ptr) AccessChain 73(gl_TessLevelInner) 24
+                              Store 75 74
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out
index 00c5aba..e72e9e2 100755
--- a/Test/baseResults/spv.400.tese.out
+++ b/Test/baseResults/spv.400.tese.out
@@ -1,189 +1,189 @@
-spv.400.tese

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked tessellation evaluation stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 98

-

-                              Capability Tessellation

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint TessellationEvaluation 4  "main" 77 68 81 82 86 90 93 94 97

-                              ExecutionMode 4 Triangles

-                              ExecutionMode 4 SpacingFractionalOdd

-                              ExecutionMode 4 VertexOrderCcw

-                              ExecutionMode 4 PointMode

-                              Source GLSL 400

-                              SourceExtension  "GL_ARB_separate_shader_objects"

-                              Name 4  "main"

-                              Name 8  "a"

-                              Name 13  "p"

-                              Name 17  "gl_PerVertex"

-                              MemberName 17(gl_PerVertex) 0  "gl_Position"

-                              MemberName 17(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 17(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 21  "gl_in"

-                              Name 28  "ps"

-                              Name 32  "cd"

-                              Name 36  "pvi"

-                              Name 38  "gl_PatchVerticesIn"

-                              Name 40  "pid"

-                              Name 41  "gl_PrimitiveID"

-                              Name 45  "tc"

-                              Name 47  "gl_TessCoord"

-                              Name 49  "tlo"

-                              Name 53  "gl_TessLevelOuter"

-                              Name 57  "tli"

-                              Name 61  "gl_TessLevelInner"

-                              Name 66  "gl_PerVertex"

-                              MemberName 66(gl_PerVertex) 0  "gl_Position"

-                              MemberName 66(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 66(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 68  ""

-                              Name 77  "patchIn"

-                              Name 81  "inb"

-                              Name 82  "ind"

-                              Name 83  "testblb"

-                              MemberName 83(testblb) 0  "f"

-                              Name 86  "blb"

-                              Name 87  "testbld"

-                              MemberName 87(testbld) 0  "f"

-                              Name 90  "bld"

-                              Name 93  "ivla"

-                              Name 94  "ivlb"

-                              Name 97  "ovla"

-                              MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 17(gl_PerVertex) Block

-                              Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices

-                              Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId

-                              Decorate 47(gl_TessCoord) BuiltIn TessCoord

-                              Decorate 53(gl_TessLevelOuter) Patch

-                              Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter

-                              Decorate 61(gl_TessLevelInner) Patch

-                              Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner

-                              MemberDecorate 66(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 66(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 66(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 66(gl_PerVertex) Block

-                              Decorate 77(patchIn) Patch

-                              Decorate 83(testblb) Block

-                              Decorate 87(testbld) Block

-                              Decorate 93(ivla) Location 23

-                              Decorate 94(ivlb) Location 24

-                              Decorate 97(ovla) Location 23

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 1512

-              10:             TypeFloat 32

-              11:             TypeVector 10(float) 4

-              12:             TypePointer Function 11(fvec4)

-              14:             TypeInt 32 0

-              15:     14(int) Constant 1

-              16:             TypeArray 10(float) 15

-17(gl_PerVertex):             TypeStruct 11(fvec4) 10(float) 16

-              18:     14(int) Constant 32

-              19:             TypeArray 17(gl_PerVertex) 18

-              20:             TypePointer Input 19

-       21(gl_in):     20(ptr) Variable Input

-              22:      6(int) Constant 1

-              23:      6(int) Constant 0

-              24:             TypePointer Input 11(fvec4)

-              27:             TypePointer Function 10(float)

-              29:             TypePointer Input 10(float)

-              33:      6(int) Constant 2

-              37:             TypePointer Input 6(int)

-38(gl_PatchVerticesIn):     37(ptr) Variable Input

-41(gl_PrimitiveID):     37(ptr) Variable Input

-              43:             TypeVector 10(float) 3

-              44:             TypePointer Function 43(fvec3)

-              46:             TypePointer Input 43(fvec3)

-47(gl_TessCoord):     46(ptr) Variable Input

-              50:     14(int) Constant 4

-              51:             TypeArray 10(float) 50

-              52:             TypePointer Input 51

-53(gl_TessLevelOuter):     52(ptr) Variable Input

-              54:      6(int) Constant 3

-              58:     14(int) Constant 2

-              59:             TypeArray 10(float) 58

-              60:             TypePointer Input 59

-61(gl_TessLevelInner):     60(ptr) Variable Input

-              64:     14(int) Constant 3

-              65:             TypeArray 10(float) 64

-66(gl_PerVertex):             TypeStruct 11(fvec4) 10(float) 65

-              67:             TypePointer Output 66(gl_PerVertex)

-              68:     67(ptr) Variable Output

-              70:             TypePointer Output 11(fvec4)

-              73:             TypePointer Output 10(float)

-     77(patchIn):     24(ptr) Variable Input

-              78:             TypeVector 10(float) 2

-              79:             TypeArray 78(fvec2) 18

-              80:             TypePointer Input 79

-         81(inb):     80(ptr) Variable Input

-         82(ind):     80(ptr) Variable Input

-     83(testblb):             TypeStruct 6(int)

-              84:             TypeArray 83(testblb) 18

-              85:             TypePointer Input 84

-         86(blb):     85(ptr) Variable Input

-     87(testbld):             TypeStruct 6(int)

-              88:             TypeArray 87(testbld) 18

-              89:             TypePointer Input 88

-         90(bld):     89(ptr) Variable Input

-              91:             TypeArray 11(fvec4) 18

-              92:             TypePointer Input 91

-        93(ivla):     92(ptr) Variable Input

-        94(ivlb):     92(ptr) Variable Input

-              95:             TypeArray 11(fvec4) 58

-              96:             TypePointer Output 95

-        97(ovla):     96(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-            8(a):      7(ptr) Variable Function

-           13(p):     12(ptr) Variable Function

-          28(ps):     27(ptr) Variable Function

-          32(cd):     27(ptr) Variable Function

-         36(pvi):      7(ptr) Variable Function

-         40(pid):      7(ptr) Variable Function

-          45(tc):     44(ptr) Variable Function

-         49(tlo):     27(ptr) Variable Function

-         57(tli):     27(ptr) Variable Function

-                              Store 8(a) 9

-              25:     24(ptr) AccessChain 21(gl_in) 22 23

-              26:   11(fvec4) Load 25

-                              Store 13(p) 26

-              30:     29(ptr) AccessChain 21(gl_in) 22 22

-              31:   10(float) Load 30

-                              Store 28(ps) 31

-              34:     29(ptr) AccessChain 21(gl_in) 22 33 33

-              35:   10(float) Load 34

-                              Store 32(cd) 35

-              39:      6(int) Load 38(gl_PatchVerticesIn)

-                              Store 36(pvi) 39

-              42:      6(int) Load 41(gl_PrimitiveID)

-                              Store 40(pid) 42

-              48:   43(fvec3) Load 47(gl_TessCoord)

-                              Store 45(tc) 48

-              55:     29(ptr) AccessChain 53(gl_TessLevelOuter) 54

-              56:   10(float) Load 55

-                              Store 49(tlo) 56

-              62:     29(ptr) AccessChain 61(gl_TessLevelInner) 22

-              63:   10(float) Load 62

-                              Store 57(tli) 63

-              69:   11(fvec4) Load 13(p)

-              71:     70(ptr) AccessChain 68 23

-                              Store 71 69

-              72:   10(float) Load 28(ps)

-              74:     73(ptr) AccessChain 68 22

-                              Store 74 72

-              75:   10(float) Load 32(cd)

-              76:     73(ptr) AccessChain 68 33 33

-                              Store 76 75

-                              Return

-                              FunctionEnd

+spv.400.tese
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked tessellation evaluation stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 98
+
+                              Capability Tessellation
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint TessellationEvaluation 4  "main" 77 68 81 82 86 90 93 94 97
+                              ExecutionMode 4 Triangles
+                              ExecutionMode 4 SpacingFractionalOdd
+                              ExecutionMode 4 VertexOrderCcw
+                              ExecutionMode 4 PointMode
+                              Source GLSL 400
+                              SourceExtension  "GL_ARB_separate_shader_objects"
+                              Name 4  "main"
+                              Name 8  "a"
+                              Name 13  "p"
+                              Name 17  "gl_PerVertex"
+                              MemberName 17(gl_PerVertex) 0  "gl_Position"
+                              MemberName 17(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 17(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 21  "gl_in"
+                              Name 28  "ps"
+                              Name 32  "cd"
+                              Name 36  "pvi"
+                              Name 38  "gl_PatchVerticesIn"
+                              Name 40  "pid"
+                              Name 41  "gl_PrimitiveID"
+                              Name 45  "tc"
+                              Name 47  "gl_TessCoord"
+                              Name 49  "tlo"
+                              Name 53  "gl_TessLevelOuter"
+                              Name 57  "tli"
+                              Name 61  "gl_TessLevelInner"
+                              Name 66  "gl_PerVertex"
+                              MemberName 66(gl_PerVertex) 0  "gl_Position"
+                              MemberName 66(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 66(gl_PerVertex) 2  "gl_ClipDistance"
+                              Name 68  ""
+                              Name 77  "patchIn"
+                              Name 81  "inb"
+                              Name 82  "ind"
+                              Name 83  "testblb"
+                              MemberName 83(testblb) 0  "f"
+                              Name 86  "blb"
+                              Name 87  "testbld"
+                              MemberName 87(testbld) 0  "f"
+                              Name 90  "bld"
+                              Name 93  "ivla"
+                              Name 94  "ivlb"
+                              Name 97  "ovla"
+                              MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 17(gl_PerVertex) Block
+                              Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices
+                              Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 47(gl_TessCoord) BuiltIn TessCoord
+                              Decorate 53(gl_TessLevelOuter) Patch
+                              Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter
+                              Decorate 61(gl_TessLevelInner) Patch
+                              Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner
+                              MemberDecorate 66(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 66(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 66(gl_PerVertex) 2 BuiltIn ClipDistance
+                              Decorate 66(gl_PerVertex) Block
+                              Decorate 77(patchIn) Patch
+                              Decorate 83(testblb) Block
+                              Decorate 87(testbld) Block
+                              Decorate 93(ivla) Location 23
+                              Decorate 94(ivlb) Location 24
+                              Decorate 97(ovla) Location 23
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 1512
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Function 11(fvec4)
+              14:             TypeInt 32 0
+              15:     14(int) Constant 1
+              16:             TypeArray 10(float) 15
+17(gl_PerVertex):             TypeStruct 11(fvec4) 10(float) 16
+              18:     14(int) Constant 32
+              19:             TypeArray 17(gl_PerVertex) 18
+              20:             TypePointer Input 19
+       21(gl_in):     20(ptr) Variable Input
+              22:      6(int) Constant 1
+              23:      6(int) Constant 0
+              24:             TypePointer Input 11(fvec4)
+              27:             TypePointer Function 10(float)
+              29:             TypePointer Input 10(float)
+              33:      6(int) Constant 2
+              37:             TypePointer Input 6(int)
+38(gl_PatchVerticesIn):     37(ptr) Variable Input
+41(gl_PrimitiveID):     37(ptr) Variable Input
+              43:             TypeVector 10(float) 3
+              44:             TypePointer Function 43(fvec3)
+              46:             TypePointer Input 43(fvec3)
+47(gl_TessCoord):     46(ptr) Variable Input
+              50:     14(int) Constant 4
+              51:             TypeArray 10(float) 50
+              52:             TypePointer Input 51
+53(gl_TessLevelOuter):     52(ptr) Variable Input
+              54:      6(int) Constant 3
+              58:     14(int) Constant 2
+              59:             TypeArray 10(float) 58
+              60:             TypePointer Input 59
+61(gl_TessLevelInner):     60(ptr) Variable Input
+              64:     14(int) Constant 3
+              65:             TypeArray 10(float) 64
+66(gl_PerVertex):             TypeStruct 11(fvec4) 10(float) 65
+              67:             TypePointer Output 66(gl_PerVertex)
+              68:     67(ptr) Variable Output
+              70:             TypePointer Output 11(fvec4)
+              73:             TypePointer Output 10(float)
+     77(patchIn):     24(ptr) Variable Input
+              78:             TypeVector 10(float) 2
+              79:             TypeArray 78(fvec2) 18
+              80:             TypePointer Input 79
+         81(inb):     80(ptr) Variable Input
+         82(ind):     80(ptr) Variable Input
+     83(testblb):             TypeStruct 6(int)
+              84:             TypeArray 83(testblb) 18
+              85:             TypePointer Input 84
+         86(blb):     85(ptr) Variable Input
+     87(testbld):             TypeStruct 6(int)
+              88:             TypeArray 87(testbld) 18
+              89:             TypePointer Input 88
+         90(bld):     89(ptr) Variable Input
+              91:             TypeArray 11(fvec4) 18
+              92:             TypePointer Input 91
+        93(ivla):     92(ptr) Variable Input
+        94(ivlb):     92(ptr) Variable Input
+              95:             TypeArray 11(fvec4) 58
+              96:             TypePointer Output 95
+        97(ovla):     96(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+            8(a):      7(ptr) Variable Function
+           13(p):     12(ptr) Variable Function
+          28(ps):     27(ptr) Variable Function
+          32(cd):     27(ptr) Variable Function
+         36(pvi):      7(ptr) Variable Function
+         40(pid):      7(ptr) Variable Function
+          45(tc):     44(ptr) Variable Function
+         49(tlo):     27(ptr) Variable Function
+         57(tli):     27(ptr) Variable Function
+                              Store 8(a) 9
+              25:     24(ptr) AccessChain 21(gl_in) 22 23
+              26:   11(fvec4) Load 25
+                              Store 13(p) 26
+              30:     29(ptr) AccessChain 21(gl_in) 22 22
+              31:   10(float) Load 30
+                              Store 28(ps) 31
+              34:     29(ptr) AccessChain 21(gl_in) 22 33 33
+              35:   10(float) Load 34
+                              Store 32(cd) 35
+              39:      6(int) Load 38(gl_PatchVerticesIn)
+                              Store 36(pvi) 39
+              42:      6(int) Load 41(gl_PrimitiveID)
+                              Store 40(pid) 42
+              48:   43(fvec3) Load 47(gl_TessCoord)
+                              Store 45(tc) 48
+              55:     29(ptr) AccessChain 53(gl_TessLevelOuter) 54
+              56:   10(float) Load 55
+                              Store 49(tlo) 56
+              62:     29(ptr) AccessChain 61(gl_TessLevelInner) 22
+              63:   10(float) Load 62
+                              Store 57(tli) 63
+              69:   11(fvec4) Load 13(p)
+              71:     70(ptr) AccessChain 68 23
+                              Store 71 69
+              72:   10(float) Load 28(ps)
+              74:     73(ptr) AccessChain 68 22
+                              Store 74 72
+              75:   10(float) Load 32(cd)
+              76:     73(ptr) AccessChain 68 33 33
+                              Store 76 75
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.420.geom.out b/Test/baseResults/spv.420.geom.out
index a9922b7..5a736a5 100644
--- a/Test/baseResults/spv.420.geom.out
+++ b/Test/baseResults/spv.420.geom.out
@@ -1,130 +1,130 @@
-spv.420.geom

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked geometry stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 74

-

-                              Capability Geometry

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Geometry 4  "main" 14 23 46

-                              ExecutionMode 4 Triangles

-                              ExecutionMode 4 Invocations 4

-                              ExecutionMode 4 OutputLineStrip

-                              ExecutionMode 4 OutputVertices 127

-                              Source GLSL 420

-                              Name 4  "main"

-                              Name 8  "p"

-                              Name 9  "gl_PerVertex"

-                              MemberName 9(gl_PerVertex) 0  "gl_PointSize"

-                              Name 14  "gl_in"

-                              Name 21  "gl_PerVertex"

-                              MemberName 21(gl_PerVertex) 0  "gl_PointSize"

-                              Name 23  ""

-                              Name 28  "gl_ViewportIndex"

-                              Name 31  "id"

-                              Name 33  "gl_InvocationID"

-                              Name 37  "v"

-                              Name 41  "s2D"

-                              Name 46  "coord"

-                              Name 64  "i"

-                              Name 67  "indexable"

-                              Name 73  "v4"

-                              MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize

-                              Decorate 9(gl_PerVertex) Block

-                              MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize

-                              Decorate 21(gl_PerVertex) Block

-                              Decorate 21(gl_PerVertex) Stream 0

-                              Decorate 23 Stream 0

-                              Decorate 28(gl_ViewportIndex) Stream 0

-                              Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex

-                              Decorate 33(gl_InvocationID) BuiltIn InvocationId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Function 6(float)

- 9(gl_PerVertex):             TypeStruct 6(float)

-              10:             TypeInt 32 0

-              11:     10(int) Constant 3

-              12:             TypeArray 9(gl_PerVertex) 11

-              13:             TypePointer Input 12

-       14(gl_in):     13(ptr) Variable Input

-              15:             TypeInt 32 1

-              16:     15(int) Constant 1

-              17:     15(int) Constant 0

-              18:             TypePointer Input 6(float)

-21(gl_PerVertex):             TypeStruct 6(float)

-              22:             TypePointer Output 21(gl_PerVertex)

-              23:     22(ptr) Variable Output

-              25:             TypePointer Output 6(float)

-              27:             TypePointer Output 15(int)

-28(gl_ViewportIndex):     27(ptr) Variable Output

-              29:     15(int) Constant 7

-              30:             TypePointer Function 15(int)

-              32:             TypePointer Input 15(int)

-33(gl_InvocationID):     32(ptr) Variable Input

-              35:             TypeVector 6(float) 4

-              36:             TypePointer Function 35(fvec4)

-              38:             TypeImage 6(float) 2D sampled format:Unknown

-              39:             TypeSampledImage 38

-              40:             TypePointer UniformConstant 39

-         41(s2D):     40(ptr) Variable UniformConstant

-              43:             TypeVector 6(float) 2

-              44:             TypeArray 43(fvec2) 11

-              45:             TypePointer Input 44

-       46(coord):     45(ptr) Variable Input

-              47:             TypePointer Input 43(fvec2)

-              50:             TypeVector 15(int) 2

-              51:     10(int) Constant 5

-              52:             TypeArray 50(ivec2) 51

-              53:   50(ivec2) ConstantComposite 17 16

-              54:     15(int) Constant 4294967294

-              55:   50(ivec2) ConstantComposite 16 54

-              56:     15(int) Constant 3

-              57:   50(ivec2) ConstantComposite 17 56

-              58:     15(int) Constant 4294967293

-              59:   50(ivec2) ConstantComposite 58 17

-              60:     15(int) Constant 2

-              61:   50(ivec2) ConstantComposite 60 16

-              62:          52 ConstantComposite 53 55 57 59 61

-              63:             TypePointer UniformConstant 15(int)

-           64(i):     63(ptr) Variable UniformConstant

-              66:             TypePointer Function 52

-              68:             TypePointer Function 50(ivec2)

-              72:             TypePointer UniformConstant 35(fvec4)

-          73(v4):     72(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-            8(p):      7(ptr) Variable Function

-          31(id):     30(ptr) Variable Function

-           37(v):     36(ptr) Variable Function

-   67(indexable):     66(ptr) Variable Function

-              19:     18(ptr) AccessChain 14(gl_in) 16 17

-              20:    6(float) Load 19

-                              Store 8(p) 20

-              24:    6(float) Load 8(p)

-              26:     25(ptr) AccessChain 23 17

-                              Store 26 24

-                              Store 28(gl_ViewportIndex) 29

-                              EmitStreamVertex 16

-                              EndStreamPrimitive 17

-                              EmitVertex

-                              EndPrimitive

-              34:     15(int) Load 33(gl_InvocationID)

-                              Store 31(id) 34

-              42:          39 Load 41(s2D)

-              48:     47(ptr) AccessChain 46(coord) 17

-              49:   43(fvec2) Load 48

-              65:     15(int) Load 64(i)

-                              Store 67(indexable) 62

-              69:     68(ptr) AccessChain 67(indexable) 65

-              70:   50(ivec2) Load 69

-              71:   35(fvec4) ImageGather 42 49 17 Offset 70

-                              Store 37(v) 71

-                              Return

-                              FunctionEnd

+spv.420.geom
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked geometry stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 74
+
+                              Capability Geometry
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Geometry 4  "main" 14 23 46
+                              ExecutionMode 4 Triangles
+                              ExecutionMode 4 Invocations 4
+                              ExecutionMode 4 OutputLineStrip
+                              ExecutionMode 4 OutputVertices 127
+                              Source GLSL 420
+                              Name 4  "main"
+                              Name 8  "p"
+                              Name 9  "gl_PerVertex"
+                              MemberName 9(gl_PerVertex) 0  "gl_PointSize"
+                              Name 14  "gl_in"
+                              Name 21  "gl_PerVertex"
+                              MemberName 21(gl_PerVertex) 0  "gl_PointSize"
+                              Name 23  ""
+                              Name 28  "gl_ViewportIndex"
+                              Name 31  "id"
+                              Name 33  "gl_InvocationID"
+                              Name 37  "v"
+                              Name 41  "s2D"
+                              Name 46  "coord"
+                              Name 64  "i"
+                              Name 67  "indexable"
+                              Name 73  "v4"
+                              MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize
+                              Decorate 9(gl_PerVertex) Block
+                              MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize
+                              Decorate 21(gl_PerVertex) Block
+                              Decorate 21(gl_PerVertex) Stream 0
+                              Decorate 23 Stream 0
+                              Decorate 28(gl_ViewportIndex) Stream 0
+                              Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex
+                              Decorate 33(gl_InvocationID) BuiltIn InvocationId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+ 9(gl_PerVertex):             TypeStruct 6(float)
+              10:             TypeInt 32 0
+              11:     10(int) Constant 3
+              12:             TypeArray 9(gl_PerVertex) 11
+              13:             TypePointer Input 12
+       14(gl_in):     13(ptr) Variable Input
+              15:             TypeInt 32 1
+              16:     15(int) Constant 1
+              17:     15(int) Constant 0
+              18:             TypePointer Input 6(float)
+21(gl_PerVertex):             TypeStruct 6(float)
+              22:             TypePointer Output 21(gl_PerVertex)
+              23:     22(ptr) Variable Output
+              25:             TypePointer Output 6(float)
+              27:             TypePointer Output 15(int)
+28(gl_ViewportIndex):     27(ptr) Variable Output
+              29:     15(int) Constant 7
+              30:             TypePointer Function 15(int)
+              32:             TypePointer Input 15(int)
+33(gl_InvocationID):     32(ptr) Variable Input
+              35:             TypeVector 6(float) 4
+              36:             TypePointer Function 35(fvec4)
+              38:             TypeImage 6(float) 2D sampled format:Unknown
+              39:             TypeSampledImage 38
+              40:             TypePointer UniformConstant 39
+         41(s2D):     40(ptr) Variable UniformConstant
+              43:             TypeVector 6(float) 2
+              44:             TypeArray 43(fvec2) 11
+              45:             TypePointer Input 44
+       46(coord):     45(ptr) Variable Input
+              47:             TypePointer Input 43(fvec2)
+              50:             TypeVector 15(int) 2
+              51:     10(int) Constant 5
+              52:             TypeArray 50(ivec2) 51
+              53:   50(ivec2) ConstantComposite 17 16
+              54:     15(int) Constant 4294967294
+              55:   50(ivec2) ConstantComposite 16 54
+              56:     15(int) Constant 3
+              57:   50(ivec2) ConstantComposite 17 56
+              58:     15(int) Constant 4294967293
+              59:   50(ivec2) ConstantComposite 58 17
+              60:     15(int) Constant 2
+              61:   50(ivec2) ConstantComposite 60 16
+              62:          52 ConstantComposite 53 55 57 59 61
+              63:             TypePointer UniformConstant 15(int)
+           64(i):     63(ptr) Variable UniformConstant
+              66:             TypePointer Function 52
+              68:             TypePointer Function 50(ivec2)
+              72:             TypePointer UniformConstant 35(fvec4)
+          73(v4):     72(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+            8(p):      7(ptr) Variable Function
+          31(id):     30(ptr) Variable Function
+           37(v):     36(ptr) Variable Function
+   67(indexable):     66(ptr) Variable Function
+              19:     18(ptr) AccessChain 14(gl_in) 16 17
+              20:    6(float) Load 19
+                              Store 8(p) 20
+              24:    6(float) Load 8(p)
+              26:     25(ptr) AccessChain 23 17
+                              Store 26 24
+                              Store 28(gl_ViewportIndex) 29
+                              EmitStreamVertex 16
+                              EndStreamPrimitive 17
+                              EmitVertex
+                              EndPrimitive
+              34:     15(int) Load 33(gl_InvocationID)
+                              Store 31(id) 34
+              42:          39 Load 41(s2D)
+              48:     47(ptr) AccessChain 46(coord) 17
+              49:   43(fvec2) Load 48
+              65:     15(int) Load 64(i)
+                              Store 67(indexable) 62
+              69:     68(ptr) AccessChain 67(indexable) 65
+              70:   50(ivec2) Load 69
+              71:   35(fvec4) ImageGather 42 49 17 Offset 70
+                              Store 37(v) 71
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out
index 5ea903e..ba21757 100755
--- a/Test/baseResults/spv.430.vert.out
+++ b/Test/baseResults/spv.430.vert.out
@@ -1,122 +1,122 @@
-spv.430.vert

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 63

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 12 23 44 45 34 61 62

-                              Source GLSL 430

-                              Name 4  "main"

-                              Name 10  "gl_PerVertex"

-                              MemberName 10(gl_PerVertex) 0  "gl_ClipDistance"

-                              Name 12  ""

-                              Name 23  "bad"

-                              Name 34  "badorder3"

-                              Name 39  "f"

-                              Name 43  "uv4"

-                              Name 44  "badorder"

-                              Name 45  "badorder2"

-                              Name 46  "boundblock"

-                              MemberName 46(boundblock) 0  "aoeu"

-                              Name 48  "boundInst"

-                              Name 49  "anonblock"

-                              MemberName 49(anonblock) 0  "aoeu"

-                              Name 51  ""

-                              Name 55  "sampb1"

-                              Name 58  "sampb2"

-                              Name 59  "sampb4"

-                              Name 61  "gl_VertexID"

-                              Name 62  "gl_InstanceID"

-                              MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance

-                              Decorate 10(gl_PerVertex) Block

-                              Decorate 34(badorder3) Flat

-                              Decorate 43(uv4) Location 4

-                              Decorate 45(badorder2) Invariant

-                              Decorate 46(boundblock) GLSLShared

-                              Decorate 46(boundblock) Block

-                              Decorate 48(boundInst) Binding 3

-                              Decorate 49(anonblock) GLSLShared

-                              Decorate 49(anonblock) Block

-                              Decorate 51 Binding 7

-                              Decorate 55(sampb1) Binding 4

-                              Decorate 58(sampb2) Binding 5

-                              Decorate 59(sampb4) Binding 31

-                              Decorate 61(gl_VertexID) BuiltIn VertexId

-                              Decorate 62(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeInt 32 0

-               8:      7(int) Constant 3

-               9:             TypeArray 6(float) 8

-10(gl_PerVertex):             TypeStruct 9

-              11:             TypePointer Output 10(gl_PerVertex)

-              12:     11(ptr) Variable Output

-              13:             TypeInt 32 1

-              14:     13(int) Constant 0

-              15:     13(int) Constant 2

-              16:    6(float) Constant 1080872141

-              17:             TypePointer Output 6(float)

-              19:             TypeVector 6(float) 4

-              20:      7(int) Constant 10

-              21:             TypeArray 19(fvec4) 20

-              22:             TypePointer Input 21

-         23(bad):     22(ptr) Variable Input

-              24:      7(int) Constant 0

-              25:             TypePointer Input 6(float)

-              28:    6(float) Constant 1082549862

-              29:             TypeBool

-              33:             TypePointer Output 19(fvec4)

-   34(badorder3):     33(ptr) Variable Output

-              35:             TypePointer Input 19(fvec4)

-              38:             TypePointer UniformConstant 6(float)

-           39(f):     38(ptr) Variable UniformConstant

-              42:             TypePointer UniformConstant 19(fvec4)

-         43(uv4):     42(ptr) Variable UniformConstant

-    44(badorder):     35(ptr) Variable Input

-   45(badorder2):     33(ptr) Variable Output

-  46(boundblock):             TypeStruct 13(int)

-              47:             TypePointer Uniform 46(boundblock)

-   48(boundInst):     47(ptr) Variable Uniform

-   49(anonblock):             TypeStruct 13(int)

-              50:             TypePointer Uniform 49(anonblock)

-              51:     50(ptr) Variable Uniform

-              52:             TypeImage 6(float) 2D sampled format:Unknown

-              53:             TypeSampledImage 52

-              54:             TypePointer UniformConstant 53

-      55(sampb1):     54(ptr) Variable UniformConstant

-              56:             TypeArray 53 20

-              57:             TypePointer UniformConstant 56

-      58(sampb2):     57(ptr) Variable UniformConstant

-      59(sampb4):     54(ptr) Variable UniformConstant

-              60:             TypePointer Input 13(int)

- 61(gl_VertexID):     60(ptr) Variable Input

-62(gl_InstanceID):     60(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              18:     17(ptr) AccessChain 12 14 15

-                              Store 18 16

-              26:     25(ptr) AccessChain 23(bad) 14 24

-              27:    6(float) Load 26

-              30:    29(bool) FOrdEqual 27 28

-                              SelectionMerge 32 None

-                              BranchConditional 30 31 32

-              31:               Label

-              36:     35(ptr)   AccessChain 23(bad) 14

-              37:   19(fvec4)   Load 36

-                                Store 34(badorder3) 37

-                                Branch 32

-              32:             Label

-              40:    6(float) Load 39(f)

-              41:     17(ptr) AccessChain 12 14 14

-                              Store 41 40

-                              Return

-                              FunctionEnd

+spv.430.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 63
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 12 23 44 45 34 61 62
+                              Source GLSL 430
+                              Name 4  "main"
+                              Name 10  "gl_PerVertex"
+                              MemberName 10(gl_PerVertex) 0  "gl_ClipDistance"
+                              Name 12  ""
+                              Name 23  "bad"
+                              Name 34  "badorder3"
+                              Name 39  "f"
+                              Name 43  "uv4"
+                              Name 44  "badorder"
+                              Name 45  "badorder2"
+                              Name 46  "boundblock"
+                              MemberName 46(boundblock) 0  "aoeu"
+                              Name 48  "boundInst"
+                              Name 49  "anonblock"
+                              MemberName 49(anonblock) 0  "aoeu"
+                              Name 51  ""
+                              Name 55  "sampb1"
+                              Name 58  "sampb2"
+                              Name 59  "sampb4"
+                              Name 61  "gl_VertexID"
+                              Name 62  "gl_InstanceID"
+                              MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
+                              Decorate 10(gl_PerVertex) Block
+                              Decorate 34(badorder3) Flat
+                              Decorate 43(uv4) Location 4
+                              Decorate 45(badorder2) Invariant
+                              Decorate 46(boundblock) GLSLShared
+                              Decorate 46(boundblock) Block
+                              Decorate 48(boundInst) Binding 3
+                              Decorate 49(anonblock) GLSLShared
+                              Decorate 49(anonblock) Block
+                              Decorate 51 Binding 7
+                              Decorate 55(sampb1) Binding 4
+                              Decorate 58(sampb2) Binding 5
+                              Decorate 59(sampb4) Binding 31
+                              Decorate 61(gl_VertexID) BuiltIn VertexId
+                              Decorate 62(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeInt 32 0
+               8:      7(int) Constant 3
+               9:             TypeArray 6(float) 8
+10(gl_PerVertex):             TypeStruct 9
+              11:             TypePointer Output 10(gl_PerVertex)
+              12:     11(ptr) Variable Output
+              13:             TypeInt 32 1
+              14:     13(int) Constant 0
+              15:     13(int) Constant 2
+              16:    6(float) Constant 1080872141
+              17:             TypePointer Output 6(float)
+              19:             TypeVector 6(float) 4
+              20:      7(int) Constant 10
+              21:             TypeArray 19(fvec4) 20
+              22:             TypePointer Input 21
+         23(bad):     22(ptr) Variable Input
+              24:      7(int) Constant 0
+              25:             TypePointer Input 6(float)
+              28:    6(float) Constant 1082549862
+              29:             TypeBool
+              33:             TypePointer Output 19(fvec4)
+   34(badorder3):     33(ptr) Variable Output
+              35:             TypePointer Input 19(fvec4)
+              38:             TypePointer UniformConstant 6(float)
+           39(f):     38(ptr) Variable UniformConstant
+              42:             TypePointer UniformConstant 19(fvec4)
+         43(uv4):     42(ptr) Variable UniformConstant
+    44(badorder):     35(ptr) Variable Input
+   45(badorder2):     33(ptr) Variable Output
+  46(boundblock):             TypeStruct 13(int)
+              47:             TypePointer Uniform 46(boundblock)
+   48(boundInst):     47(ptr) Variable Uniform
+   49(anonblock):             TypeStruct 13(int)
+              50:             TypePointer Uniform 49(anonblock)
+              51:     50(ptr) Variable Uniform
+              52:             TypeImage 6(float) 2D sampled format:Unknown
+              53:             TypeSampledImage 52
+              54:             TypePointer UniformConstant 53
+      55(sampb1):     54(ptr) Variable UniformConstant
+              56:             TypeArray 53 20
+              57:             TypePointer UniformConstant 56
+      58(sampb2):     57(ptr) Variable UniformConstant
+      59(sampb4):     54(ptr) Variable UniformConstant
+              60:             TypePointer Input 13(int)
+ 61(gl_VertexID):     60(ptr) Variable Input
+62(gl_InstanceID):     60(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              18:     17(ptr) AccessChain 12 14 15
+                              Store 18 16
+              26:     25(ptr) AccessChain 23(bad) 14 24
+              27:    6(float) Load 26
+              30:    29(bool) FOrdEqual 27 28
+                              SelectionMerge 32 None
+                              BranchConditional 30 31 32
+              31:               Label
+              36:     35(ptr)   AccessChain 23(bad) 14
+              37:   19(fvec4)   Load 36
+                                Store 34(badorder3) 37
+                                Branch 32
+              32:             Label
+              40:    6(float) Load 39(f)
+              41:     17(ptr) AccessChain 12 14 14
+                              Store 41 40
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out
index daa9f49..b45ea2b 100644
--- a/Test/baseResults/spv.AofA.frag.out
+++ b/Test/baseResults/spv.AofA.frag.out
@@ -1,150 +1,150 @@
-spv.AofA.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 103

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 77 38 43

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 430

-                              Name 4  "main"

-                              Name 17  "foo(f1[5][7];"

-                              Name 16  "a"

-                              Name 20  "r"

-                              Name 38  "outfloat"

-                              Name 41  "g4"

-                              Name 43  "g5"

-                              Name 44  "param"

-                              Name 47  "u"

-                              Name 51  "param"

-                              Name 65  "many"

-                              Name 67  "i"

-                              Name 69  "j"

-                              Name 71  "k"

-                              Name 77  "infloat"

-                              Name 93  "uAofA"

-                              MemberName 93(uAofA) 0  "f"

-                              Name 97  "nameAofA"

-                              Decorate 93(uAofA) GLSLShared

-                              Decorate 93(uAofA) Block

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeInt 32 0

-               8:      7(int) Constant 7

-               9:             TypeArray 6(float) 8

-              10:      7(int) Constant 5

-              11:             TypeArray 9 10

-              12:             TypePointer Function 11

-              13:      7(int) Constant 4

-              14:             TypeArray 9 13

-              15:             TypeFunction 14 12(ptr)

-              19:             TypePointer Function 9

-              21:             TypeInt 32 1

-              22:     21(int) Constant 2

-              25:     21(int) Constant 0

-              28:     21(int) Constant 1

-              32:     21(int) Constant 3

-              37:             TypePointer Output 6(float)

-    38(outfloat):     37(ptr) Variable Output

-              39:    6(float) Constant 0

-              40:             TypePointer Private 14

-          41(g4):     40(ptr) Variable Private

-              42:             TypePointer Input 11

-          43(g5):     42(ptr) Variable Input

-              48:    6(float) Constant 1077936128

-              49:             TypePointer Function 6(float)

-              54:      7(int) Constant 6

-              55:             TypeArray 6(float) 54

-              56:             TypeArray 55 10

-              57:             TypeArray 56 13

-              58:      7(int) Constant 3

-              59:             TypeArray 57 58

-              60:      7(int) Constant 2

-              61:             TypeArray 59 60

-              62:      7(int) Constant 1

-              63:             TypeArray 61 62

-              64:             TypePointer Private 63

-        65(many):     64(ptr) Variable Private

-              66:             TypePointer UniformConstant 21(int)

-           67(i):     66(ptr) Variable UniformConstant

-           69(j):     66(ptr) Variable UniformConstant

-           71(k):     66(ptr) Variable UniformConstant

-              76:             TypePointer Input 6(float)

-     77(infloat):     76(ptr) Variable Input

-              79:             TypePointer Private 6(float)

-              91:             TypeArray 6(float) 13

-              92:             TypeArray 91 60

-       93(uAofA):             TypeStruct 92

-              94:             TypeArray 93(uAofA) 10

-              95:             TypeArray 94 58

-              96:             TypePointer Uniform 95

-    97(nameAofA):     96(ptr) Variable Uniform

-              98:             TypePointer Uniform 6(float)

-         4(main):           2 Function None 3

-               5:             Label

-       44(param):     12(ptr) Variable Function

-           47(u):     12(ptr) Variable Function

-       51(param):     12(ptr) Variable Function

-                              Store 38(outfloat) 39

-              45:          11 Load 43(g5)

-                              Store 44(param) 45

-              46:          14 FunctionCall 17(foo(f1[5][7];) 44(param)

-                              Store 41(g4) 46

-              50:     49(ptr) AccessChain 47(u) 22 22

-                              Store 50 48

-              52:          11 Load 47(u)

-                              Store 51(param) 52

-              53:          14 FunctionCall 17(foo(f1[5][7];) 51(param)

-              68:     21(int) Load 67(i)

-              70:     21(int) Load 69(j)

-              72:     21(int) Load 71(k)

-              73:     21(int) Load 67(i)

-              74:     21(int) Load 69(j)

-              75:     21(int) Load 71(k)

-              78:    6(float) Load 77(infloat)

-              80:     79(ptr) AccessChain 65(many) 68 70 72 73 74 75

-                              Store 80 78

-              81:     21(int) Load 69(j)

-              82:     21(int) Load 69(j)

-              83:     21(int) Load 69(j)

-              84:     21(int) Load 69(j)

-              85:     21(int) Load 69(j)

-              86:     21(int) Load 69(j)

-              87:     79(ptr) AccessChain 65(many) 81 82 83 84 85 86

-              88:    6(float) Load 87

-              89:    6(float) Load 38(outfloat)

-              90:    6(float) FAdd 89 88

-                              Store 38(outfloat) 90

-              99:     98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32

-             100:    6(float) Load 99

-             101:    6(float) Load 38(outfloat)

-             102:    6(float) FAdd 101 100

-                              Store 38(outfloat) 102

-                              Return

-                              FunctionEnd

-17(foo(f1[5][7];):          14 Function None 15

-           16(a):     12(ptr) FunctionParameter

-              18:             Label

-           20(r):     19(ptr) Variable Function

-              23:     19(ptr) AccessChain 16(a) 22

-              24:           9 Load 23

-                              Store 20(r) 24

-              26:     19(ptr) AccessChain 16(a) 25

-              27:           9 Load 26

-              29:     19(ptr) AccessChain 16(a) 28

-              30:           9 Load 29

-              31:           9 Load 20(r)

-              33:     19(ptr) AccessChain 16(a) 32

-              34:           9 Load 33

-              35:          14 CompositeConstruct 27 30 31 34

-                              ReturnValue 35

-                              FunctionEnd

+spv.AofA.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 103
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 77 38 43
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 430
+                              Name 4  "main"
+                              Name 17  "foo(f1[5][7];"
+                              Name 16  "a"
+                              Name 20  "r"
+                              Name 38  "outfloat"
+                              Name 41  "g4"
+                              Name 43  "g5"
+                              Name 44  "param"
+                              Name 47  "u"
+                              Name 51  "param"
+                              Name 65  "many"
+                              Name 67  "i"
+                              Name 69  "j"
+                              Name 71  "k"
+                              Name 77  "infloat"
+                              Name 93  "uAofA"
+                              MemberName 93(uAofA) 0  "f"
+                              Name 97  "nameAofA"
+                              Decorate 93(uAofA) GLSLShared
+                              Decorate 93(uAofA) Block
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeInt 32 0
+               8:      7(int) Constant 7
+               9:             TypeArray 6(float) 8
+              10:      7(int) Constant 5
+              11:             TypeArray 9 10
+              12:             TypePointer Function 11
+              13:      7(int) Constant 4
+              14:             TypeArray 9 13
+              15:             TypeFunction 14 12(ptr)
+              19:             TypePointer Function 9
+              21:             TypeInt 32 1
+              22:     21(int) Constant 2
+              25:     21(int) Constant 0
+              28:     21(int) Constant 1
+              32:     21(int) Constant 3
+              37:             TypePointer Output 6(float)
+    38(outfloat):     37(ptr) Variable Output
+              39:    6(float) Constant 0
+              40:             TypePointer Private 14
+          41(g4):     40(ptr) Variable Private
+              42:             TypePointer Input 11
+          43(g5):     42(ptr) Variable Input
+              48:    6(float) Constant 1077936128
+              49:             TypePointer Function 6(float)
+              54:      7(int) Constant 6
+              55:             TypeArray 6(float) 54
+              56:             TypeArray 55 10
+              57:             TypeArray 56 13
+              58:      7(int) Constant 3
+              59:             TypeArray 57 58
+              60:      7(int) Constant 2
+              61:             TypeArray 59 60
+              62:      7(int) Constant 1
+              63:             TypeArray 61 62
+              64:             TypePointer Private 63
+        65(many):     64(ptr) Variable Private
+              66:             TypePointer UniformConstant 21(int)
+           67(i):     66(ptr) Variable UniformConstant
+           69(j):     66(ptr) Variable UniformConstant
+           71(k):     66(ptr) Variable UniformConstant
+              76:             TypePointer Input 6(float)
+     77(infloat):     76(ptr) Variable Input
+              79:             TypePointer Private 6(float)
+              91:             TypeArray 6(float) 13
+              92:             TypeArray 91 60
+       93(uAofA):             TypeStruct 92
+              94:             TypeArray 93(uAofA) 10
+              95:             TypeArray 94 58
+              96:             TypePointer Uniform 95
+    97(nameAofA):     96(ptr) Variable Uniform
+              98:             TypePointer Uniform 6(float)
+         4(main):           2 Function None 3
+               5:             Label
+       44(param):     12(ptr) Variable Function
+           47(u):     12(ptr) Variable Function
+       51(param):     12(ptr) Variable Function
+                              Store 38(outfloat) 39
+              45:          11 Load 43(g5)
+                              Store 44(param) 45
+              46:          14 FunctionCall 17(foo(f1[5][7];) 44(param)
+                              Store 41(g4) 46
+              50:     49(ptr) AccessChain 47(u) 22 22
+                              Store 50 48
+              52:          11 Load 47(u)
+                              Store 51(param) 52
+              53:          14 FunctionCall 17(foo(f1[5][7];) 51(param)
+              68:     21(int) Load 67(i)
+              70:     21(int) Load 69(j)
+              72:     21(int) Load 71(k)
+              73:     21(int) Load 67(i)
+              74:     21(int) Load 69(j)
+              75:     21(int) Load 71(k)
+              78:    6(float) Load 77(infloat)
+              80:     79(ptr) AccessChain 65(many) 68 70 72 73 74 75
+                              Store 80 78
+              81:     21(int) Load 69(j)
+              82:     21(int) Load 69(j)
+              83:     21(int) Load 69(j)
+              84:     21(int) Load 69(j)
+              85:     21(int) Load 69(j)
+              86:     21(int) Load 69(j)
+              87:     79(ptr) AccessChain 65(many) 81 82 83 84 85 86
+              88:    6(float) Load 87
+              89:    6(float) Load 38(outfloat)
+              90:    6(float) FAdd 89 88
+                              Store 38(outfloat) 90
+              99:     98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32
+             100:    6(float) Load 99
+             101:    6(float) Load 38(outfloat)
+             102:    6(float) FAdd 101 100
+                              Store 38(outfloat) 102
+                              Return
+                              FunctionEnd
+17(foo(f1[5][7];):          14 Function None 15
+           16(a):     12(ptr) FunctionParameter
+              18:             Label
+           20(r):     19(ptr) Variable Function
+              23:     19(ptr) AccessChain 16(a) 22
+              24:           9 Load 23
+                              Store 20(r) 24
+              26:     19(ptr) AccessChain 16(a) 25
+              27:           9 Load 26
+              29:     19(ptr) AccessChain 16(a) 28
+              30:           9 Load 29
+              31:           9 Load 20(r)
+              33:     19(ptr) AccessChain 16(a) 32
+              34:           9 Load 33
+              35:          14 CompositeConstruct 27 30 31 34
+                              ReturnValue 35
+                              FunctionEnd
diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index e18564c..97ffce9 100755
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -1,554 +1,554 @@
-spv.Operations.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 418

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main"

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "v"

-                              Name 11  "uv4"

-                              Name 20  "i"

-                              Name 22  "ui"

-                              Name 172  "uf"

-                              Name 219  "b"

-                              Name 253  "ub41"

-                              Name 255  "ub42"

-                              Name 318  "f"

-                              Name 397  "gl_FragColor"

-                              Name 415  "uiv4"

-                              Name 417  "ub"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer UniformConstant 7(fvec4)

-         11(uv4):     10(ptr) Variable UniformConstant

-              18:             TypeInt 32 1

-              19:             TypePointer Function 18(int)

-              21:             TypePointer UniformConstant 18(int)

-          22(ui):     21(ptr) Variable UniformConstant

-             129:             TypeInt 32 0

-             130:    129(int) Constant 0

-             131:             TypePointer Function 6(float)

-             171:             TypePointer UniformConstant 6(float)

-         172(uf):    171(ptr) Variable UniformConstant

-             217:             TypeBool

-             218:             TypePointer Function 217(bool)

-             222:             TypeVector 217(bool) 4

-             252:             TypePointer UniformConstant 222(bvec4)

-       253(ub41):    252(ptr) Variable UniformConstant

-       255(ub42):    252(ptr) Variable UniformConstant

-             309:     18(int) Constant 2

-             316:     18(int) Constant 1

-             347:             TypeVector 6(float) 3

-             366:    6(float) Constant 1073741824

-             373:    6(float) Constant 1065353216

-             378:     18(int) Constant 66

-             384:     18(int) Constant 17

-             396:             TypePointer Output 7(fvec4)

-397(gl_FragColor):    396(ptr) Variable Output

-             413:             TypeVector 18(int) 4

-             414:             TypePointer UniformConstant 413(ivec4)

-       415(uiv4):    414(ptr) Variable UniformConstant

-             416:             TypePointer UniformConstant 217(bool)

-         417(ub):    416(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-            9(v):      8(ptr) Variable Function

-           20(i):     19(ptr) Variable Function

-          219(b):    218(ptr) Variable Function

-          318(f):    131(ptr) Variable Function

-             398:      8(ptr) Variable Function

-              12:    7(fvec4) Load 11(uv4)

-              13:    7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12

-                              Store 9(v) 13

-              14:    7(fvec4) Load 9(v)

-              15:    7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14

-              16:    7(fvec4) Load 9(v)

-              17:    7(fvec4) FAdd 16 15

-                              Store 9(v) 17

-              23:     18(int) Load 22(ui)

-              24:     18(int) Load 22(ui)

-              25:     18(int) IMul 23 24

-                              Store 20(i) 25

-              26:    7(fvec4) Load 9(v)

-              27:    7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26

-              28:    7(fvec4) Load 9(v)

-              29:    7(fvec4) FAdd 28 27

-                              Store 9(v) 29

-              30:    7(fvec4) Load 9(v)

-              31:    7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30

-              32:    7(fvec4) Load 9(v)

-              33:    7(fvec4) FAdd 32 31

-                              Store 9(v) 33

-              34:    7(fvec4) Load 9(v)

-              35:    7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34

-              36:    7(fvec4) Load 9(v)

-              37:    7(fvec4) FAdd 36 35

-                              Store 9(v) 37

-              38:    7(fvec4) Load 9(v)

-              39:    7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38

-              40:    7(fvec4) Load 9(v)

-              41:    7(fvec4) FAdd 40 39

-                              Store 9(v) 41

-              42:    7(fvec4) Load 9(v)

-              43:    7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42

-              44:    7(fvec4) Load 9(v)

-              45:    7(fvec4) FAdd 44 43

-                              Store 9(v) 45

-              46:    7(fvec4) Load 9(v)

-              47:    7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46

-              48:    7(fvec4) Load 9(v)

-              49:    7(fvec4) FAdd 48 47

-                              Store 9(v) 49

-              50:    7(fvec4) Load 9(v)

-              51:    7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50

-              52:    7(fvec4) Load 9(v)

-              53:    7(fvec4) FAdd 52 51

-                              Store 9(v) 53

-              54:    7(fvec4) Load 9(v)

-              55:    7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54

-              56:    7(fvec4) Load 9(v)

-              57:    7(fvec4) FAdd 56 55

-                              Store 9(v) 57

-              58:    7(fvec4) Load 9(v)

-              59:    7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58

-              60:    7(fvec4) Load 9(v)

-              61:    7(fvec4) FAdd 60 59

-                              Store 9(v) 61

-              62:    7(fvec4) Load 9(v)

-              63:    7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62

-              64:    7(fvec4) Load 9(v)

-              65:    7(fvec4) FAdd 64 63

-                              Store 9(v) 65

-              66:    7(fvec4) Load 9(v)

-              67:    7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66

-              68:    7(fvec4) Load 9(v)

-              69:    7(fvec4) FAdd 68 67

-                              Store 9(v) 69

-              70:    7(fvec4) Load 9(v)

-              71:    7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70

-              72:    7(fvec4) Load 9(v)

-              73:    7(fvec4) FAdd 72 71

-                              Store 9(v) 73

-              74:    7(fvec4) Load 9(v)

-              75:    7(fvec4) Load 9(v)

-              76:    7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75

-              77:    7(fvec4) Load 9(v)

-              78:    7(fvec4) FAdd 77 76

-                              Store 9(v) 78

-              79:    7(fvec4) Load 9(v)

-              80:    7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79

-              81:    7(fvec4) Load 9(v)

-              82:    7(fvec4) FAdd 81 80

-                              Store 9(v) 82

-              83:    7(fvec4) Load 9(v)

-              84:    7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83

-              85:    7(fvec4) Load 9(v)

-              86:    7(fvec4) FAdd 85 84

-                              Store 9(v) 86

-              87:    7(fvec4) Load 9(v)

-              88:    7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87

-              89:    7(fvec4) Load 9(v)

-              90:    7(fvec4) FAdd 89 88

-                              Store 9(v) 90

-              91:    7(fvec4) Load 9(v)

-              92:    7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91

-              93:    7(fvec4) Load 9(v)

-              94:    7(fvec4) FAdd 93 92

-                              Store 9(v) 94

-              95:    7(fvec4) Load 9(v)

-              96:    7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95

-              97:    7(fvec4) Load 9(v)

-              98:    7(fvec4) FAdd 97 96

-                              Store 9(v) 98

-              99:    7(fvec4) Load 9(v)

-             100:    7(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99

-             101:    7(fvec4) Load 9(v)

-             102:    7(fvec4) FAdd 101 100

-                              Store 9(v) 102

-             103:    7(fvec4) Load 9(v)

-             104:    7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103

-             105:    7(fvec4) Load 9(v)

-             106:    7(fvec4) FAdd 105 104

-                              Store 9(v) 106

-             107:    7(fvec4) Load 9(v)

-             108:    7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107

-             109:    7(fvec4) Load 9(v)

-             110:    7(fvec4) FAdd 109 108

-                              Store 9(v) 110

-             111:    7(fvec4) Load 9(v)

-             112:    7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111

-             113:    7(fvec4) Load 9(v)

-             114:    7(fvec4) FAdd 113 112

-                              Store 9(v) 114

-             115:    7(fvec4) Load 9(v)

-             116:    7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115

-             117:    7(fvec4) Load 9(v)

-             118:    7(fvec4) FAdd 117 116

-                              Store 9(v) 118

-             119:    7(fvec4) Load 9(v)

-             120:    7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119

-             121:    7(fvec4) Load 9(v)

-             122:    7(fvec4) FAdd 121 120

-                              Store 9(v) 122

-             123:    7(fvec4) Load 9(v)

-             124:    7(fvec4) Load 9(v)

-             125:    7(fvec4) FMod 123 124

-             126:    7(fvec4) Load 9(v)

-             127:    7(fvec4) FAdd 126 125

-                              Store 9(v) 127

-             128:    7(fvec4) Load 9(v)

-             132:    131(ptr) AccessChain 9(v) 130

-             133:    6(float) Load 132

-             134:    7(fvec4) CompositeConstruct 133 133 133 133

-             135:    7(fvec4) FMod 128 134

-             136:    7(fvec4) Load 9(v)

-             137:    7(fvec4) FAdd 136 135

-                              Store 9(v) 137

-             138:    7(fvec4) Load 9(v)

-             139:    7(fvec4) Load 11(uv4)

-             140:    7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 138 139

-             141:    7(fvec4) Load 9(v)

-             142:    7(fvec4) FAdd 141 140

-                              Store 9(v) 142

-             143:    7(fvec4) Load 9(v)

-             144:    7(fvec4) Load 11(uv4)

-             145:    7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 143 144

-             146:    7(fvec4) Load 9(v)

-             147:    7(fvec4) FAdd 146 145

-                              Store 9(v) 147

-             148:    7(fvec4) Load 9(v)

-             149:    7(fvec4) Load 11(uv4)

-             150:    7(fvec4) Load 11(uv4)

-             151:    7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 148 149 150

-             152:    7(fvec4) Load 9(v)

-             153:    7(fvec4) FAdd 152 151

-                              Store 9(v) 153

-             154:    7(fvec4) Load 9(v)

-             155:    7(fvec4) Load 9(v)

-             156:    7(fvec4) Load 9(v)

-             157:    7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 154 155 156

-             158:    7(fvec4) Load 9(v)

-             159:    7(fvec4) FAdd 158 157

-                              Store 9(v) 159

-             160:    7(fvec4) Load 9(v)

-             161:    7(fvec4) Load 9(v)

-             162:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 160 161

-             163:    7(fvec4) Load 9(v)

-             164:    7(fvec4) FAdd 163 162

-                              Store 9(v) 164

-             165:    7(fvec4) Load 9(v)

-             166:    7(fvec4) Load 9(v)

-             167:    7(fvec4) Load 9(v)

-             168:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 165 166 167

-             169:    7(fvec4) Load 9(v)

-             170:    7(fvec4) FAdd 169 168

-                              Store 9(v) 170

-             173:    6(float) Load 172(uf)

-             174:    7(fvec4) Load 9(v)

-             175:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 173 174

-             176:    7(fvec4) Load 9(v)

-             177:    7(fvec4) FAdd 176 175

-                              Store 9(v) 177

-             178:    6(float) Load 172(uf)

-             179:    6(float) Load 172(uf)

-             180:    7(fvec4) Load 9(v)

-             181:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 178 179 180

-             182:    7(fvec4) Load 9(v)

-             183:    7(fvec4) FAdd 182 181

-                              Store 9(v) 183

-             184:    7(fvec4) Load 9(v)

-             185:    7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 184

-             186:    7(fvec4) Load 9(v)

-             187:    7(fvec4) FAdd 186 185

-                              Store 9(v) 187

-             188:    7(fvec4) Load 9(v)

-             189:    7(fvec4) Load 9(v)

-             190:    7(fvec4) Load 9(v)

-             191:    7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 188 189 190

-             192:    7(fvec4) Load 9(v)

-             193:    7(fvec4) FAdd 192 191

-                              Store 9(v) 193

-             194:    7(fvec4) Load 9(v)

-             195:    7(fvec4) Load 9(v)

-             196:    7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 194 195

-             197:    7(fvec4) Load 9(v)

-             198:    7(fvec4) FAdd 197 196

-                              Store 9(v) 198

-             199:    7(fvec4) Load 9(v)

-             200:    7(fvec4) Load 9(v)

-             201:    6(float) Load 172(uf)

-             202:    7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 199 200 201

-             203:    7(fvec4) Load 9(v)

-             204:    7(fvec4) FAdd 203 202

-                              Store 9(v) 204

-             205:    7(fvec4) Load 9(v)

-             206:    7(fvec4) DPdx 205

-             207:    7(fvec4) Load 9(v)

-             208:    7(fvec4) FAdd 207 206

-                              Store 9(v) 208

-             209:    7(fvec4) Load 9(v)

-             210:    7(fvec4) DPdy 209

-             211:    7(fvec4) Load 9(v)

-             212:    7(fvec4) FAdd 211 210

-                              Store 9(v) 212

-             213:    7(fvec4) Load 9(v)

-             214:    7(fvec4) Fwidth 213

-             215:    7(fvec4) Load 9(v)

-             216:    7(fvec4) FAdd 215 214

-                              Store 9(v) 216

-             220:    7(fvec4) Load 9(v)

-             221:    7(fvec4) Load 11(uv4)

-             223:  222(bvec4) FOrdLessThan 220 221

-             224:   217(bool) Any 223

-                              Store 219(b) 224

-             225:   217(bool) Load 219(b)

-                              SelectionMerge 227 None

-                              BranchConditional 225 226 227

-             226:               Label

-             228:    7(fvec4)   Load 9(v)

-             229:    7(fvec4)   Load 11(uv4)

-             230:  222(bvec4)   FOrdLessThanEqual 228 229

-             231:   217(bool)   Any 230

-                                Branch 227

-             227:             Label

-             232:   217(bool) Phi 225 5 231 226

-                              Store 219(b) 232

-             233:   217(bool) Load 219(b)

-                              SelectionMerge 235 None

-                              BranchConditional 233 234 235

-             234:               Label

-             236:    7(fvec4)   Load 9(v)

-             237:    7(fvec4)   Load 11(uv4)

-             238:  222(bvec4)   FOrdGreaterThan 236 237

-             239:   217(bool)   Any 238

-                                Branch 235

-             235:             Label

-             240:   217(bool) Phi 233 227 239 234

-                              Store 219(b) 240

-             241:   217(bool) Load 219(b)

-                              SelectionMerge 243 None

-                              BranchConditional 241 242 243

-             242:               Label

-             244:    7(fvec4)   Load 9(v)

-             245:    7(fvec4)   Load 11(uv4)

-             246:  222(bvec4)   FOrdGreaterThanEqual 244 245

-             247:   217(bool)   Any 246

-                                Branch 243

-             243:             Label

-             248:   217(bool) Phi 241 235 247 242

-                              Store 219(b) 248

-             249:   217(bool) Load 219(b)

-                              SelectionMerge 251 None

-                              BranchConditional 249 250 251

-             250:               Label

-             254:  222(bvec4)   Load 253(ub41)

-             256:  222(bvec4)   Load 255(ub42)

-             257:  222(bvec4)   IEqual 254 256

-             258:   217(bool)   Any 257

-                                Branch 251

-             251:             Label

-             259:   217(bool) Phi 249 243 258 250

-                              Store 219(b) 259

-             260:   217(bool) Load 219(b)

-                              SelectionMerge 262 None

-                              BranchConditional 260 261 262

-             261:               Label

-             263:  222(bvec4)   Load 253(ub41)

-             264:  222(bvec4)   Load 255(ub42)

-             265:  222(bvec4)   INotEqual 263 264

-             266:   217(bool)   Any 265

-                                Branch 262

-             262:             Label

-             267:   217(bool) Phi 260 251 266 261

-                              Store 219(b) 267

-             268:   217(bool) Load 219(b)

-             269:  222(bvec4) Load 253(ub41)

-             270:   217(bool) Any 269

-             271:   217(bool) LogicalAnd 268 270

-                              Store 219(b) 271

-             272:   217(bool) Load 219(b)

-             273:  222(bvec4) Load 253(ub41)

-             274:   217(bool) All 273

-             275:   217(bool) LogicalAnd 272 274

-                              Store 219(b) 275

-             276:   217(bool) Load 219(b)

-                              SelectionMerge 278 None

-                              BranchConditional 276 277 278

-             277:               Label

-             279:  222(bvec4)   Load 253(ub41)

-             280:  222(bvec4)   LogicalNot 279

-             281:   217(bool)   Any 280

-                                Branch 278

-             278:             Label

-             282:   217(bool) Phi 276 262 281 277

-                              Store 219(b) 282

-             283:     18(int) Load 20(i)

-             284:     18(int) Load 22(ui)

-             285:     18(int) IAdd 283 284

-             286:     18(int) Load 20(i)

-             287:     18(int) IMul 285 286

-             288:     18(int) Load 22(ui)

-             289:     18(int) ISub 287 288

-             290:     18(int) Load 20(i)

-             291:     18(int) SDiv 289 290

-                              Store 20(i) 291

-             292:     18(int) Load 20(i)

-             293:     18(int) Load 22(ui)

-             294:     18(int) SMod 292 293

-                              Store 20(i) 294

-             295:     18(int) Load 20(i)

-             296:     18(int) Load 22(ui)

-             297:   217(bool) IEqual 295 296

-             298:   217(bool) LogicalNot 297

-                              SelectionMerge 300 None

-                              BranchConditional 298 299 300

-             299:               Label

-             301:     18(int)   Load 20(i)

-             302:     18(int)   Load 22(ui)

-             303:   217(bool)   INotEqual 301 302

-             304:     18(int)   Load 20(i)

-             305:     18(int)   Load 22(ui)

-             306:   217(bool)   IEqual 304 305

-             307:   217(bool)   LogicalAnd 303 306

-             308:     18(int)   Load 20(i)

-             310:   217(bool)   INotEqual 308 309

-             311:   217(bool)   LogicalNotEqual 307 310

-                                Branch 300

-             300:             Label

-             312:   217(bool) Phi 297 278 311 299

-                              SelectionMerge 314 None

-                              BranchConditional 312 313 314

-             313:               Label

-             315:     18(int)   Load 20(i)

-             317:     18(int)   IAdd 315 316

-                                Store 20(i) 317

-                                Branch 314

-             314:             Label

-             319:    6(float) Load 172(uf)

-             320:    6(float) Load 172(uf)

-             321:    6(float) FAdd 319 320

-             322:    6(float) Load 172(uf)

-             323:    6(float) FMul 321 322

-             324:    6(float) Load 172(uf)

-             325:    6(float) FSub 323 324

-             326:    6(float) Load 172(uf)

-             327:    6(float) FDiv 325 326

-                              Store 318(f) 327

-             328:    7(fvec4) Load 9(v)

-             329:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 328

-             330:    6(float) Load 318(f)

-             331:    6(float) FAdd 330 329

-                              Store 318(f) 331

-             332:    7(fvec4) Load 9(v)

-             333:    7(fvec4) Load 9(v)

-             334:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 332 333

-             335:    6(float) Load 318(f)

-             336:    6(float) FAdd 335 334

-                              Store 318(f) 336

-             337:    7(fvec4) Load 9(v)

-             338:    7(fvec4) Load 9(v)

-             339:    6(float) Dot 337 338

-             340:    6(float) Load 318(f)

-             341:    6(float) FAdd 340 339

-                              Store 318(f) 341

-             342:    6(float) Load 318(f)

-             343:    6(float) Load 172(uf)

-             344:    6(float) FMul 342 343

-             345:    6(float) Load 318(f)

-             346:    6(float) FAdd 345 344

-                              Store 318(f) 346

-             348:    7(fvec4) Load 9(v)

-             349:  347(fvec3) VectorShuffle 348 348 0 1 2

-             350:    7(fvec4) Load 9(v)

-             351:  347(fvec3) VectorShuffle 350 350 0 1 2

-             352:  347(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 349 351

-             353:    6(float) CompositeExtract 352 0

-             354:    6(float) Load 318(f)

-             355:    6(float) FAdd 354 353

-                              Store 318(f) 355

-             356:    6(float) Load 318(f)

-             357:    6(float) Load 172(uf)

-             358:   217(bool) FOrdEqual 356 357

-             359:   217(bool) LogicalNot 358

-                              SelectionMerge 361 None

-                              BranchConditional 359 360 361

-             360:               Label

-             362:    6(float)   Load 318(f)

-             363:    6(float)   Load 172(uf)

-             364:   217(bool)   FOrdNotEqual 362 363

-             365:    6(float)   Load 318(f)

-             367:   217(bool)   FOrdNotEqual 365 366

-             368:   217(bool)   LogicalAnd 364 367

-                                Branch 361

-             361:             Label

-             369:   217(bool) Phi 358 314 368 360

-                              SelectionMerge 371 None

-                              BranchConditional 369 370 371

-             370:               Label

-             372:    6(float)   Load 318(f)

-             374:    6(float)   FAdd 372 373

-                                Store 318(f) 374

-                                Branch 371

-             371:             Label

-             375:     18(int) Load 22(ui)

-             376:     18(int) Load 20(i)

-             377:     18(int) BitwiseAnd 376 375

-                              Store 20(i) 377

-             379:     18(int) Load 20(i)

-             380:     18(int) BitwiseOr 379 378

-                              Store 20(i) 380

-             381:     18(int) Load 22(ui)

-             382:     18(int) Load 20(i)

-             383:     18(int) BitwiseXor 382 381

-                              Store 20(i) 383

-             385:     18(int) Load 20(i)

-             386:     18(int) SMod 385 384

-                              Store 20(i) 386

-             387:     18(int) Load 20(i)

-             388:     18(int) ShiftRightArithmetic 387 309

-                              Store 20(i) 388

-             389:     18(int) Load 22(ui)

-             390:     18(int) Load 20(i)

-             391:     18(int) ShiftLeftLogical 390 389

-                              Store 20(i) 391

-             392:     18(int) Load 20(i)

-             393:     18(int) Not 392

-                              Store 20(i) 393

-             394:   217(bool) Load 219(b)

-             395:   217(bool) LogicalNot 394

-                              Store 219(b) 395

-             399:   217(bool) Load 219(b)

-                              SelectionMerge 401 None

-                              BranchConditional 399 400 410

-             400:               Label

-             402:     18(int)   Load 20(i)

-             403:    6(float)   ConvertSToF 402

-             404:    7(fvec4)   CompositeConstruct 403 403 403 403

-             405:    6(float)   Load 318(f)

-             406:    7(fvec4)   CompositeConstruct 405 405 405 405

-             407:    7(fvec4)   FAdd 404 406

-             408:    7(fvec4)   Load 9(v)

-             409:    7(fvec4)   FAdd 407 408

-                                Store 398 409

-                                Branch 401

-             410:               Label

-             411:    7(fvec4)   Load 9(v)

-                                Store 398 411

-                                Branch 401

-             401:             Label

-             412:    7(fvec4) Load 398

-                              Store 397(gl_FragColor) 412

-                              Return

-                              FunctionEnd

+spv.Operations.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 418
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main"
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "v"
+                              Name 11  "uv4"
+                              Name 20  "i"
+                              Name 22  "ui"
+                              Name 172  "uf"
+                              Name 219  "b"
+                              Name 253  "ub41"
+                              Name 255  "ub42"
+                              Name 318  "f"
+                              Name 397  "gl_FragColor"
+                              Name 415  "uiv4"
+                              Name 417  "ub"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer UniformConstant 7(fvec4)
+         11(uv4):     10(ptr) Variable UniformConstant
+              18:             TypeInt 32 1
+              19:             TypePointer Function 18(int)
+              21:             TypePointer UniformConstant 18(int)
+          22(ui):     21(ptr) Variable UniformConstant
+             129:             TypeInt 32 0
+             130:    129(int) Constant 0
+             131:             TypePointer Function 6(float)
+             171:             TypePointer UniformConstant 6(float)
+         172(uf):    171(ptr) Variable UniformConstant
+             217:             TypeBool
+             218:             TypePointer Function 217(bool)
+             222:             TypeVector 217(bool) 4
+             252:             TypePointer UniformConstant 222(bvec4)
+       253(ub41):    252(ptr) Variable UniformConstant
+       255(ub42):    252(ptr) Variable UniformConstant
+             309:     18(int) Constant 2
+             316:     18(int) Constant 1
+             347:             TypeVector 6(float) 3
+             366:    6(float) Constant 1073741824
+             373:    6(float) Constant 1065353216
+             378:     18(int) Constant 66
+             384:     18(int) Constant 17
+             396:             TypePointer Output 7(fvec4)
+397(gl_FragColor):    396(ptr) Variable Output
+             413:             TypeVector 18(int) 4
+             414:             TypePointer UniformConstant 413(ivec4)
+       415(uiv4):    414(ptr) Variable UniformConstant
+             416:             TypePointer UniformConstant 217(bool)
+         417(ub):    416(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+            9(v):      8(ptr) Variable Function
+           20(i):     19(ptr) Variable Function
+          219(b):    218(ptr) Variable Function
+          318(f):    131(ptr) Variable Function
+             398:      8(ptr) Variable Function
+              12:    7(fvec4) Load 11(uv4)
+              13:    7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
+                              Store 9(v) 13
+              14:    7(fvec4) Load 9(v)
+              15:    7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14
+              16:    7(fvec4) Load 9(v)
+              17:    7(fvec4) FAdd 16 15
+                              Store 9(v) 17
+              23:     18(int) Load 22(ui)
+              24:     18(int) Load 22(ui)
+              25:     18(int) IMul 23 24
+                              Store 20(i) 25
+              26:    7(fvec4) Load 9(v)
+              27:    7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26
+              28:    7(fvec4) Load 9(v)
+              29:    7(fvec4) FAdd 28 27
+                              Store 9(v) 29
+              30:    7(fvec4) Load 9(v)
+              31:    7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30
+              32:    7(fvec4) Load 9(v)
+              33:    7(fvec4) FAdd 32 31
+                              Store 9(v) 33
+              34:    7(fvec4) Load 9(v)
+              35:    7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34
+              36:    7(fvec4) Load 9(v)
+              37:    7(fvec4) FAdd 36 35
+                              Store 9(v) 37
+              38:    7(fvec4) Load 9(v)
+              39:    7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38
+              40:    7(fvec4) Load 9(v)
+              41:    7(fvec4) FAdd 40 39
+                              Store 9(v) 41
+              42:    7(fvec4) Load 9(v)
+              43:    7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42
+              44:    7(fvec4) Load 9(v)
+              45:    7(fvec4) FAdd 44 43
+                              Store 9(v) 45
+              46:    7(fvec4) Load 9(v)
+              47:    7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46
+              48:    7(fvec4) Load 9(v)
+              49:    7(fvec4) FAdd 48 47
+                              Store 9(v) 49
+              50:    7(fvec4) Load 9(v)
+              51:    7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50
+              52:    7(fvec4) Load 9(v)
+              53:    7(fvec4) FAdd 52 51
+                              Store 9(v) 53
+              54:    7(fvec4) Load 9(v)
+              55:    7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54
+              56:    7(fvec4) Load 9(v)
+              57:    7(fvec4) FAdd 56 55
+                              Store 9(v) 57
+              58:    7(fvec4) Load 9(v)
+              59:    7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58
+              60:    7(fvec4) Load 9(v)
+              61:    7(fvec4) FAdd 60 59
+                              Store 9(v) 61
+              62:    7(fvec4) Load 9(v)
+              63:    7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62
+              64:    7(fvec4) Load 9(v)
+              65:    7(fvec4) FAdd 64 63
+                              Store 9(v) 65
+              66:    7(fvec4) Load 9(v)
+              67:    7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66
+              68:    7(fvec4) Load 9(v)
+              69:    7(fvec4) FAdd 68 67
+                              Store 9(v) 69
+              70:    7(fvec4) Load 9(v)
+              71:    7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70
+              72:    7(fvec4) Load 9(v)
+              73:    7(fvec4) FAdd 72 71
+                              Store 9(v) 73
+              74:    7(fvec4) Load 9(v)
+              75:    7(fvec4) Load 9(v)
+              76:    7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75
+              77:    7(fvec4) Load 9(v)
+              78:    7(fvec4) FAdd 77 76
+                              Store 9(v) 78
+              79:    7(fvec4) Load 9(v)
+              80:    7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79
+              81:    7(fvec4) Load 9(v)
+              82:    7(fvec4) FAdd 81 80
+                              Store 9(v) 82
+              83:    7(fvec4) Load 9(v)
+              84:    7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83
+              85:    7(fvec4) Load 9(v)
+              86:    7(fvec4) FAdd 85 84
+                              Store 9(v) 86
+              87:    7(fvec4) Load 9(v)
+              88:    7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87
+              89:    7(fvec4) Load 9(v)
+              90:    7(fvec4) FAdd 89 88
+                              Store 9(v) 90
+              91:    7(fvec4) Load 9(v)
+              92:    7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91
+              93:    7(fvec4) Load 9(v)
+              94:    7(fvec4) FAdd 93 92
+                              Store 9(v) 94
+              95:    7(fvec4) Load 9(v)
+              96:    7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95
+              97:    7(fvec4) Load 9(v)
+              98:    7(fvec4) FAdd 97 96
+                              Store 9(v) 98
+              99:    7(fvec4) Load 9(v)
+             100:    7(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99
+             101:    7(fvec4) Load 9(v)
+             102:    7(fvec4) FAdd 101 100
+                              Store 9(v) 102
+             103:    7(fvec4) Load 9(v)
+             104:    7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103
+             105:    7(fvec4) Load 9(v)
+             106:    7(fvec4) FAdd 105 104
+                              Store 9(v) 106
+             107:    7(fvec4) Load 9(v)
+             108:    7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107
+             109:    7(fvec4) Load 9(v)
+             110:    7(fvec4) FAdd 109 108
+                              Store 9(v) 110
+             111:    7(fvec4) Load 9(v)
+             112:    7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111
+             113:    7(fvec4) Load 9(v)
+             114:    7(fvec4) FAdd 113 112
+                              Store 9(v) 114
+             115:    7(fvec4) Load 9(v)
+             116:    7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115
+             117:    7(fvec4) Load 9(v)
+             118:    7(fvec4) FAdd 117 116
+                              Store 9(v) 118
+             119:    7(fvec4) Load 9(v)
+             120:    7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119
+             121:    7(fvec4) Load 9(v)
+             122:    7(fvec4) FAdd 121 120
+                              Store 9(v) 122
+             123:    7(fvec4) Load 9(v)
+             124:    7(fvec4) Load 9(v)
+             125:    7(fvec4) FMod 123 124
+             126:    7(fvec4) Load 9(v)
+             127:    7(fvec4) FAdd 126 125
+                              Store 9(v) 127
+             128:    7(fvec4) Load 9(v)
+             132:    131(ptr) AccessChain 9(v) 130
+             133:    6(float) Load 132
+             134:    7(fvec4) CompositeConstruct 133 133 133 133
+             135:    7(fvec4) FMod 128 134
+             136:    7(fvec4) Load 9(v)
+             137:    7(fvec4) FAdd 136 135
+                              Store 9(v) 137
+             138:    7(fvec4) Load 9(v)
+             139:    7(fvec4) Load 11(uv4)
+             140:    7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 138 139
+             141:    7(fvec4) Load 9(v)
+             142:    7(fvec4) FAdd 141 140
+                              Store 9(v) 142
+             143:    7(fvec4) Load 9(v)
+             144:    7(fvec4) Load 11(uv4)
+             145:    7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 143 144
+             146:    7(fvec4) Load 9(v)
+             147:    7(fvec4) FAdd 146 145
+                              Store 9(v) 147
+             148:    7(fvec4) Load 9(v)
+             149:    7(fvec4) Load 11(uv4)
+             150:    7(fvec4) Load 11(uv4)
+             151:    7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 148 149 150
+             152:    7(fvec4) Load 9(v)
+             153:    7(fvec4) FAdd 152 151
+                              Store 9(v) 153
+             154:    7(fvec4) Load 9(v)
+             155:    7(fvec4) Load 9(v)
+             156:    7(fvec4) Load 9(v)
+             157:    7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 154 155 156
+             158:    7(fvec4) Load 9(v)
+             159:    7(fvec4) FAdd 158 157
+                              Store 9(v) 159
+             160:    7(fvec4) Load 9(v)
+             161:    7(fvec4) Load 9(v)
+             162:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 160 161
+             163:    7(fvec4) Load 9(v)
+             164:    7(fvec4) FAdd 163 162
+                              Store 9(v) 164
+             165:    7(fvec4) Load 9(v)
+             166:    7(fvec4) Load 9(v)
+             167:    7(fvec4) Load 9(v)
+             168:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 165 166 167
+             169:    7(fvec4) Load 9(v)
+             170:    7(fvec4) FAdd 169 168
+                              Store 9(v) 170
+             173:    6(float) Load 172(uf)
+             174:    7(fvec4) Load 9(v)
+             175:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 173 174
+             176:    7(fvec4) Load 9(v)
+             177:    7(fvec4) FAdd 176 175
+                              Store 9(v) 177
+             178:    6(float) Load 172(uf)
+             179:    6(float) Load 172(uf)
+             180:    7(fvec4) Load 9(v)
+             181:    7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 178 179 180
+             182:    7(fvec4) Load 9(v)
+             183:    7(fvec4) FAdd 182 181
+                              Store 9(v) 183
+             184:    7(fvec4) Load 9(v)
+             185:    7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 184
+             186:    7(fvec4) Load 9(v)
+             187:    7(fvec4) FAdd 186 185
+                              Store 9(v) 187
+             188:    7(fvec4) Load 9(v)
+             189:    7(fvec4) Load 9(v)
+             190:    7(fvec4) Load 9(v)
+             191:    7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 188 189 190
+             192:    7(fvec4) Load 9(v)
+             193:    7(fvec4) FAdd 192 191
+                              Store 9(v) 193
+             194:    7(fvec4) Load 9(v)
+             195:    7(fvec4) Load 9(v)
+             196:    7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 194 195
+             197:    7(fvec4) Load 9(v)
+             198:    7(fvec4) FAdd 197 196
+                              Store 9(v) 198
+             199:    7(fvec4) Load 9(v)
+             200:    7(fvec4) Load 9(v)
+             201:    6(float) Load 172(uf)
+             202:    7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 199 200 201
+             203:    7(fvec4) Load 9(v)
+             204:    7(fvec4) FAdd 203 202
+                              Store 9(v) 204
+             205:    7(fvec4) Load 9(v)
+             206:    7(fvec4) DPdx 205
+             207:    7(fvec4) Load 9(v)
+             208:    7(fvec4) FAdd 207 206
+                              Store 9(v) 208
+             209:    7(fvec4) Load 9(v)
+             210:    7(fvec4) DPdy 209
+             211:    7(fvec4) Load 9(v)
+             212:    7(fvec4) FAdd 211 210
+                              Store 9(v) 212
+             213:    7(fvec4) Load 9(v)
+             214:    7(fvec4) Fwidth 213
+             215:    7(fvec4) Load 9(v)
+             216:    7(fvec4) FAdd 215 214
+                              Store 9(v) 216
+             220:    7(fvec4) Load 9(v)
+             221:    7(fvec4) Load 11(uv4)
+             223:  222(bvec4) FOrdLessThan 220 221
+             224:   217(bool) Any 223
+                              Store 219(b) 224
+             225:   217(bool) Load 219(b)
+                              SelectionMerge 227 None
+                              BranchConditional 225 226 227
+             226:               Label
+             228:    7(fvec4)   Load 9(v)
+             229:    7(fvec4)   Load 11(uv4)
+             230:  222(bvec4)   FOrdLessThanEqual 228 229
+             231:   217(bool)   Any 230
+                                Branch 227
+             227:             Label
+             232:   217(bool) Phi 225 5 231 226
+                              Store 219(b) 232
+             233:   217(bool) Load 219(b)
+                              SelectionMerge 235 None
+                              BranchConditional 233 234 235
+             234:               Label
+             236:    7(fvec4)   Load 9(v)
+             237:    7(fvec4)   Load 11(uv4)
+             238:  222(bvec4)   FOrdGreaterThan 236 237
+             239:   217(bool)   Any 238
+                                Branch 235
+             235:             Label
+             240:   217(bool) Phi 233 227 239 234
+                              Store 219(b) 240
+             241:   217(bool) Load 219(b)
+                              SelectionMerge 243 None
+                              BranchConditional 241 242 243
+             242:               Label
+             244:    7(fvec4)   Load 9(v)
+             245:    7(fvec4)   Load 11(uv4)
+             246:  222(bvec4)   FOrdGreaterThanEqual 244 245
+             247:   217(bool)   Any 246
+                                Branch 243
+             243:             Label
+             248:   217(bool) Phi 241 235 247 242
+                              Store 219(b) 248
+             249:   217(bool) Load 219(b)
+                              SelectionMerge 251 None
+                              BranchConditional 249 250 251
+             250:               Label
+             254:  222(bvec4)   Load 253(ub41)
+             256:  222(bvec4)   Load 255(ub42)
+             257:  222(bvec4)   IEqual 254 256
+             258:   217(bool)   Any 257
+                                Branch 251
+             251:             Label
+             259:   217(bool) Phi 249 243 258 250
+                              Store 219(b) 259
+             260:   217(bool) Load 219(b)
+                              SelectionMerge 262 None
+                              BranchConditional 260 261 262
+             261:               Label
+             263:  222(bvec4)   Load 253(ub41)
+             264:  222(bvec4)   Load 255(ub42)
+             265:  222(bvec4)   INotEqual 263 264
+             266:   217(bool)   Any 265
+                                Branch 262
+             262:             Label
+             267:   217(bool) Phi 260 251 266 261
+                              Store 219(b) 267
+             268:   217(bool) Load 219(b)
+             269:  222(bvec4) Load 253(ub41)
+             270:   217(bool) Any 269
+             271:   217(bool) LogicalAnd 268 270
+                              Store 219(b) 271
+             272:   217(bool) Load 219(b)
+             273:  222(bvec4) Load 253(ub41)
+             274:   217(bool) All 273
+             275:   217(bool) LogicalAnd 272 274
+                              Store 219(b) 275
+             276:   217(bool) Load 219(b)
+                              SelectionMerge 278 None
+                              BranchConditional 276 277 278
+             277:               Label
+             279:  222(bvec4)   Load 253(ub41)
+             280:  222(bvec4)   LogicalNot 279
+             281:   217(bool)   Any 280
+                                Branch 278
+             278:             Label
+             282:   217(bool) Phi 276 262 281 277
+                              Store 219(b) 282
+             283:     18(int) Load 20(i)
+             284:     18(int) Load 22(ui)
+             285:     18(int) IAdd 283 284
+             286:     18(int) Load 20(i)
+             287:     18(int) IMul 285 286
+             288:     18(int) Load 22(ui)
+             289:     18(int) ISub 287 288
+             290:     18(int) Load 20(i)
+             291:     18(int) SDiv 289 290
+                              Store 20(i) 291
+             292:     18(int) Load 20(i)
+             293:     18(int) Load 22(ui)
+             294:     18(int) SMod 292 293
+                              Store 20(i) 294
+             295:     18(int) Load 20(i)
+             296:     18(int) Load 22(ui)
+             297:   217(bool) IEqual 295 296
+             298:   217(bool) LogicalNot 297
+                              SelectionMerge 300 None
+                              BranchConditional 298 299 300
+             299:               Label
+             301:     18(int)   Load 20(i)
+             302:     18(int)   Load 22(ui)
+             303:   217(bool)   INotEqual 301 302
+             304:     18(int)   Load 20(i)
+             305:     18(int)   Load 22(ui)
+             306:   217(bool)   IEqual 304 305
+             307:   217(bool)   LogicalAnd 303 306
+             308:     18(int)   Load 20(i)
+             310:   217(bool)   INotEqual 308 309
+             311:   217(bool)   LogicalNotEqual 307 310
+                                Branch 300
+             300:             Label
+             312:   217(bool) Phi 297 278 311 299
+                              SelectionMerge 314 None
+                              BranchConditional 312 313 314
+             313:               Label
+             315:     18(int)   Load 20(i)
+             317:     18(int)   IAdd 315 316
+                                Store 20(i) 317
+                                Branch 314
+             314:             Label
+             319:    6(float) Load 172(uf)
+             320:    6(float) Load 172(uf)
+             321:    6(float) FAdd 319 320
+             322:    6(float) Load 172(uf)
+             323:    6(float) FMul 321 322
+             324:    6(float) Load 172(uf)
+             325:    6(float) FSub 323 324
+             326:    6(float) Load 172(uf)
+             327:    6(float) FDiv 325 326
+                              Store 318(f) 327
+             328:    7(fvec4) Load 9(v)
+             329:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 328
+             330:    6(float) Load 318(f)
+             331:    6(float) FAdd 330 329
+                              Store 318(f) 331
+             332:    7(fvec4) Load 9(v)
+             333:    7(fvec4) Load 9(v)
+             334:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 332 333
+             335:    6(float) Load 318(f)
+             336:    6(float) FAdd 335 334
+                              Store 318(f) 336
+             337:    7(fvec4) Load 9(v)
+             338:    7(fvec4) Load 9(v)
+             339:    6(float) Dot 337 338
+             340:    6(float) Load 318(f)
+             341:    6(float) FAdd 340 339
+                              Store 318(f) 341
+             342:    6(float) Load 318(f)
+             343:    6(float) Load 172(uf)
+             344:    6(float) FMul 342 343
+             345:    6(float) Load 318(f)
+             346:    6(float) FAdd 345 344
+                              Store 318(f) 346
+             348:    7(fvec4) Load 9(v)
+             349:  347(fvec3) VectorShuffle 348 348 0 1 2
+             350:    7(fvec4) Load 9(v)
+             351:  347(fvec3) VectorShuffle 350 350 0 1 2
+             352:  347(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 349 351
+             353:    6(float) CompositeExtract 352 0
+             354:    6(float) Load 318(f)
+             355:    6(float) FAdd 354 353
+                              Store 318(f) 355
+             356:    6(float) Load 318(f)
+             357:    6(float) Load 172(uf)
+             358:   217(bool) FOrdEqual 356 357
+             359:   217(bool) LogicalNot 358
+                              SelectionMerge 361 None
+                              BranchConditional 359 360 361
+             360:               Label
+             362:    6(float)   Load 318(f)
+             363:    6(float)   Load 172(uf)
+             364:   217(bool)   FOrdNotEqual 362 363
+             365:    6(float)   Load 318(f)
+             367:   217(bool)   FOrdNotEqual 365 366
+             368:   217(bool)   LogicalAnd 364 367
+                                Branch 361
+             361:             Label
+             369:   217(bool) Phi 358 314 368 360
+                              SelectionMerge 371 None
+                              BranchConditional 369 370 371
+             370:               Label
+             372:    6(float)   Load 318(f)
+             374:    6(float)   FAdd 372 373
+                                Store 318(f) 374
+                                Branch 371
+             371:             Label
+             375:     18(int) Load 22(ui)
+             376:     18(int) Load 20(i)
+             377:     18(int) BitwiseAnd 376 375
+                              Store 20(i) 377
+             379:     18(int) Load 20(i)
+             380:     18(int) BitwiseOr 379 378
+                              Store 20(i) 380
+             381:     18(int) Load 22(ui)
+             382:     18(int) Load 20(i)
+             383:     18(int) BitwiseXor 382 381
+                              Store 20(i) 383
+             385:     18(int) Load 20(i)
+             386:     18(int) SMod 385 384
+                              Store 20(i) 386
+             387:     18(int) Load 20(i)
+             388:     18(int) ShiftRightArithmetic 387 309
+                              Store 20(i) 388
+             389:     18(int) Load 22(ui)
+             390:     18(int) Load 20(i)
+             391:     18(int) ShiftLeftLogical 390 389
+                              Store 20(i) 391
+             392:     18(int) Load 20(i)
+             393:     18(int) Not 392
+                              Store 20(i) 393
+             394:   217(bool) Load 219(b)
+             395:   217(bool) LogicalNot 394
+                              Store 219(b) 395
+             399:   217(bool) Load 219(b)
+                              SelectionMerge 401 None
+                              BranchConditional 399 400 410
+             400:               Label
+             402:     18(int)   Load 20(i)
+             403:    6(float)   ConvertSToF 402
+             404:    7(fvec4)   CompositeConstruct 403 403 403 403
+             405:    6(float)   Load 318(f)
+             406:    7(fvec4)   CompositeConstruct 405 405 405 405
+             407:    7(fvec4)   FAdd 404 406
+             408:    7(fvec4)   Load 9(v)
+             409:    7(fvec4)   FAdd 407 408
+                                Store 398 409
+                                Branch 401
+             410:               Label
+             411:    7(fvec4)   Load 9(v)
+                                Store 398 411
+                                Branch 401
+             401:             Label
+             412:    7(fvec4) Load 398
+                              Store 397(gl_FragColor) 412
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out
index 811f967..b434c70 100755
--- a/Test/baseResults/spv.accessChain.frag.out
+++ b/Test/baseResults/spv.accessChain.frag.out
@@ -1,322 +1,322 @@
-spv.accessChain.frag

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 197

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 65

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 420

-                              Name 4  "main"

-                              Name 8  "S"

-                              MemberName 8(S) 0  "color"

-                              Name 11  "GetColor1(struct-S-vf31;"

-                              Name 10  "i"

-                              Name 18  "GetColor2(struct-S-vf31;i1;"

-                              Name 16  "i"

-                              Name 17  "comp"

-                              Name 22  "GetColor3(struct-S-vf31;i1;"

-                              Name 20  "i"

-                              Name 21  "comp"

-                              Name 26  "GetColor4(struct-S-vf31;i1;"

-                              Name 24  "i"

-                              Name 25  "comp"

-                              Name 30  "GetColor5(struct-S-vf31;i1;"

-                              Name 28  "i"

-                              Name 29  "comp"

-                              Name 34  "GetColor6(struct-S-vf31;i1;"

-                              Name 32  "i"

-                              Name 33  "comp"

-                              Name 38  "GetColor7(struct-S-vf31;i1;"

-                              Name 36  "i"

-                              Name 37  "comp"

-                              Name 42  "GetColor8(struct-S-vf31;i1;"

-                              Name 40  "i"

-                              Name 41  "comp"

-                              Name 46  "GetColor9(struct-S-vf31;i1;"

-                              Name 44  "i"

-                              Name 45  "comp"

-                              Name 50  "GetColor10(struct-S-vf31;i1;"

-                              Name 48  "i"

-                              Name 49  "comp"

-                              Name 54  "GetColor11(struct-S-vf31;i1;"

-                              Name 52  "i"

-                              Name 53  "comp"

-                              Name 58  "GetColor12(struct-S-vf31;i1;"

-                              Name 56  "i"

-                              Name 57  "comp"

-                              Name 62  "GetColor13(struct-S-vf31;i1;"

-                              Name 60  "i"

-                              Name 61  "comp"

-                              Name 65  "OutColor"

-                              Name 144  "s"

-                              Name 149  "u"

-                              Name 150  "param"

-                              Name 154  "param"

-                              Name 158  "param"

-                              Name 162  "param"

-                              Name 166  "param"

-                              Name 170  "param"

-                              Name 174  "param"

-                              Name 178  "param"

-                              Name 182  "param"

-                              Name 186  "param"

-                              Name 190  "param"

-                              Name 194  "param"

-                              Decorate 65(OutColor) Location 0

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 3

-            8(S):             TypeStruct 7(fvec3)

-               9:             TypeFunction 2 8(S)

-              13:             TypeInt 32 1

-              14:             TypePointer Function 13(int)

-              15:             TypeFunction 2 8(S) 14(ptr)

-              64:             TypePointer Output 7(fvec3)

-    65(OutColor):     64(ptr) Variable Output

-              66:     13(int) Constant 0

-              67:             TypeInt 32 0

-              68:     67(int) Constant 0

-              95:             TypeVector 6(float) 2

-             109:     67(int) Constant 2

-             136:             TypePointer Output 6(float)

-             141:    6(float) Constant 0

-             142:    7(fvec3) ConstantComposite 141 141 141

-             143:             TypePointer Function 8(S)

-             148:             TypePointer UniformConstant 13(int)

-          149(u):    148(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-          144(s):    143(ptr) Variable Function

-      150(param):     14(ptr) Variable Function

-      154(param):     14(ptr) Variable Function

-      158(param):     14(ptr) Variable Function

-      162(param):     14(ptr) Variable Function

-      166(param):     14(ptr) Variable Function

-      170(param):     14(ptr) Variable Function

-      174(param):     14(ptr) Variable Function

-      178(param):     14(ptr) Variable Function

-      182(param):     14(ptr) Variable Function

-      186(param):     14(ptr) Variable Function

-      190(param):     14(ptr) Variable Function

-      194(param):     14(ptr) Variable Function

-                              Store 65(OutColor) 142

-             145:        8(S) Load 144(s)

-             146:           2 FunctionCall 11(GetColor1(struct-S-vf31;) 145

-             147:        8(S) Load 144(s)

-             151:     13(int) Load 149(u)

-                              Store 150(param) 151

-             152:           2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 147 150(param)

-             153:        8(S) Load 144(s)

-             155:     13(int) Load 149(u)

-                              Store 154(param) 155

-             156:           2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 153 154(param)

-             157:        8(S) Load 144(s)

-             159:     13(int) Load 149(u)

-                              Store 158(param) 159

-             160:           2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 157 158(param)

-             161:        8(S) Load 144(s)

-             163:     13(int) Load 149(u)

-                              Store 162(param) 163

-             164:           2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 161 162(param)

-             165:        8(S) Load 144(s)

-             167:     13(int) Load 149(u)

-                              Store 166(param) 167

-             168:           2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 165 166(param)

-             169:        8(S) Load 144(s)

-             171:     13(int) Load 149(u)

-                              Store 170(param) 171

-             172:           2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 169 170(param)

-             173:        8(S) Load 144(s)

-             175:     13(int) Load 149(u)

-                              Store 174(param) 175

-             176:           2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 173 174(param)

-             177:        8(S) Load 144(s)

-             179:     13(int) Load 149(u)

-                              Store 178(param) 179

-             180:           2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 177 178(param)

-             181:        8(S) Load 144(s)

-             183:     13(int) Load 149(u)

-                              Store 182(param) 183

-             184:           2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 181 182(param)

-             185:        8(S) Load 144(s)

-             187:     13(int) Load 149(u)

-                              Store 186(param) 187

-             188:           2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 185 186(param)

-             189:        8(S) Load 144(s)

-             191:     13(int) Load 149(u)

-                              Store 190(param) 191

-             192:           2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 189 190(param)

-             193:        8(S) Load 144(s)

-             195:     13(int) Load 149(u)

-                              Store 194(param) 195

-             196:           2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 193 194(param)

-                              Return

-                              FunctionEnd

-11(GetColor1(struct-S-vf31;):           2 Function None 9

-           10(i):        8(S) FunctionParameter

-              12:             Label

-              69:    6(float) CompositeExtract 10(i) 0 0

-              70:    7(fvec3) Load 65(OutColor)

-              71:    7(fvec3) CompositeConstruct 69 69 69

-              72:    7(fvec3) FAdd 70 71

-                              Store 65(OutColor) 72

-                              Return

-                              FunctionEnd

-18(GetColor2(struct-S-vf31;i1;):           2 Function None 15

-           16(i):        8(S) FunctionParameter

-        17(comp):     14(ptr) FunctionParameter

-              19:             Label

-              73:     13(int) Load 17(comp)

-              74:    7(fvec3) CompositeExtract 16(i) 0

-              75:    6(float) VectorExtractDynamic 74 73

-              76:    7(fvec3) Load 65(OutColor)

-              77:    7(fvec3) CompositeConstruct 75 75 75

-              78:    7(fvec3) FAdd 76 77

-                              Store 65(OutColor) 78

-                              Return

-                              FunctionEnd

-22(GetColor3(struct-S-vf31;i1;):           2 Function None 15

-           20(i):        8(S) FunctionParameter

-        21(comp):     14(ptr) FunctionParameter

-              23:             Label

-              79:     13(int) Load 21(comp)

-              80:    7(fvec3) CompositeExtract 20(i) 0

-              81:    6(float) VectorExtractDynamic 80 79

-              82:    7(fvec3) Load 65(OutColor)

-              83:    7(fvec3) CompositeConstruct 81 81 81

-              84:    7(fvec3) FAdd 82 83

-                              Store 65(OutColor) 84

-                              Return

-                              FunctionEnd

-26(GetColor4(struct-S-vf31;i1;):           2 Function None 15

-           24(i):        8(S) FunctionParameter

-        25(comp):     14(ptr) FunctionParameter

-              27:             Label

-              85:     13(int) Load 25(comp)

-              86:    7(fvec3) CompositeExtract 24(i) 0

-              87:    6(float) VectorExtractDynamic 86 85

-              88:    7(fvec3) Load 65(OutColor)

-              89:    7(fvec3) CompositeConstruct 87 87 87

-              90:    7(fvec3) FAdd 88 89

-                              Store 65(OutColor) 90

-                              Return

-                              FunctionEnd

-30(GetColor5(struct-S-vf31;i1;):           2 Function None 15

-           28(i):        8(S) FunctionParameter

-        29(comp):     14(ptr) FunctionParameter

-              31:             Label

-              91:    7(fvec3) CompositeExtract 28(i) 0

-              92:    7(fvec3) Load 65(OutColor)

-              93:    7(fvec3) FAdd 92 91

-                              Store 65(OutColor) 93

-                              Return

-                              FunctionEnd

-34(GetColor6(struct-S-vf31;i1;):           2 Function None 15

-           32(i):        8(S) FunctionParameter

-        33(comp):     14(ptr) FunctionParameter

-              35:             Label

-              94:     13(int) Load 33(comp)

-              96:    7(fvec3) CompositeExtract 32(i) 0

-              97:   95(fvec2) VectorShuffle 96 96 1 0

-              98:    6(float) VectorExtractDynamic 97 94

-              99:    7(fvec3) Load 65(OutColor)

-             100:    7(fvec3) CompositeConstruct 98 98 98

-             101:    7(fvec3) FAdd 99 100

-                              Store 65(OutColor) 101

-                              Return

-                              FunctionEnd

-38(GetColor7(struct-S-vf31;i1;):           2 Function None 15

-           36(i):        8(S) FunctionParameter

-        37(comp):     14(ptr) FunctionParameter

-              39:             Label

-             102:    7(fvec3) CompositeExtract 36(i) 0

-             103:   95(fvec2) VectorShuffle 102 102 0 1

-             104:    7(fvec3) Load 65(OutColor)

-             105:   95(fvec2) VectorShuffle 104 104 0 1

-             106:   95(fvec2) FAdd 105 103

-             107:    7(fvec3) Load 65(OutColor)

-             108:    7(fvec3) VectorShuffle 107 106 3 4 2

-                              Store 65(OutColor) 108

-                              Return

-                              FunctionEnd

-42(GetColor8(struct-S-vf31;i1;):           2 Function None 15

-           40(i):        8(S) FunctionParameter

-        41(comp):     14(ptr) FunctionParameter

-              43:             Label

-             110:    6(float) CompositeExtract 40(i) 0 2

-             111:    7(fvec3) Load 65(OutColor)

-             112:    7(fvec3) CompositeConstruct 110 110 110

-             113:    7(fvec3) FAdd 111 112

-                              Store 65(OutColor) 113

-                              Return

-                              FunctionEnd

-46(GetColor9(struct-S-vf31;i1;):           2 Function None 15

-           44(i):        8(S) FunctionParameter

-        45(comp):     14(ptr) FunctionParameter

-              47:             Label

-             114:    7(fvec3) CompositeExtract 44(i) 0

-             115:    7(fvec3) Load 65(OutColor)

-             116:    7(fvec3) VectorShuffle 115 115 2 0 1

-             117:    7(fvec3) FAdd 116 114

-             118:    7(fvec3) Load 65(OutColor)

-             119:    7(fvec3) VectorShuffle 118 117 4 5 3

-                              Store 65(OutColor) 119

-                              Return

-                              FunctionEnd

-50(GetColor10(struct-S-vf31;i1;):           2 Function None 15

-           48(i):        8(S) FunctionParameter

-        49(comp):     14(ptr) FunctionParameter

-              51:             Label

-             120:    7(fvec3) CompositeExtract 48(i) 0

-             121:   95(fvec2) VectorShuffle 120 120 0 1

-             122:    7(fvec3) Load 65(OutColor)

-             123:   95(fvec2) VectorShuffle 122 122 2 1

-             124:   95(fvec2) FAdd 123 121

-             125:    7(fvec3) Load 65(OutColor)

-             126:    7(fvec3) VectorShuffle 125 124 0 4 3

-                              Store 65(OutColor) 126

-                              Return

-                              FunctionEnd

-54(GetColor11(struct-S-vf31;i1;):           2 Function None 15

-           52(i):        8(S) FunctionParameter

-        53(comp):     14(ptr) FunctionParameter

-              55:             Label

-             127:    7(fvec3) CompositeExtract 52(i) 0

-             128:   95(fvec2) VectorShuffle 127 127 0 1

-             129:    7(fvec3) Load 65(OutColor)

-             130:   95(fvec2) VectorShuffle 129 129 0 2

-             131:   95(fvec2) FAdd 130 128

-             132:    7(fvec3) Load 65(OutColor)

-             133:    7(fvec3) VectorShuffle 132 131 3 1 4

-                              Store 65(OutColor) 133

-                              Return

-                              FunctionEnd

-58(GetColor12(struct-S-vf31;i1;):           2 Function None 15

-           56(i):        8(S) FunctionParameter

-        57(comp):     14(ptr) FunctionParameter

-              59:             Label

-             134:     13(int) Load 57(comp)

-             135:    6(float) CompositeExtract 56(i) 0 0

-             137:    136(ptr) AccessChain 65(OutColor) 134

-             138:    6(float) Load 137

-             139:    6(float) FAdd 138 135

-             140:    136(ptr) AccessChain 65(OutColor) 134

-                              Store 140 139

-                              Return

-                              FunctionEnd

-62(GetColor13(struct-S-vf31;i1;):           2 Function None 15

-           60(i):        8(S) FunctionParameter

-        61(comp):     14(ptr) FunctionParameter

-              63:             Label

-                              Return

-                              FunctionEnd

+spv.accessChain.frag
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 197
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 65
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 420
+                              Name 4  "main"
+                              Name 8  "S"
+                              MemberName 8(S) 0  "color"
+                              Name 11  "GetColor1(struct-S-vf31;"
+                              Name 10  "i"
+                              Name 18  "GetColor2(struct-S-vf31;i1;"
+                              Name 16  "i"
+                              Name 17  "comp"
+                              Name 22  "GetColor3(struct-S-vf31;i1;"
+                              Name 20  "i"
+                              Name 21  "comp"
+                              Name 26  "GetColor4(struct-S-vf31;i1;"
+                              Name 24  "i"
+                              Name 25  "comp"
+                              Name 30  "GetColor5(struct-S-vf31;i1;"
+                              Name 28  "i"
+                              Name 29  "comp"
+                              Name 34  "GetColor6(struct-S-vf31;i1;"
+                              Name 32  "i"
+                              Name 33  "comp"
+                              Name 38  "GetColor7(struct-S-vf31;i1;"
+                              Name 36  "i"
+                              Name 37  "comp"
+                              Name 42  "GetColor8(struct-S-vf31;i1;"
+                              Name 40  "i"
+                              Name 41  "comp"
+                              Name 46  "GetColor9(struct-S-vf31;i1;"
+                              Name 44  "i"
+                              Name 45  "comp"
+                              Name 50  "GetColor10(struct-S-vf31;i1;"
+                              Name 48  "i"
+                              Name 49  "comp"
+                              Name 54  "GetColor11(struct-S-vf31;i1;"
+                              Name 52  "i"
+                              Name 53  "comp"
+                              Name 58  "GetColor12(struct-S-vf31;i1;"
+                              Name 56  "i"
+                              Name 57  "comp"
+                              Name 62  "GetColor13(struct-S-vf31;i1;"
+                              Name 60  "i"
+                              Name 61  "comp"
+                              Name 65  "OutColor"
+                              Name 144  "s"
+                              Name 149  "u"
+                              Name 150  "param"
+                              Name 154  "param"
+                              Name 158  "param"
+                              Name 162  "param"
+                              Name 166  "param"
+                              Name 170  "param"
+                              Name 174  "param"
+                              Name 178  "param"
+                              Name 182  "param"
+                              Name 186  "param"
+                              Name 190  "param"
+                              Name 194  "param"
+                              Decorate 65(OutColor) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+            8(S):             TypeStruct 7(fvec3)
+               9:             TypeFunction 2 8(S)
+              13:             TypeInt 32 1
+              14:             TypePointer Function 13(int)
+              15:             TypeFunction 2 8(S) 14(ptr)
+              64:             TypePointer Output 7(fvec3)
+    65(OutColor):     64(ptr) Variable Output
+              66:     13(int) Constant 0
+              67:             TypeInt 32 0
+              68:     67(int) Constant 0
+              95:             TypeVector 6(float) 2
+             109:     67(int) Constant 2
+             136:             TypePointer Output 6(float)
+             141:    6(float) Constant 0
+             142:    7(fvec3) ConstantComposite 141 141 141
+             143:             TypePointer Function 8(S)
+             148:             TypePointer UniformConstant 13(int)
+          149(u):    148(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+          144(s):    143(ptr) Variable Function
+      150(param):     14(ptr) Variable Function
+      154(param):     14(ptr) Variable Function
+      158(param):     14(ptr) Variable Function
+      162(param):     14(ptr) Variable Function
+      166(param):     14(ptr) Variable Function
+      170(param):     14(ptr) Variable Function
+      174(param):     14(ptr) Variable Function
+      178(param):     14(ptr) Variable Function
+      182(param):     14(ptr) Variable Function
+      186(param):     14(ptr) Variable Function
+      190(param):     14(ptr) Variable Function
+      194(param):     14(ptr) Variable Function
+                              Store 65(OutColor) 142
+             145:        8(S) Load 144(s)
+             146:           2 FunctionCall 11(GetColor1(struct-S-vf31;) 145
+             147:        8(S) Load 144(s)
+             151:     13(int) Load 149(u)
+                              Store 150(param) 151
+             152:           2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 147 150(param)
+             153:        8(S) Load 144(s)
+             155:     13(int) Load 149(u)
+                              Store 154(param) 155
+             156:           2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 153 154(param)
+             157:        8(S) Load 144(s)
+             159:     13(int) Load 149(u)
+                              Store 158(param) 159
+             160:           2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 157 158(param)
+             161:        8(S) Load 144(s)
+             163:     13(int) Load 149(u)
+                              Store 162(param) 163
+             164:           2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 161 162(param)
+             165:        8(S) Load 144(s)
+             167:     13(int) Load 149(u)
+                              Store 166(param) 167
+             168:           2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 165 166(param)
+             169:        8(S) Load 144(s)
+             171:     13(int) Load 149(u)
+                              Store 170(param) 171
+             172:           2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 169 170(param)
+             173:        8(S) Load 144(s)
+             175:     13(int) Load 149(u)
+                              Store 174(param) 175
+             176:           2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 173 174(param)
+             177:        8(S) Load 144(s)
+             179:     13(int) Load 149(u)
+                              Store 178(param) 179
+             180:           2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 177 178(param)
+             181:        8(S) Load 144(s)
+             183:     13(int) Load 149(u)
+                              Store 182(param) 183
+             184:           2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 181 182(param)
+             185:        8(S) Load 144(s)
+             187:     13(int) Load 149(u)
+                              Store 186(param) 187
+             188:           2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 185 186(param)
+             189:        8(S) Load 144(s)
+             191:     13(int) Load 149(u)
+                              Store 190(param) 191
+             192:           2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 189 190(param)
+             193:        8(S) Load 144(s)
+             195:     13(int) Load 149(u)
+                              Store 194(param) 195
+             196:           2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 193 194(param)
+                              Return
+                              FunctionEnd
+11(GetColor1(struct-S-vf31;):           2 Function None 9
+           10(i):        8(S) FunctionParameter
+              12:             Label
+              69:    6(float) CompositeExtract 10(i) 0 0
+              70:    7(fvec3) Load 65(OutColor)
+              71:    7(fvec3) CompositeConstruct 69 69 69
+              72:    7(fvec3) FAdd 70 71
+                              Store 65(OutColor) 72
+                              Return
+                              FunctionEnd
+18(GetColor2(struct-S-vf31;i1;):           2 Function None 15
+           16(i):        8(S) FunctionParameter
+        17(comp):     14(ptr) FunctionParameter
+              19:             Label
+              73:     13(int) Load 17(comp)
+              74:    7(fvec3) CompositeExtract 16(i) 0
+              75:    6(float) VectorExtractDynamic 74 73
+              76:    7(fvec3) Load 65(OutColor)
+              77:    7(fvec3) CompositeConstruct 75 75 75
+              78:    7(fvec3) FAdd 76 77
+                              Store 65(OutColor) 78
+                              Return
+                              FunctionEnd
+22(GetColor3(struct-S-vf31;i1;):           2 Function None 15
+           20(i):        8(S) FunctionParameter
+        21(comp):     14(ptr) FunctionParameter
+              23:             Label
+              79:     13(int) Load 21(comp)
+              80:    7(fvec3) CompositeExtract 20(i) 0
+              81:    6(float) VectorExtractDynamic 80 79
+              82:    7(fvec3) Load 65(OutColor)
+              83:    7(fvec3) CompositeConstruct 81 81 81
+              84:    7(fvec3) FAdd 82 83
+                              Store 65(OutColor) 84
+                              Return
+                              FunctionEnd
+26(GetColor4(struct-S-vf31;i1;):           2 Function None 15
+           24(i):        8(S) FunctionParameter
+        25(comp):     14(ptr) FunctionParameter
+              27:             Label
+              85:     13(int) Load 25(comp)
+              86:    7(fvec3) CompositeExtract 24(i) 0
+              87:    6(float) VectorExtractDynamic 86 85
+              88:    7(fvec3) Load 65(OutColor)
+              89:    7(fvec3) CompositeConstruct 87 87 87
+              90:    7(fvec3) FAdd 88 89
+                              Store 65(OutColor) 90
+                              Return
+                              FunctionEnd
+30(GetColor5(struct-S-vf31;i1;):           2 Function None 15
+           28(i):        8(S) FunctionParameter
+        29(comp):     14(ptr) FunctionParameter
+              31:             Label
+              91:    7(fvec3) CompositeExtract 28(i) 0
+              92:    7(fvec3) Load 65(OutColor)
+              93:    7(fvec3) FAdd 92 91
+                              Store 65(OutColor) 93
+                              Return
+                              FunctionEnd
+34(GetColor6(struct-S-vf31;i1;):           2 Function None 15
+           32(i):        8(S) FunctionParameter
+        33(comp):     14(ptr) FunctionParameter
+              35:             Label
+              94:     13(int) Load 33(comp)
+              96:    7(fvec3) CompositeExtract 32(i) 0
+              97:   95(fvec2) VectorShuffle 96 96 1 0
+              98:    6(float) VectorExtractDynamic 97 94
+              99:    7(fvec3) Load 65(OutColor)
+             100:    7(fvec3) CompositeConstruct 98 98 98
+             101:    7(fvec3) FAdd 99 100
+                              Store 65(OutColor) 101
+                              Return
+                              FunctionEnd
+38(GetColor7(struct-S-vf31;i1;):           2 Function None 15
+           36(i):        8(S) FunctionParameter
+        37(comp):     14(ptr) FunctionParameter
+              39:             Label
+             102:    7(fvec3) CompositeExtract 36(i) 0
+             103:   95(fvec2) VectorShuffle 102 102 0 1
+             104:    7(fvec3) Load 65(OutColor)
+             105:   95(fvec2) VectorShuffle 104 104 0 1
+             106:   95(fvec2) FAdd 105 103
+             107:    7(fvec3) Load 65(OutColor)
+             108:    7(fvec3) VectorShuffle 107 106 3 4 2
+                              Store 65(OutColor) 108
+                              Return
+                              FunctionEnd
+42(GetColor8(struct-S-vf31;i1;):           2 Function None 15
+           40(i):        8(S) FunctionParameter
+        41(comp):     14(ptr) FunctionParameter
+              43:             Label
+             110:    6(float) CompositeExtract 40(i) 0 2
+             111:    7(fvec3) Load 65(OutColor)
+             112:    7(fvec3) CompositeConstruct 110 110 110
+             113:    7(fvec3) FAdd 111 112
+                              Store 65(OutColor) 113
+                              Return
+                              FunctionEnd
+46(GetColor9(struct-S-vf31;i1;):           2 Function None 15
+           44(i):        8(S) FunctionParameter
+        45(comp):     14(ptr) FunctionParameter
+              47:             Label
+             114:    7(fvec3) CompositeExtract 44(i) 0
+             115:    7(fvec3) Load 65(OutColor)
+             116:    7(fvec3) VectorShuffle 115 115 2 0 1
+             117:    7(fvec3) FAdd 116 114
+             118:    7(fvec3) Load 65(OutColor)
+             119:    7(fvec3) VectorShuffle 118 117 4 5 3
+                              Store 65(OutColor) 119
+                              Return
+                              FunctionEnd
+50(GetColor10(struct-S-vf31;i1;):           2 Function None 15
+           48(i):        8(S) FunctionParameter
+        49(comp):     14(ptr) FunctionParameter
+              51:             Label
+             120:    7(fvec3) CompositeExtract 48(i) 0
+             121:   95(fvec2) VectorShuffle 120 120 0 1
+             122:    7(fvec3) Load 65(OutColor)
+             123:   95(fvec2) VectorShuffle 122 122 2 1
+             124:   95(fvec2) FAdd 123 121
+             125:    7(fvec3) Load 65(OutColor)
+             126:    7(fvec3) VectorShuffle 125 124 0 4 3
+                              Store 65(OutColor) 126
+                              Return
+                              FunctionEnd
+54(GetColor11(struct-S-vf31;i1;):           2 Function None 15
+           52(i):        8(S) FunctionParameter
+        53(comp):     14(ptr) FunctionParameter
+              55:             Label
+             127:    7(fvec3) CompositeExtract 52(i) 0
+             128:   95(fvec2) VectorShuffle 127 127 0 1
+             129:    7(fvec3) Load 65(OutColor)
+             130:   95(fvec2) VectorShuffle 129 129 0 2
+             131:   95(fvec2) FAdd 130 128
+             132:    7(fvec3) Load 65(OutColor)
+             133:    7(fvec3) VectorShuffle 132 131 3 1 4
+                              Store 65(OutColor) 133
+                              Return
+                              FunctionEnd
+58(GetColor12(struct-S-vf31;i1;):           2 Function None 15
+           56(i):        8(S) FunctionParameter
+        57(comp):     14(ptr) FunctionParameter
+              59:             Label
+             134:     13(int) Load 57(comp)
+             135:    6(float) CompositeExtract 56(i) 0 0
+             137:    136(ptr) AccessChain 65(OutColor) 134
+             138:    6(float) Load 137
+             139:    6(float) FAdd 138 135
+             140:    136(ptr) AccessChain 65(OutColor) 134
+                              Store 140 139
+                              Return
+                              FunctionEnd
+62(GetColor13(struct-S-vf31;i1;):           2 Function None 15
+           60(i):        8(S) FunctionParameter
+        61(comp):     14(ptr) FunctionParameter
+              63:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out
index b92d93c..ca118d5 100644
--- a/Test/baseResults/spv.aggOps.frag.out
+++ b/Test/baseResults/spv.aggOps.frag.out
@@ -1,9 +1,9 @@
-spv.aggOps.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-Missing functionality: Composite comparison of non-vectors

+spv.aggOps.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+Missing functionality: Composite comparison of non-vectors
diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out
index 5a71c69..5275014 100755
--- a/Test/baseResults/spv.always-discard.frag.out
+++ b/Test/baseResults/spv.always-discard.frag.out
@@ -1,132 +1,132 @@
-spv.always-discard.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 84

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 21

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 9  "white"

-                              Name 12  "black"

-                              Name 15  "color"

-                              Name 18  "x"

-                              Name 21  "tex_coord"

-                              Name 30  "y"

-                              Name 36  "radius"

-                              Name 59  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:    6(float) Constant 1065353216

-              11:    7(fvec4) ConstantComposite 10 10 10 10

-              13:    6(float) Constant 1045220557

-              14:    7(fvec4) ConstantComposite 13 13 13 13

-              17:             TypePointer Function 6(float)

-              19:             TypeVector 6(float) 2

-              20:             TypePointer Input 19(fvec2)

-   21(tex_coord):     20(ptr) Variable Input

-              22:             TypeInt 32 0

-              23:     22(int) Constant 0

-              24:             TypePointer Input 6(float)

-              27:    6(float) Constant 1073741824

-              31:     22(int) Constant 1

-              46:             TypeBool

-              51:    6(float) Constant 1066192077

-              58:             TypePointer Output 7(fvec4)

-59(gl_FragColor):     58(ptr) Variable Output

-              62:    6(float) Constant 1067030938

-              71:    6(float) Constant 1061158912

-              76:    6(float) Constant 1098907648

-         4(main):           2 Function None 3

-               5:             Label

-        9(white):      8(ptr) Variable Function

-       12(black):      8(ptr) Variable Function

-       15(color):      8(ptr) Variable Function

-           18(x):     17(ptr) Variable Function

-           30(y):     17(ptr) Variable Function

-      36(radius):     17(ptr) Variable Function

-                              Store 9(white) 11

-                              Store 12(black) 14

-              16:    7(fvec4) Load 9(white)

-                              Store 15(color) 16

-              25:     24(ptr) AccessChain 21(tex_coord) 23

-              26:    6(float) Load 25

-              28:    6(float) FMul 26 27

-              29:    6(float) FSub 28 10

-                              Store 18(x) 29

-              32:     24(ptr) AccessChain 21(tex_coord) 31

-              33:    6(float) Load 32

-              34:    6(float) FMul 33 27

-              35:    6(float) FSub 34 10

-                              Store 30(y) 35

-              37:    6(float) Load 18(x)

-              38:    6(float) Load 18(x)

-              39:    6(float) FMul 37 38

-              40:    6(float) Load 30(y)

-              41:    6(float) Load 30(y)

-              42:    6(float) FMul 40 41

-              43:    6(float) FAdd 39 42

-              44:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43

-                              Store 36(radius) 44

-              45:    6(float) Load 36(radius)

-              47:    46(bool) FOrdGreaterThan 45 10

-                              SelectionMerge 49 None

-                              BranchConditional 47 48 49

-              48:               Label

-              50:    6(float)   Load 36(radius)

-              52:    46(bool)   FOrdGreaterThan 50 51

-                                SelectionMerge 54 None

-                                BranchConditional 52 53 54

-              53:                 Label

-              55:    7(fvec4)     Load 15(color)

-              56:    7(fvec4)     CompositeConstruct 10 10 10 10

-              57:    7(fvec4)     FAdd 55 56

-                                  Store 15(color) 57

-                                  Branch 54

-              54:               Label

-              60:    7(fvec4)   Load 15(color)

-                                Store 59(gl_FragColor) 60

-              61:    6(float)   Load 36(radius)

-              63:    46(bool)   FOrdGreaterThan 61 62

-                                SelectionMerge 65 None

-                                BranchConditional 63 64 65

-              64:                 Label

-              66:    7(fvec4)     Load 15(color)

-              67:    7(fvec4)     CompositeConstruct 10 10 10 10

-              68:    7(fvec4)     FAdd 66 67

-                                  Store 15(color) 68

-                                  Branch 65

-              65:               Label

-                                Branch 49

-              49:             Label

-                              Kill

-              69:             Label

-              70:    6(float) Load 36(radius)

-              72:    46(bool) FOrdGreaterThanEqual 70 71

-                              SelectionMerge 74 None

-                              BranchConditional 72 73 74

-              73:               Label

-              75:    6(float)   Load 36(radius)

-              77:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 75 76

-              78:    6(float)   FDiv 77 27

-              79:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 78

-              80:    7(fvec4)   Load 15(color)

-              81:    7(fvec4)   CompositeConstruct 79 79 79 79

-              82:    7(fvec4)   FSub 80 81

-                                Store 15(color) 82

-                                Branch 74

-              74:             Label

-              83:    7(fvec4) Load 15(color)

-                              Store 59(gl_FragColor) 83

-                              Return

-                              FunctionEnd

+spv.always-discard.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 84
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 21
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 9  "white"
+                              Name 12  "black"
+                              Name 15  "color"
+                              Name 18  "x"
+                              Name 21  "tex_coord"
+                              Name 30  "y"
+                              Name 36  "radius"
+                              Name 59  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:    6(float) Constant 1065353216
+              11:    7(fvec4) ConstantComposite 10 10 10 10
+              13:    6(float) Constant 1045220557
+              14:    7(fvec4) ConstantComposite 13 13 13 13
+              17:             TypePointer Function 6(float)
+              19:             TypeVector 6(float) 2
+              20:             TypePointer Input 19(fvec2)
+   21(tex_coord):     20(ptr) Variable Input
+              22:             TypeInt 32 0
+              23:     22(int) Constant 0
+              24:             TypePointer Input 6(float)
+              27:    6(float) Constant 1073741824
+              31:     22(int) Constant 1
+              46:             TypeBool
+              51:    6(float) Constant 1066192077
+              58:             TypePointer Output 7(fvec4)
+59(gl_FragColor):     58(ptr) Variable Output
+              62:    6(float) Constant 1067030938
+              71:    6(float) Constant 1061158912
+              76:    6(float) Constant 1098907648
+         4(main):           2 Function None 3
+               5:             Label
+        9(white):      8(ptr) Variable Function
+       12(black):      8(ptr) Variable Function
+       15(color):      8(ptr) Variable Function
+           18(x):     17(ptr) Variable Function
+           30(y):     17(ptr) Variable Function
+      36(radius):     17(ptr) Variable Function
+                              Store 9(white) 11
+                              Store 12(black) 14
+              16:    7(fvec4) Load 9(white)
+                              Store 15(color) 16
+              25:     24(ptr) AccessChain 21(tex_coord) 23
+              26:    6(float) Load 25
+              28:    6(float) FMul 26 27
+              29:    6(float) FSub 28 10
+                              Store 18(x) 29
+              32:     24(ptr) AccessChain 21(tex_coord) 31
+              33:    6(float) Load 32
+              34:    6(float) FMul 33 27
+              35:    6(float) FSub 34 10
+                              Store 30(y) 35
+              37:    6(float) Load 18(x)
+              38:    6(float) Load 18(x)
+              39:    6(float) FMul 37 38
+              40:    6(float) Load 30(y)
+              41:    6(float) Load 30(y)
+              42:    6(float) FMul 40 41
+              43:    6(float) FAdd 39 42
+              44:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43
+                              Store 36(radius) 44
+              45:    6(float) Load 36(radius)
+              47:    46(bool) FOrdGreaterThan 45 10
+                              SelectionMerge 49 None
+                              BranchConditional 47 48 49
+              48:               Label
+              50:    6(float)   Load 36(radius)
+              52:    46(bool)   FOrdGreaterThan 50 51
+                                SelectionMerge 54 None
+                                BranchConditional 52 53 54
+              53:                 Label
+              55:    7(fvec4)     Load 15(color)
+              56:    7(fvec4)     CompositeConstruct 10 10 10 10
+              57:    7(fvec4)     FAdd 55 56
+                                  Store 15(color) 57
+                                  Branch 54
+              54:               Label
+              60:    7(fvec4)   Load 15(color)
+                                Store 59(gl_FragColor) 60
+              61:    6(float)   Load 36(radius)
+              63:    46(bool)   FOrdGreaterThan 61 62
+                                SelectionMerge 65 None
+                                BranchConditional 63 64 65
+              64:                 Label
+              66:    7(fvec4)     Load 15(color)
+              67:    7(fvec4)     CompositeConstruct 10 10 10 10
+              68:    7(fvec4)     FAdd 66 67
+                                  Store 15(color) 68
+                                  Branch 65
+              65:               Label
+                                Branch 49
+              49:             Label
+                              Kill
+              69:             Label
+              70:    6(float) Load 36(radius)
+              72:    46(bool) FOrdGreaterThanEqual 70 71
+                              SelectionMerge 74 None
+                              BranchConditional 72 73 74
+              73:               Label
+              75:    6(float)   Load 36(radius)
+              77:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 75 76
+              78:    6(float)   FDiv 77 27
+              79:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 78
+              80:    7(fvec4)   Load 15(color)
+              81:    7(fvec4)   CompositeConstruct 79 79 79 79
+              82:    7(fvec4)   FSub 80 81
+                                Store 15(color) 82
+                                Branch 74
+              74:             Label
+              83:    7(fvec4) Load 15(color)
+                              Store 59(gl_FragColor) 83
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out
index c085a06..ee768c9 100755
--- a/Test/baseResults/spv.always-discard2.frag.out
+++ b/Test/baseResults/spv.always-discard2.frag.out
@@ -1,66 +1,66 @@
-spv.always-discard2.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 40

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 21

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 9  "white"

-                              Name 12  "black"

-                              Name 15  "color"

-                              Name 18  "x"

-                              Name 21  "tex_coord"

-                              Name 30  "y"

-                              Name 38  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:    6(float) Constant 1065353216

-              11:    7(fvec4) ConstantComposite 10 10 10 10

-              13:    6(float) Constant 1045220557

-              14:    7(fvec4) ConstantComposite 13 13 13 13

-              17:             TypePointer Function 6(float)

-              19:             TypeVector 6(float) 2

-              20:             TypePointer Input 19(fvec2)

-   21(tex_coord):     20(ptr) Variable Input

-              22:             TypeInt 32 0

-              23:     22(int) Constant 0

-              24:             TypePointer Input 6(float)

-              27:    6(float) Constant 1073741824

-              31:     22(int) Constant 1

-              37:             TypePointer Output 7(fvec4)

-38(gl_FragColor):     37(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-        9(white):      8(ptr) Variable Function

-       12(black):      8(ptr) Variable Function

-       15(color):      8(ptr) Variable Function

-           18(x):     17(ptr) Variable Function

-           30(y):     17(ptr) Variable Function

-                              Store 9(white) 11

-                              Store 12(black) 14

-              16:    7(fvec4) Load 9(white)

-                              Store 15(color) 16

-              25:     24(ptr) AccessChain 21(tex_coord) 23

-              26:    6(float) Load 25

-              28:    6(float) FMul 26 27

-              29:    6(float) FSub 28 10

-                              Store 18(x) 29

-              32:     24(ptr) AccessChain 21(tex_coord) 31

-              33:    6(float) Load 32

-              34:    6(float) FMul 33 27

-              35:    6(float) FSub 34 10

-                              Store 30(y) 35

-                              Kill

-                              FunctionEnd

+spv.always-discard2.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 40
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 21
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 9  "white"
+                              Name 12  "black"
+                              Name 15  "color"
+                              Name 18  "x"
+                              Name 21  "tex_coord"
+                              Name 30  "y"
+                              Name 38  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:    6(float) Constant 1065353216
+              11:    7(fvec4) ConstantComposite 10 10 10 10
+              13:    6(float) Constant 1045220557
+              14:    7(fvec4) ConstantComposite 13 13 13 13
+              17:             TypePointer Function 6(float)
+              19:             TypeVector 6(float) 2
+              20:             TypePointer Input 19(fvec2)
+   21(tex_coord):     20(ptr) Variable Input
+              22:             TypeInt 32 0
+              23:     22(int) Constant 0
+              24:             TypePointer Input 6(float)
+              27:    6(float) Constant 1073741824
+              31:     22(int) Constant 1
+              37:             TypePointer Output 7(fvec4)
+38(gl_FragColor):     37(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+        9(white):      8(ptr) Variable Function
+       12(black):      8(ptr) Variable Function
+       15(color):      8(ptr) Variable Function
+           18(x):     17(ptr) Variable Function
+           30(y):     17(ptr) Variable Function
+                              Store 9(white) 11
+                              Store 12(black) 14
+              16:    7(fvec4) Load 9(white)
+                              Store 15(color) 16
+              25:     24(ptr) AccessChain 21(tex_coord) 23
+              26:    6(float) Load 25
+              28:    6(float) FMul 26 27
+              29:    6(float) FSub 28 10
+                              Store 18(x) 29
+              32:     24(ptr) AccessChain 21(tex_coord) 31
+              33:    6(float) Load 32
+              34:    6(float) FMul 33 27
+              35:    6(float) FSub 34 10
+                              Store 30(y) 35
+                              Kill
+                              FunctionEnd
diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out
index ae3ee49..2ee4978 100755
--- a/Test/baseResults/spv.atomic.comp.out
+++ b/Test/baseResults/spv.atomic.comp.out
@@ -1,132 +1,132 @@
-spv.atomic.comp

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked compute stage:

-

-

-TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 74

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint GLCompute 4  "main"

-                              ExecutionMode 4 LocalSize 1 1 1

-                              Source ESSL 310

-                              Name 4  "main"

-                              Name 10  "func(au1;"

-                              Name 9  "c"

-                              Name 12  "atoms("

-                              Name 20  "counter"

-                              Name 21  "param"

-                              Name 24  "val"

-                              Name 28  "countArr"

-                              Name 35  "origi"

-                              Name 37  "atomi"

-                              Name 40  "origu"

-                              Name 42  "atomu"

-                              Name 44  "value"

-                              Name 61  "dataSSB"

-                              MemberName 61(dataSSB) 0  "f"

-                              MemberName 61(dataSSB) 1  "n_frames_rendered"

-                              Name 63  "result"

-                              Name 71  "arrX"

-                              Name 72  "arrY"

-                              Name 73  "arrZ"

-                              Decorate 20(counter) Binding 0

-                              Decorate 28(countArr) Binding 0

-                              MemberDecorate 61(dataSSB) 0 Offset 0

-                              MemberDecorate 61(dataSSB) 1 Offset 16

-                              Decorate 61(dataSSB) BufferBlock

-                              Decorate 63(result) Binding 0

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 0

-               7:             TypePointer Function 6(int)

-               8:             TypeFunction 6(int) 7(ptr)

-              14:      6(int) Constant 1

-              15:      6(int) Constant 0

-              18:      6(int) Constant 1024

-              19:             TypePointer AtomicCounter 6(int)

-     20(counter):     19(ptr) Variable AtomicCounter

-              25:      6(int) Constant 4

-              26:             TypeArray 6(int) 25

-              27:             TypePointer AtomicCounter 26

-    28(countArr):     27(ptr) Variable AtomicCounter

-              29:             TypeInt 32 1

-              30:     29(int) Constant 2

-              34:             TypePointer Function 29(int)

-              36:             TypePointer Workgroup 29(int)

-       37(atomi):     36(ptr) Variable Workgroup

-              38:     29(int) Constant 3

-              41:             TypePointer Workgroup 6(int)

-       42(atomu):     41(ptr) Variable Workgroup

-              43:             TypePointer UniformConstant 6(int)

-       44(value):     43(ptr) Variable UniformConstant

-              47:      6(int) Constant 7

-              52:     29(int) Constant 7

-              56:      6(int) Constant 10

-              59:             TypeFloat 32

-              60:             TypeVector 29(int) 4

-     61(dataSSB):             TypeStruct 59(float) 60(ivec4)

-              62:             TypePointer Uniform 61(dataSSB)

-      63(result):     62(ptr) Variable Uniform

-              64:     29(int) Constant 1

-              65:      6(int) Constant 2

-              66:             TypePointer Uniform 29(int)

-              69:             TypeArray 29(int) 14

-              70:             TypePointer Private 69

-        71(arrX):     70(ptr) Variable Private

-        72(arrY):     70(ptr) Variable Private

-        73(arrZ):     70(ptr) Variable Private

-         4(main):           2 Function None 3

-               5:             Label

-       21(param):      7(ptr) Variable Function

-         24(val):      7(ptr) Variable Function

-                              MemoryBarrier 14 18

-              22:      6(int) Load 20(counter)

-                              Store 21(param) 22

-              23:      6(int) FunctionCall 10(func(au1;) 21(param)

-              31:     19(ptr) AccessChain 28(countArr) 30

-              32:      6(int) AtomicLoad 31 14 15

-                              Store 24(val) 32

-              33:      6(int) AtomicIDecrement 20(counter) 14 15

-                              Return

-                              FunctionEnd

-   10(func(au1;):      6(int) Function None 8

-            9(c):      7(ptr) FunctionParameter

-              11:             Label

-              16:      6(int) AtomicIIncrement 9(c) 14 15

-                              ReturnValue 16

-                              FunctionEnd

-      12(atoms():           2 Function None 3

-              13:             Label

-       35(origi):     34(ptr) Variable Function

-       40(origu):      7(ptr) Variable Function

-              39:     29(int) AtomicIAdd 37(atomi) 14 15 38

-                              Store 35(origi) 39

-              45:      6(int) Load 44(value)

-              46:      6(int) AtomicAnd 42(atomu) 14 15 45

-                              Store 40(origu) 46

-              48:      6(int) AtomicOr 42(atomu) 14 15 47

-                              Store 40(origu) 48

-              49:      6(int) AtomicXor 42(atomu) 14 15 47

-                              Store 40(origu) 49

-              50:      6(int) Load 44(value)

-              51:      6(int) AtomicUMin 42(atomu) 14 15 50

-                              Store 40(origu) 51

-              53:     29(int) AtomicSMax 37(atomi) 14 15 52

-                              Store 35(origi) 53

-              54:     29(int) Load 35(origi)

-              55:     29(int) AtomicExchange 37(atomi) 14 15 54

-                              Store 35(origi) 55

-              57:      6(int) Load 44(value)

-              58:      6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56

-                              Store 40(origu) 58

-              67:     66(ptr) AccessChain 63(result) 64 65

-              68:     29(int) AtomicIAdd 67 14 15 64

-                              Return

-                              FunctionEnd

+spv.atomic.comp
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 74
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source ESSL 310
+                              Name 4  "main"
+                              Name 10  "func(au1;"
+                              Name 9  "c"
+                              Name 12  "atoms("
+                              Name 20  "counter"
+                              Name 21  "param"
+                              Name 24  "val"
+                              Name 28  "countArr"
+                              Name 35  "origi"
+                              Name 37  "atomi"
+                              Name 40  "origu"
+                              Name 42  "atomu"
+                              Name 44  "value"
+                              Name 61  "dataSSB"
+                              MemberName 61(dataSSB) 0  "f"
+                              MemberName 61(dataSSB) 1  "n_frames_rendered"
+                              Name 63  "result"
+                              Name 71  "arrX"
+                              Name 72  "arrY"
+                              Name 73  "arrZ"
+                              Decorate 20(counter) Binding 0
+                              Decorate 28(countArr) Binding 0
+                              MemberDecorate 61(dataSSB) 0 Offset 0
+                              MemberDecorate 61(dataSSB) 1 Offset 16
+                              Decorate 61(dataSSB) BufferBlock
+                              Decorate 63(result) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypePointer Function 6(int)
+               8:             TypeFunction 6(int) 7(ptr)
+              14:      6(int) Constant 1
+              15:      6(int) Constant 0
+              18:      6(int) Constant 1024
+              19:             TypePointer AtomicCounter 6(int)
+     20(counter):     19(ptr) Variable AtomicCounter
+              25:      6(int) Constant 4
+              26:             TypeArray 6(int) 25
+              27:             TypePointer AtomicCounter 26
+    28(countArr):     27(ptr) Variable AtomicCounter
+              29:             TypeInt 32 1
+              30:     29(int) Constant 2
+              34:             TypePointer Function 29(int)
+              36:             TypePointer Workgroup 29(int)
+       37(atomi):     36(ptr) Variable Workgroup
+              38:     29(int) Constant 3
+              41:             TypePointer Workgroup 6(int)
+       42(atomu):     41(ptr) Variable Workgroup
+              43:             TypePointer UniformConstant 6(int)
+       44(value):     43(ptr) Variable UniformConstant
+              47:      6(int) Constant 7
+              52:     29(int) Constant 7
+              56:      6(int) Constant 10
+              59:             TypeFloat 32
+              60:             TypeVector 29(int) 4
+     61(dataSSB):             TypeStruct 59(float) 60(ivec4)
+              62:             TypePointer Uniform 61(dataSSB)
+      63(result):     62(ptr) Variable Uniform
+              64:     29(int) Constant 1
+              65:      6(int) Constant 2
+              66:             TypePointer Uniform 29(int)
+              69:             TypeArray 29(int) 14
+              70:             TypePointer Private 69
+        71(arrX):     70(ptr) Variable Private
+        72(arrY):     70(ptr) Variable Private
+        73(arrZ):     70(ptr) Variable Private
+         4(main):           2 Function None 3
+               5:             Label
+       21(param):      7(ptr) Variable Function
+         24(val):      7(ptr) Variable Function
+                              MemoryBarrier 14 18
+              22:      6(int) Load 20(counter)
+                              Store 21(param) 22
+              23:      6(int) FunctionCall 10(func(au1;) 21(param)
+              31:     19(ptr) AccessChain 28(countArr) 30
+              32:      6(int) AtomicLoad 31 14 15
+                              Store 24(val) 32
+              33:      6(int) AtomicIDecrement 20(counter) 14 15
+                              Return
+                              FunctionEnd
+   10(func(au1;):      6(int) Function None 8
+            9(c):      7(ptr) FunctionParameter
+              11:             Label
+              16:      6(int) AtomicIIncrement 9(c) 14 15
+                              ReturnValue 16
+                              FunctionEnd
+      12(atoms():           2 Function None 3
+              13:             Label
+       35(origi):     34(ptr) Variable Function
+       40(origu):      7(ptr) Variable Function
+              39:     29(int) AtomicIAdd 37(atomi) 14 15 38
+                              Store 35(origi) 39
+              45:      6(int) Load 44(value)
+              46:      6(int) AtomicAnd 42(atomu) 14 15 45
+                              Store 40(origu) 46
+              48:      6(int) AtomicOr 42(atomu) 14 15 47
+                              Store 40(origu) 48
+              49:      6(int) AtomicXor 42(atomu) 14 15 47
+                              Store 40(origu) 49
+              50:      6(int) Load 44(value)
+              51:      6(int) AtomicUMin 42(atomu) 14 15 50
+                              Store 40(origu) 51
+              53:     29(int) AtomicSMax 37(atomi) 14 15 52
+                              Store 35(origi) 53
+              54:     29(int) Load 35(origi)
+              55:     29(int) AtomicExchange 37(atomi) 14 15 54
+                              Store 35(origi) 55
+              57:      6(int) Load 44(value)
+              58:      6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56
+                              Store 40(origu) 58
+              67:     66(ptr) AccessChain 63(result) 64 65
+              68:     29(int) AtomicIAdd 67 14 15 64
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.bool.vert.out b/Test/baseResults/spv.bool.vert.out
index 04aff36..7217ae7 100644
--- a/Test/baseResults/spv.bool.vert.out
+++ b/Test/baseResults/spv.bool.vert.out
@@ -1,98 +1,98 @@
-spv.bool.vert

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 49

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 23 47 48

-                              Source GLSL 450

-                              Name 4  "main"

-                              Name 10  "foo(b1;"

-                              Name 9  "b"

-                              Name 21  "gl_PerVertex"

-                              MemberName 21(gl_PerVertex) 0  "gl_Position"

-                              MemberName 21(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 21(gl_PerVertex) 2  "gl_ClipDistance"

-                              MemberName 21(gl_PerVertex) 3  "gl_CullDistance"

-                              Name 23  ""

-                              Name 28  "ubname"

-                              MemberName 28(ubname) 0  "b"

-                              Name 30  "ubinst"

-                              Name 31  "param"

-                              Name 47  "gl_VertexID"

-                              Name 48  "gl_InstanceID"

-                              MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance

-                              MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance

-                              Decorate 21(gl_PerVertex) Block

-                              Decorate 28(ubname) GLSLShared

-                              Decorate 28(ubname) Block

-                              Decorate 47(gl_VertexID) BuiltIn VertexId

-                              Decorate 48(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeBool

-               7:             TypePointer Function 6(bool)

-               8:             TypeFunction 6(bool) 7(ptr)

-              13:     6(bool) ConstantFalse

-              16:             TypeFloat 32

-              17:             TypeVector 16(float) 4

-              18:             TypeInt 32 0

-              19:     18(int) Constant 1

-              20:             TypeArray 16(float) 19

-21(gl_PerVertex):             TypeStruct 17(fvec4) 16(float) 20 20

-              22:             TypePointer Output 21(gl_PerVertex)

-              23:     22(ptr) Variable Output

-              24:             TypeInt 32 1

-              25:     24(int) Constant 0

-              26:             TypePointer Function 17(fvec4)

-      28(ubname):             TypeStruct 6(bool)

-              29:             TypePointer Uniform 28(ubname)

-      30(ubinst):     29(ptr) Variable Uniform

-              32:             TypePointer Uniform 6(bool)

-              38:   16(float) Constant 0

-              39:   17(fvec4) ConstantComposite 38 38 38 38

-              41:   16(float) Constant 1065353216

-              42:   17(fvec4) ConstantComposite 41 41 41 41

-              44:             TypePointer Output 17(fvec4)

-              46:             TypePointer Input 24(int)

- 47(gl_VertexID):     46(ptr) Variable Input

-48(gl_InstanceID):     46(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              27:     26(ptr) Variable Function

-       31(param):      7(ptr) Variable Function

-              33:     32(ptr) AccessChain 30(ubinst) 25

-              34:     6(bool) Load 33

-                              Store 31(param) 34

-              35:     6(bool) FunctionCall 10(foo(b1;) 31(param)

-                              SelectionMerge 37 None

-                              BranchConditional 35 36 40

-              36:               Label

-                                Store 27 39

-                                Branch 37

-              40:               Label

-                                Store 27 42

-                                Branch 37

-              37:             Label

-              43:   17(fvec4) Load 27

-              45:     44(ptr) AccessChain 23 25

-                              Store 45 43

-                              Return

-                              FunctionEnd

-     10(foo(b1;):     6(bool) Function None 8

-            9(b):      7(ptr) FunctionParameter

-              11:             Label

-              12:     6(bool) Load 9(b)

-              14:     6(bool) INotEqual 12 13

-                              ReturnValue 14

-                              FunctionEnd

+spv.bool.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 49
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 23 47 48
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 10  "foo(b1;"
+                              Name 9  "b"
+                              Name 21  "gl_PerVertex"
+                              MemberName 21(gl_PerVertex) 0  "gl_Position"
+                              MemberName 21(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 21(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 21(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 23  ""
+                              Name 28  "ubname"
+                              MemberName 28(ubname) 0  "b"
+                              Name 30  "ubinst"
+                              Name 31  "param"
+                              Name 47  "gl_VertexID"
+                              Name 48  "gl_InstanceID"
+                              MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 21(gl_PerVertex) Block
+                              Decorate 28(ubname) GLSLShared
+                              Decorate 28(ubname) Block
+                              Decorate 47(gl_VertexID) BuiltIn VertexId
+                              Decorate 48(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeBool
+               7:             TypePointer Function 6(bool)
+               8:             TypeFunction 6(bool) 7(ptr)
+              13:     6(bool) ConstantFalse
+              16:             TypeFloat 32
+              17:             TypeVector 16(float) 4
+              18:             TypeInt 32 0
+              19:     18(int) Constant 1
+              20:             TypeArray 16(float) 19
+21(gl_PerVertex):             TypeStruct 17(fvec4) 16(float) 20 20
+              22:             TypePointer Output 21(gl_PerVertex)
+              23:     22(ptr) Variable Output
+              24:             TypeInt 32 1
+              25:     24(int) Constant 0
+              26:             TypePointer Function 17(fvec4)
+      28(ubname):             TypeStruct 6(bool)
+              29:             TypePointer Uniform 28(ubname)
+      30(ubinst):     29(ptr) Variable Uniform
+              32:             TypePointer Uniform 6(bool)
+              38:   16(float) Constant 0
+              39:   17(fvec4) ConstantComposite 38 38 38 38
+              41:   16(float) Constant 1065353216
+              42:   17(fvec4) ConstantComposite 41 41 41 41
+              44:             TypePointer Output 17(fvec4)
+              46:             TypePointer Input 24(int)
+ 47(gl_VertexID):     46(ptr) Variable Input
+48(gl_InstanceID):     46(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              27:     26(ptr) Variable Function
+       31(param):      7(ptr) Variable Function
+              33:     32(ptr) AccessChain 30(ubinst) 25
+              34:     6(bool) Load 33
+                              Store 31(param) 34
+              35:     6(bool) FunctionCall 10(foo(b1;) 31(param)
+                              SelectionMerge 37 None
+                              BranchConditional 35 36 40
+              36:               Label
+                                Store 27 39
+                                Branch 37
+              40:               Label
+                                Store 27 42
+                                Branch 37
+              37:             Label
+              43:   17(fvec4) Load 27
+              45:     44(ptr) AccessChain 23 25
+                              Store 45 43
+                              Return
+                              FunctionEnd
+     10(foo(b1;):     6(bool) Function None 8
+            9(b):      7(ptr) FunctionParameter
+              11:             Label
+              12:     6(bool) Load 9(b)
+              14:     6(bool) INotEqual 12 13
+                              ReturnValue 14
+                              FunctionEnd
diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out
index 64bf521..7a2c55e 100755
--- a/Test/baseResults/spv.conditionalDiscard.frag.out
+++ b/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -1,62 +1,62 @@
-spv.conditionalDiscard.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 36

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 17

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 400

-                              Name 4  "main"

-                              Name 9  "v"

-                              Name 13  "tex"

-                              Name 17  "coord"

-                              Name 34  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypeImage 6(float) 2D sampled format:Unknown

-              11:             TypeSampledImage 10

-              12:             TypePointer UniformConstant 11

-         13(tex):     12(ptr) Variable UniformConstant

-              15:             TypeVector 6(float) 2

-              16:             TypePointer Input 15(fvec2)

-       17(coord):     16(ptr) Variable Input

-              21:    6(float) Constant 1036831949

-              22:    6(float) Constant 1045220557

-              23:    6(float) Constant 1050253722

-              24:    6(float) Constant 1053609165

-              25:    7(fvec4) ConstantComposite 21 22 23 24

-              26:             TypeBool

-              27:             TypeVector 26(bool) 4

-              33:             TypePointer Output 7(fvec4)

-34(gl_FragColor):     33(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-            9(v):      8(ptr) Variable Function

-              14:          11 Load 13(tex)

-              18:   15(fvec2) Load 17(coord)

-              19:    7(fvec4) ImageSampleImplicitLod 14 18

-                              Store 9(v) 19

-              20:    7(fvec4) Load 9(v)

-              28:   27(bvec4) FOrdEqual 20 25

-              29:    26(bool) All 28

-                              SelectionMerge 31 None

-                              BranchConditional 29 30 31

-              30:               Label

-                                Kill

-              31:             Label

-              35:    7(fvec4) Load 9(v)

-                              Store 34(gl_FragColor) 35

-                              Return

-                              FunctionEnd

+spv.conditionalDiscard.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 36
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 17
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 400
+                              Name 4  "main"
+                              Name 9  "v"
+                              Name 13  "tex"
+                              Name 17  "coord"
+                              Name 34  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypeImage 6(float) 2D sampled format:Unknown
+              11:             TypeSampledImage 10
+              12:             TypePointer UniformConstant 11
+         13(tex):     12(ptr) Variable UniformConstant
+              15:             TypeVector 6(float) 2
+              16:             TypePointer Input 15(fvec2)
+       17(coord):     16(ptr) Variable Input
+              21:    6(float) Constant 1036831949
+              22:    6(float) Constant 1045220557
+              23:    6(float) Constant 1050253722
+              24:    6(float) Constant 1053609165
+              25:    7(fvec4) ConstantComposite 21 22 23 24
+              26:             TypeBool
+              27:             TypeVector 26(bool) 4
+              33:             TypePointer Output 7(fvec4)
+34(gl_FragColor):     33(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+            9(v):      8(ptr) Variable Function
+              14:          11 Load 13(tex)
+              18:   15(fvec2) Load 17(coord)
+              19:    7(fvec4) ImageSampleImplicitLod 14 18
+                              Store 9(v) 19
+              20:    7(fvec4) Load 9(v)
+              28:   27(bvec4) FOrdEqual 20 25
+              29:    26(bool) All 28
+                              SelectionMerge 31 None
+                              BranchConditional 29 30 31
+              30:               Label
+                                Kill
+              31:             Label
+              35:    7(fvec4) Load 9(v)
+                              Store 34(gl_FragColor) 35
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out
index 8ca8e7b..2f86931 100755
--- a/Test/baseResults/spv.conversion.frag.out
+++ b/Test/baseResults/spv.conversion.frag.out
@@ -1,577 +1,577 @@
-spv.conversion.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 455

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 39 446 448 157 53 450 452 454

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "b"

-                              Name 11  "u_i"

-                              Name 18  "u_f"

-                              Name 25  "b2"

-                              Name 33  "b3"

-                              Name 39  "i_i"

-                              Name 45  "b4"

-                              Name 53  "i_f"

-                              Name 58  "i"

-                              Name 68  "i2"

-                              Name 71  "u_f2"

-                              Name 81  "i3"

-                              Name 84  "u_f3"

-                              Name 94  "i4"

-                              Name 97  "u_f4"

-                              Name 106  "f"

-                              Name 110  "f2"

-                              Name 114  "f3"

-                              Name 118  "f4"

-                              Name 157  "i_i4"

-                              Name 322  "gl_FragColor"

-                              Name 417  "cv2"

-                              Name 418  "cv5"

-                              Name 428  "u_b"

-                              Name 430  "u_b2"

-                              Name 432  "u_b3"

-                              Name 434  "u_b4"

-                              Name 436  "u_i2"

-                              Name 438  "u_i3"

-                              Name 440  "u_i4"

-                              Name 441  "i_b"

-                              Name 442  "i_b2"

-                              Name 443  "i_b3"

-                              Name 444  "i_b4"

-                              Name 446  "i_i2"

-                              Name 448  "i_i3"

-                              Name 450  "i_f2"

-                              Name 452  "i_f3"

-                              Name 454  "i_f4"

-                              Decorate 39(i_i) Flat

-                              Decorate 157(i_i4) Flat

-                              Decorate 446(i_i2) Flat

-                              Decorate 448(i_i3) Flat

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeBool

-               7:             TypePointer Function 6(bool)

-               9:             TypeInt 32 1

-              10:             TypePointer UniformConstant 9(int)

-         11(u_i):     10(ptr) Variable UniformConstant

-              13:             TypeInt 32 0

-              14:     13(int) Constant 0

-              16:             TypeFloat 32

-              17:             TypePointer UniformConstant 16(float)

-         18(u_f):     17(ptr) Variable UniformConstant

-              20:   16(float) Constant 0

-              23:             TypeVector 6(bool) 2

-              24:             TypePointer Function 23(bvec2)

-              31:             TypeVector 6(bool) 3

-              32:             TypePointer Function 31(bvec3)

-              38:             TypePointer Input 9(int)

-         39(i_i):     38(ptr) Variable Input

-              43:             TypeVector 6(bool) 4

-              44:             TypePointer Function 43(bvec4)

-              52:             TypePointer Input 16(float)

-         53(i_f):     52(ptr) Variable Input

-              57:             TypePointer Function 9(int)

-              62:      9(int) Constant 0

-              63:      9(int) Constant 1

-              66:             TypeVector 9(int) 2

-              67:             TypePointer Function 66(ivec2)

-              69:             TypeVector 16(float) 2

-              70:             TypePointer UniformConstant 69(fvec2)

-        71(u_f2):     70(ptr) Variable UniformConstant

-              75:   66(ivec2) ConstantComposite 62 62

-              76:   66(ivec2) ConstantComposite 63 63

-              79:             TypeVector 9(int) 3

-              80:             TypePointer Function 79(ivec3)

-              82:             TypeVector 16(float) 3

-              83:             TypePointer UniformConstant 82(fvec3)

-        84(u_f3):     83(ptr) Variable UniformConstant

-              88:   79(ivec3) ConstantComposite 62 62 62

-              89:   79(ivec3) ConstantComposite 63 63 63

-              92:             TypeVector 9(int) 4

-              93:             TypePointer Function 92(ivec4)

-              95:             TypeVector 16(float) 4

-              96:             TypePointer UniformConstant 95(fvec4)

-        97(u_f4):     96(ptr) Variable UniformConstant

-             101:   92(ivec4) ConstantComposite 62 62 62 62

-             102:   92(ivec4) ConstantComposite 63 63 63 63

-             105:             TypePointer Function 16(float)

-             109:             TypePointer Function 69(fvec2)

-             113:             TypePointer Function 82(fvec3)

-             117:             TypePointer Function 95(fvec4)

-             124:   16(float) Constant 1065353216

-             132:   69(fvec2) ConstantComposite 20 20

-             133:   69(fvec2) ConstantComposite 124 124

-             141:   82(fvec3) ConstantComposite 20 20 20

-             142:   82(fvec3) ConstantComposite 124 124 124

-             150:   95(fvec4) ConstantComposite 20 20 20 20

-             151:   95(fvec4) ConstantComposite 124 124 124 124

-             156:             TypePointer Input 92(ivec4)

-       157(i_i4):    156(ptr) Variable Input

-             159:             TypeVector 13(int) 4

-             160:  159(ivec4) ConstantComposite 14 14 14 14

-             315:     13(int) Constant 1

-             321:             TypePointer Output 95(fvec4)

-322(gl_FragColor):    321(ptr) Variable Output

-             367:     13(int) Constant 2

-             380:     13(int) Constant 3

-             427:             TypePointer UniformConstant 6(bool)

-        428(u_b):    427(ptr) Variable UniformConstant

-             429:             TypePointer UniformConstant 23(bvec2)

-       430(u_b2):    429(ptr) Variable UniformConstant

-             431:             TypePointer UniformConstant 31(bvec3)

-       432(u_b3):    431(ptr) Variable UniformConstant

-             433:             TypePointer UniformConstant 43(bvec4)

-       434(u_b4):    433(ptr) Variable UniformConstant

-             435:             TypePointer UniformConstant 66(ivec2)

-       436(u_i2):    435(ptr) Variable UniformConstant

-             437:             TypePointer UniformConstant 79(ivec3)

-       438(u_i3):    437(ptr) Variable UniformConstant

-             439:             TypePointer UniformConstant 92(ivec4)

-       440(u_i4):    439(ptr) Variable UniformConstant

-        441(i_b):    427(ptr) Variable UniformConstant

-       442(i_b2):    429(ptr) Variable UniformConstant

-       443(i_b3):    431(ptr) Variable UniformConstant

-       444(i_b4):    433(ptr) Variable UniformConstant

-             445:             TypePointer Input 66(ivec2)

-       446(i_i2):    445(ptr) Variable Input

-             447:             TypePointer Input 79(ivec3)

-       448(i_i3):    447(ptr) Variable Input

-             449:             TypePointer Input 69(fvec2)

-       450(i_f2):    449(ptr) Variable Input

-             451:             TypePointer Input 82(fvec3)

-       452(i_f3):    451(ptr) Variable Input

-             453:             TypePointer Input 95(fvec4)

-       454(i_f4):    453(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(b):      7(ptr) Variable Function

-          25(b2):     24(ptr) Variable Function

-          33(b3):     32(ptr) Variable Function

-          45(b4):     44(ptr) Variable Function

-           58(i):     57(ptr) Variable Function

-          68(i2):     67(ptr) Variable Function

-          81(i3):     80(ptr) Variable Function

-          94(i4):     93(ptr) Variable Function

-          106(f):    105(ptr) Variable Function

-         110(f2):    109(ptr) Variable Function

-         114(f3):    113(ptr) Variable Function

-         118(f4):    117(ptr) Variable Function

-             297:    105(ptr) Variable Function

-             307:    105(ptr) Variable Function

-             323:    117(ptr) Variable Function

-        417(cv2):     93(ptr) Variable Function

-        418(cv5):     44(ptr) Variable Function

-              12:      9(int) Load 11(u_i)

-              15:     6(bool) INotEqual 12 14

-              19:   16(float) Load 18(u_f)

-              21:     6(bool) FOrdNotEqual 19 20

-              22:     6(bool) LogicalNotEqual 15 21

-                              Store 8(b) 22

-              26:      9(int) Load 11(u_i)

-              27:     6(bool) INotEqual 26 14

-              28:   16(float) Load 18(u_f)

-              29:     6(bool) FOrdNotEqual 28 20

-              30:   23(bvec2) CompositeConstruct 27 29

-                              Store 25(b2) 30

-              34:      9(int) Load 11(u_i)

-              35:     6(bool) INotEqual 34 14

-              36:   16(float) Load 18(u_f)

-              37:     6(bool) FOrdNotEqual 36 20

-              40:      9(int) Load 39(i_i)

-              41:     6(bool) INotEqual 40 14

-              42:   31(bvec3) CompositeConstruct 35 37 41

-                              Store 33(b3) 42

-              46:      9(int) Load 11(u_i)

-              47:     6(bool) INotEqual 46 14

-              48:   16(float) Load 18(u_f)

-              49:     6(bool) FOrdNotEqual 48 20

-              50:      9(int) Load 39(i_i)

-              51:     6(bool) INotEqual 50 14

-              54:   16(float) Load 53(i_f)

-              55:     6(bool) FOrdNotEqual 54 20

-              56:   43(bvec4) CompositeConstruct 47 49 51 55

-                              Store 45(b4) 56

-              59:   16(float) Load 18(u_f)

-              60:      9(int) ConvertFToS 59

-              61:     6(bool) Load 8(b)

-              64:      9(int) Select 61 63 62

-              65:      9(int) IAdd 60 64

-                              Store 58(i) 65

-              72:   69(fvec2) Load 71(u_f2)

-              73:   66(ivec2) ConvertFToS 72

-              74:   23(bvec2) Load 25(b2)

-              77:   66(ivec2) Select 74 76 75

-              78:   66(ivec2) IAdd 73 77

-                              Store 68(i2) 78

-              85:   82(fvec3) Load 84(u_f3)

-              86:   79(ivec3) ConvertFToS 85

-              87:   31(bvec3) Load 33(b3)

-              90:   79(ivec3) Select 87 89 88

-              91:   79(ivec3) IAdd 86 90

-                              Store 81(i3) 91

-              98:   95(fvec4) Load 97(u_f4)

-              99:   92(ivec4) ConvertFToS 98

-             100:   43(bvec4) Load 45(b4)

-             103:   92(ivec4) Select 100 102 101

-             104:   92(ivec4) IAdd 99 103

-                              Store 94(i4) 104

-             107:      9(int) Load 58(i)

-             108:   16(float) ConvertSToF 107

-                              Store 106(f) 108

-             111:   66(ivec2) Load 68(i2)

-             112:   69(fvec2) ConvertSToF 111

-                              Store 110(f2) 112

-             115:   79(ivec3) Load 81(i3)

-             116:   82(fvec3) ConvertSToF 115

-                              Store 114(f3) 116

-             119:   92(ivec4) Load 94(i4)

-             120:   95(fvec4) ConvertSToF 119

-                              Store 118(f4) 120

-             121:      9(int) Load 58(i)

-             122:   16(float) ConvertSToF 121

-             123:     6(bool) Load 8(b)

-             125:   16(float) Select 123 124 20

-             126:   16(float) FAdd 122 125

-             127:   16(float) Load 106(f)

-             128:   16(float) FAdd 127 126

-                              Store 106(f) 128

-             129:   66(ivec2) Load 68(i2)

-             130:   69(fvec2) ConvertSToF 129

-             131:   23(bvec2) Load 25(b2)

-             134:   69(fvec2) Select 131 133 132

-             135:   69(fvec2) FAdd 130 134

-             136:   69(fvec2) Load 110(f2)

-             137:   69(fvec2) FSub 136 135

-                              Store 110(f2) 137

-             138:   79(ivec3) Load 81(i3)

-             139:   82(fvec3) ConvertSToF 138

-             140:   31(bvec3) Load 33(b3)

-             143:   82(fvec3) Select 140 142 141

-             144:   82(fvec3) FAdd 139 143

-             145:   82(fvec3) Load 114(f3)

-             146:   82(fvec3) FDiv 145 144

-                              Store 114(f3) 146

-             147:   92(ivec4) Load 94(i4)

-             148:   95(fvec4) ConvertSToF 147

-             149:   43(bvec4) Load 45(b4)

-             152:   95(fvec4) Select 149 151 150

-             153:   95(fvec4) FAdd 148 152

-             154:   95(fvec4) Load 118(f4)

-             155:   95(fvec4) FAdd 154 153

-                              Store 118(f4) 155

-             158:   92(ivec4) Load 157(i_i4)

-             161:   43(bvec4) INotEqual 158 160

-             162:   95(fvec4) Select 161 151 150

-             163:   95(fvec4) Load 118(f4)

-             164:   95(fvec4) FAdd 163 162

-                              Store 118(f4) 164

-             165:   95(fvec4) Load 97(u_f4)

-             166:   43(bvec4) FOrdNotEqual 165 150

-             167:   95(fvec4) Select 166 151 150

-             168:   95(fvec4) Load 118(f4)

-             169:   95(fvec4) FAdd 168 167

-                              Store 118(f4) 169

-             170:   16(float) Load 106(f)

-             171:      9(int) Load 58(i)

-             172:   16(float) ConvertSToF 171

-             173:   16(float) FSub 170 172

-             174:   16(float) Load 106(f)

-             175:   16(float) FAdd 174 173

-                              Store 106(f) 175

-             176:   16(float) Load 106(f)

-             177:      9(int) Load 58(i)

-             178:   16(float) ConvertSToF 177

-             179:   69(fvec2) CompositeConstruct 176 178

-             180:   66(ivec2) Load 68(i2)

-             181:   69(fvec2) ConvertSToF 180

-             182:   69(fvec2) FAdd 179 181

-             183:   69(fvec2) Load 110(f2)

-             184:   69(fvec2) FAdd 183 182

-                              Store 110(f2) 184

-             185:   79(ivec3) Load 81(i3)

-             186:   82(fvec3) ConvertSToF 185

-             187:   16(float) Load 106(f)

-             188:      9(int) Load 58(i)

-             189:   16(float) ConvertSToF 188

-             190:   16(float) Load 106(f)

-             191:   82(fvec3) CompositeConstruct 187 189 190

-             192:   82(fvec3) FAdd 186 191

-             193:   82(fvec3) Load 114(f3)

-             194:   82(fvec3) FAdd 193 192

-                              Store 114(f3) 194

-             195:     6(bool) Load 8(b)

-             196:   16(float) Select 195 124 20

-             197:      9(int) Load 58(i)

-             198:   16(float) ConvertSToF 197

-             199:   16(float) Load 106(f)

-             200:      9(int) Load 58(i)

-             201:   16(float) ConvertSToF 200

-             202:   95(fvec4) CompositeConstruct 196 198 199 201

-             203:   92(ivec4) Load 94(i4)

-             204:   95(fvec4) ConvertSToF 203

-             205:   95(fvec4) FAdd 202 204

-             206:   95(fvec4) Load 118(f4)

-             207:   95(fvec4) FAdd 206 205

-                              Store 118(f4) 207

-             208:   16(float) Load 106(f)

-             209:      9(int) Load 58(i)

-             210:   16(float) ConvertSToF 209

-             211:   69(fvec2) CompositeConstruct 208 210

-             212:      9(int) Load 58(i)

-             213:   16(float) ConvertSToF 212

-             214:   69(fvec2) VectorTimesScalar 211 213

-             215:   69(fvec2) Load 110(f2)

-             216:   69(fvec2) FAdd 215 214

-                              Store 110(f2) 216

-             217:   16(float) Load 106(f)

-             218:      9(int) Load 58(i)

-             219:   16(float) ConvertSToF 218

-             220:   16(float) Load 106(f)

-             221:   82(fvec3) CompositeConstruct 217 219 220

-             222:      9(int) Load 58(i)

-             223:   16(float) ConvertSToF 222

-             224:   82(fvec3) CompositeConstruct 223 223 223

-             225:   82(fvec3) FAdd 221 224

-             226:   82(fvec3) Load 114(f3)

-             227:   82(fvec3) FAdd 226 225

-                              Store 114(f3) 227

-             228:      9(int) Load 58(i)

-             229:   16(float) ConvertSToF 228

-             230:     6(bool) Load 8(b)

-             231:   16(float) Select 230 124 20

-             232:      9(int) Load 58(i)

-             233:   16(float) ConvertSToF 232

-             234:   16(float) Load 106(f)

-             235:      9(int) Load 58(i)

-             236:   16(float) ConvertSToF 235

-             237:   95(fvec4) CompositeConstruct 231 233 234 236

-             238:   95(fvec4) CompositeConstruct 229 229 229 229

-             239:   95(fvec4) FSub 238 237

-             240:   95(fvec4) Load 118(f4)

-             241:   95(fvec4) FAdd 240 239

-                              Store 118(f4) 241

-             242:   16(float) Load 106(f)

-             243:      9(int) ConvertFToS 242

-             244:      9(int) Load 58(i)

-             245:   66(ivec2) CompositeConstruct 243 244

-             246:   66(ivec2) Load 68(i2)

-             247:   66(ivec2) IAdd 246 245

-                              Store 68(i2) 247

-             248:   16(float) Load 106(f)

-             249:      9(int) ConvertFToS 248

-             250:      9(int) Load 58(i)

-             251:   16(float) Load 106(f)

-             252:      9(int) ConvertFToS 251

-             253:   79(ivec3) CompositeConstruct 249 250 252

-             254:   79(ivec3) Load 81(i3)

-             255:   79(ivec3) IAdd 254 253

-                              Store 81(i3) 255

-             256:     6(bool) Load 8(b)

-             257:      9(int) Select 256 63 62

-             258:      9(int) Load 58(i)

-             259:   16(float) Load 106(f)

-             260:      9(int) ConvertFToS 259

-             261:      9(int) Load 58(i)

-             262:   92(ivec4) CompositeConstruct 257 258 260 261

-             263:   92(ivec4) Load 94(i4)

-             264:   92(ivec4) IAdd 263 262

-                              Store 94(i4) 264

-             265:   16(float) Load 106(f)

-             266:      9(int) Load 58(i)

-             267:   16(float) ConvertSToF 266

-             268:     6(bool) FOrdLessThan 265 267

-             269:     6(bool) LogicalNot 268

-                              SelectionMerge 271 None

-                              BranchConditional 269 270 271

-             270:               Label

-             272:      9(int)   Load 58(i)

-             273:   16(float)   ConvertSToF 272

-             274:   16(float)   Load 106(f)

-             275:     6(bool)   FOrdLessThan 273 274

-                                Branch 271

-             271:             Label

-             276:     6(bool) Phi 268 5 275 270

-             277:     6(bool) LogicalNot 276

-                              SelectionMerge 279 None

-                              BranchConditional 277 278 279

-             278:               Label

-             280:   69(fvec2)   Load 110(f2)

-             281:   66(ivec2)   Load 68(i2)

-             282:   69(fvec2)   ConvertSToF 281

-             283:   23(bvec2)   FOrdEqual 280 282

-             284:     6(bool)   All 283

-                                Branch 279

-             279:             Label

-             285:     6(bool) Phi 276 271 284 278

-             286:     6(bool) LogicalNot 285

-                              SelectionMerge 288 None

-                              BranchConditional 286 287 288

-             287:               Label

-             289:   79(ivec3)   Load 81(i3)

-             290:   82(fvec3)   ConvertSToF 289

-             291:   82(fvec3)   Load 114(f3)

-             292:   31(bvec3)   FOrdNotEqual 290 291

-             293:     6(bool)   Any 292

-                                Branch 288

-             288:             Label

-             294:     6(bool) Phi 285 279 293 287

-                              SelectionMerge 296 None

-                              BranchConditional 294 295 296

-             295:               Label

-             298:     6(bool)   Load 8(b)

-                                SelectionMerge 300 None

-                                BranchConditional 298 299 303

-             299:                 Label

-             301:      9(int)     Load 58(i)

-             302:   16(float)     ConvertSToF 301

-                                  Store 297 302

-                                  Branch 300

-             303:                 Label

-             304:    105(ptr)     AccessChain 110(f2) 14

-             305:   16(float)     Load 304

-                                  Store 297 305

-                                  Branch 300

-             300:               Label

-             306:   16(float)   Load 297

-             308:   23(bvec2)   Load 25(b2)

-             309:     6(bool)   CompositeExtract 308 0

-                                SelectionMerge 311 None

-                                BranchConditional 309 310 314

-             310:                 Label

-             312:    105(ptr)     AccessChain 114(f3) 14

-             313:   16(float)     Load 312

-                                  Store 307 313

-                                  Branch 311

-             314:                 Label

-             316:     57(ptr)     AccessChain 68(i2) 315

-             317:      9(int)     Load 316

-             318:   16(float)     ConvertSToF 317

-                                  Store 307 318

-                                  Branch 311

-             311:               Label

-             319:   16(float)   Load 307

-             320:   16(float)   FAdd 306 319

-                                Store 106(f) 320

-                                Branch 296

-             296:             Label

-             324:     6(bool) Load 8(b)

-             325:   23(bvec2) Load 25(b2)

-             326:     6(bool) CompositeExtract 325 0

-             327:     6(bool) LogicalOr 324 326

-             328:   23(bvec2) Load 25(b2)

-             329:     6(bool) CompositeExtract 328 1

-             330:     6(bool) LogicalOr 327 329

-             331:   31(bvec3) Load 33(b3)

-             332:     6(bool) CompositeExtract 331 0

-             333:     6(bool) LogicalOr 330 332

-             334:   31(bvec3) Load 33(b3)

-             335:     6(bool) CompositeExtract 334 1

-             336:     6(bool) LogicalOr 333 335

-             337:   31(bvec3) Load 33(b3)

-             338:     6(bool) CompositeExtract 337 2

-             339:     6(bool) LogicalOr 336 338

-             340:   43(bvec4) Load 45(b4)

-             341:     6(bool) CompositeExtract 340 0

-             342:     6(bool) LogicalOr 339 341

-             343:   43(bvec4) Load 45(b4)

-             344:     6(bool) CompositeExtract 343 1

-             345:     6(bool) LogicalOr 342 344

-             346:   43(bvec4) Load 45(b4)

-             347:     6(bool) CompositeExtract 346 2

-             348:     6(bool) LogicalOr 345 347

-             349:   43(bvec4) Load 45(b4)

-             350:     6(bool) CompositeExtract 349 3

-             351:     6(bool) LogicalOr 348 350

-                              SelectionMerge 353 None

-                              BranchConditional 351 352 415

-             352:               Label

-             354:      9(int)   Load 58(i)

-             355:     57(ptr)   AccessChain 68(i2) 14

-             356:      9(int)   Load 355

-             357:      9(int)   IAdd 354 356

-             358:     57(ptr)   AccessChain 68(i2) 315

-             359:      9(int)   Load 358

-             360:      9(int)   IAdd 357 359

-             361:     57(ptr)   AccessChain 81(i3) 14

-             362:      9(int)   Load 361

-             363:      9(int)   IAdd 360 362

-             364:     57(ptr)   AccessChain 81(i3) 315

-             365:      9(int)   Load 364

-             366:      9(int)   IAdd 363 365

-             368:     57(ptr)   AccessChain 81(i3) 367

-             369:      9(int)   Load 368

-             370:      9(int)   IAdd 366 369

-             371:     57(ptr)   AccessChain 94(i4) 14

-             372:      9(int)   Load 371

-             373:      9(int)   IAdd 370 372

-             374:     57(ptr)   AccessChain 94(i4) 315

-             375:      9(int)   Load 374

-             376:      9(int)   IAdd 373 375

-             377:     57(ptr)   AccessChain 94(i4) 367

-             378:      9(int)   Load 377

-             379:      9(int)   IAdd 376 378

-             381:     57(ptr)   AccessChain 94(i4) 380

-             382:      9(int)   Load 381

-             383:      9(int)   IAdd 379 382

-             384:   16(float)   ConvertSToF 383

-             385:   16(float)   Load 106(f)

-             386:   16(float)   FAdd 384 385

-             387:    105(ptr)   AccessChain 110(f2) 14

-             388:   16(float)   Load 387

-             389:   16(float)   FAdd 386 388

-             390:    105(ptr)   AccessChain 110(f2) 315

-             391:   16(float)   Load 390

-             392:   16(float)   FAdd 389 391

-             393:    105(ptr)   AccessChain 114(f3) 14

-             394:   16(float)   Load 393

-             395:   16(float)   FAdd 392 394

-             396:    105(ptr)   AccessChain 114(f3) 315

-             397:   16(float)   Load 396

-             398:   16(float)   FAdd 395 397

-             399:    105(ptr)   AccessChain 114(f3) 367

-             400:   16(float)   Load 399

-             401:   16(float)   FAdd 398 400

-             402:    105(ptr)   AccessChain 118(f4) 14

-             403:   16(float)   Load 402

-             404:   16(float)   FAdd 401 403

-             405:    105(ptr)   AccessChain 118(f4) 315

-             406:   16(float)   Load 405

-             407:   16(float)   FAdd 404 406

-             408:    105(ptr)   AccessChain 118(f4) 367

-             409:   16(float)   Load 408

-             410:   16(float)   FAdd 407 409

-             411:    105(ptr)   AccessChain 118(f4) 380

-             412:   16(float)   Load 411

-             413:   16(float)   FAdd 410 412

-             414:   95(fvec4)   CompositeConstruct 413 413 413 413

-                                Store 323 414

-                                Branch 353

-             415:               Label

-                                Store 323 151

-                                Branch 353

-             353:             Label

-             416:   95(fvec4) Load 323

-                              Store 322(gl_FragColor) 416

-                              Store 417(cv2) 102

-             419:   92(ivec4) Load 417(cv2)

-             420:   43(bvec4) INotEqual 419 160

-                              Store 418(cv5) 420

-             421:   43(bvec4) Load 418(cv5)

-             422:   95(fvec4) Select 421 151 150

-             423:   16(float) CompositeExtract 422 0

-             424:   95(fvec4) Load 322(gl_FragColor)

-             425:   95(fvec4) CompositeConstruct 423 423 423 423

-             426:   95(fvec4) FAdd 424 425

-                              Store 322(gl_FragColor) 426

-                              Return

-                              FunctionEnd

+spv.conversion.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 455
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 39 446 448 157 53 450 452 454
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "b"
+                              Name 11  "u_i"
+                              Name 18  "u_f"
+                              Name 25  "b2"
+                              Name 33  "b3"
+                              Name 39  "i_i"
+                              Name 45  "b4"
+                              Name 53  "i_f"
+                              Name 58  "i"
+                              Name 68  "i2"
+                              Name 71  "u_f2"
+                              Name 81  "i3"
+                              Name 84  "u_f3"
+                              Name 94  "i4"
+                              Name 97  "u_f4"
+                              Name 106  "f"
+                              Name 110  "f2"
+                              Name 114  "f3"
+                              Name 118  "f4"
+                              Name 157  "i_i4"
+                              Name 322  "gl_FragColor"
+                              Name 417  "cv2"
+                              Name 418  "cv5"
+                              Name 428  "u_b"
+                              Name 430  "u_b2"
+                              Name 432  "u_b3"
+                              Name 434  "u_b4"
+                              Name 436  "u_i2"
+                              Name 438  "u_i3"
+                              Name 440  "u_i4"
+                              Name 441  "i_b"
+                              Name 442  "i_b2"
+                              Name 443  "i_b3"
+                              Name 444  "i_b4"
+                              Name 446  "i_i2"
+                              Name 448  "i_i3"
+                              Name 450  "i_f2"
+                              Name 452  "i_f3"
+                              Name 454  "i_f4"
+                              Decorate 39(i_i) Flat
+                              Decorate 157(i_i4) Flat
+                              Decorate 446(i_i2) Flat
+                              Decorate 448(i_i3) Flat
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeBool
+               7:             TypePointer Function 6(bool)
+               9:             TypeInt 32 1
+              10:             TypePointer UniformConstant 9(int)
+         11(u_i):     10(ptr) Variable UniformConstant
+              13:             TypeInt 32 0
+              14:     13(int) Constant 0
+              16:             TypeFloat 32
+              17:             TypePointer UniformConstant 16(float)
+         18(u_f):     17(ptr) Variable UniformConstant
+              20:   16(float) Constant 0
+              23:             TypeVector 6(bool) 2
+              24:             TypePointer Function 23(bvec2)
+              31:             TypeVector 6(bool) 3
+              32:             TypePointer Function 31(bvec3)
+              38:             TypePointer Input 9(int)
+         39(i_i):     38(ptr) Variable Input
+              43:             TypeVector 6(bool) 4
+              44:             TypePointer Function 43(bvec4)
+              52:             TypePointer Input 16(float)
+         53(i_f):     52(ptr) Variable Input
+              57:             TypePointer Function 9(int)
+              62:      9(int) Constant 0
+              63:      9(int) Constant 1
+              66:             TypeVector 9(int) 2
+              67:             TypePointer Function 66(ivec2)
+              69:             TypeVector 16(float) 2
+              70:             TypePointer UniformConstant 69(fvec2)
+        71(u_f2):     70(ptr) Variable UniformConstant
+              75:   66(ivec2) ConstantComposite 62 62
+              76:   66(ivec2) ConstantComposite 63 63
+              79:             TypeVector 9(int) 3
+              80:             TypePointer Function 79(ivec3)
+              82:             TypeVector 16(float) 3
+              83:             TypePointer UniformConstant 82(fvec3)
+        84(u_f3):     83(ptr) Variable UniformConstant
+              88:   79(ivec3) ConstantComposite 62 62 62
+              89:   79(ivec3) ConstantComposite 63 63 63
+              92:             TypeVector 9(int) 4
+              93:             TypePointer Function 92(ivec4)
+              95:             TypeVector 16(float) 4
+              96:             TypePointer UniformConstant 95(fvec4)
+        97(u_f4):     96(ptr) Variable UniformConstant
+             101:   92(ivec4) ConstantComposite 62 62 62 62
+             102:   92(ivec4) ConstantComposite 63 63 63 63
+             105:             TypePointer Function 16(float)
+             109:             TypePointer Function 69(fvec2)
+             113:             TypePointer Function 82(fvec3)
+             117:             TypePointer Function 95(fvec4)
+             124:   16(float) Constant 1065353216
+             132:   69(fvec2) ConstantComposite 20 20
+             133:   69(fvec2) ConstantComposite 124 124
+             141:   82(fvec3) ConstantComposite 20 20 20
+             142:   82(fvec3) ConstantComposite 124 124 124
+             150:   95(fvec4) ConstantComposite 20 20 20 20
+             151:   95(fvec4) ConstantComposite 124 124 124 124
+             156:             TypePointer Input 92(ivec4)
+       157(i_i4):    156(ptr) Variable Input
+             159:             TypeVector 13(int) 4
+             160:  159(ivec4) ConstantComposite 14 14 14 14
+             315:     13(int) Constant 1
+             321:             TypePointer Output 95(fvec4)
+322(gl_FragColor):    321(ptr) Variable Output
+             367:     13(int) Constant 2
+             380:     13(int) Constant 3
+             427:             TypePointer UniformConstant 6(bool)
+        428(u_b):    427(ptr) Variable UniformConstant
+             429:             TypePointer UniformConstant 23(bvec2)
+       430(u_b2):    429(ptr) Variable UniformConstant
+             431:             TypePointer UniformConstant 31(bvec3)
+       432(u_b3):    431(ptr) Variable UniformConstant
+             433:             TypePointer UniformConstant 43(bvec4)
+       434(u_b4):    433(ptr) Variable UniformConstant
+             435:             TypePointer UniformConstant 66(ivec2)
+       436(u_i2):    435(ptr) Variable UniformConstant
+             437:             TypePointer UniformConstant 79(ivec3)
+       438(u_i3):    437(ptr) Variable UniformConstant
+             439:             TypePointer UniformConstant 92(ivec4)
+       440(u_i4):    439(ptr) Variable UniformConstant
+        441(i_b):    427(ptr) Variable UniformConstant
+       442(i_b2):    429(ptr) Variable UniformConstant
+       443(i_b3):    431(ptr) Variable UniformConstant
+       444(i_b4):    433(ptr) Variable UniformConstant
+             445:             TypePointer Input 66(ivec2)
+       446(i_i2):    445(ptr) Variable Input
+             447:             TypePointer Input 79(ivec3)
+       448(i_i3):    447(ptr) Variable Input
+             449:             TypePointer Input 69(fvec2)
+       450(i_f2):    449(ptr) Variable Input
+             451:             TypePointer Input 82(fvec3)
+       452(i_f3):    451(ptr) Variable Input
+             453:             TypePointer Input 95(fvec4)
+       454(i_f4):    453(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(b):      7(ptr) Variable Function
+          25(b2):     24(ptr) Variable Function
+          33(b3):     32(ptr) Variable Function
+          45(b4):     44(ptr) Variable Function
+           58(i):     57(ptr) Variable Function
+          68(i2):     67(ptr) Variable Function
+          81(i3):     80(ptr) Variable Function
+          94(i4):     93(ptr) Variable Function
+          106(f):    105(ptr) Variable Function
+         110(f2):    109(ptr) Variable Function
+         114(f3):    113(ptr) Variable Function
+         118(f4):    117(ptr) Variable Function
+             297:    105(ptr) Variable Function
+             307:    105(ptr) Variable Function
+             323:    117(ptr) Variable Function
+        417(cv2):     93(ptr) Variable Function
+        418(cv5):     44(ptr) Variable Function
+              12:      9(int) Load 11(u_i)
+              15:     6(bool) INotEqual 12 14
+              19:   16(float) Load 18(u_f)
+              21:     6(bool) FOrdNotEqual 19 20
+              22:     6(bool) LogicalNotEqual 15 21
+                              Store 8(b) 22
+              26:      9(int) Load 11(u_i)
+              27:     6(bool) INotEqual 26 14
+              28:   16(float) Load 18(u_f)
+              29:     6(bool) FOrdNotEqual 28 20
+              30:   23(bvec2) CompositeConstruct 27 29
+                              Store 25(b2) 30
+              34:      9(int) Load 11(u_i)
+              35:     6(bool) INotEqual 34 14
+              36:   16(float) Load 18(u_f)
+              37:     6(bool) FOrdNotEqual 36 20
+              40:      9(int) Load 39(i_i)
+              41:     6(bool) INotEqual 40 14
+              42:   31(bvec3) CompositeConstruct 35 37 41
+                              Store 33(b3) 42
+              46:      9(int) Load 11(u_i)
+              47:     6(bool) INotEqual 46 14
+              48:   16(float) Load 18(u_f)
+              49:     6(bool) FOrdNotEqual 48 20
+              50:      9(int) Load 39(i_i)
+              51:     6(bool) INotEqual 50 14
+              54:   16(float) Load 53(i_f)
+              55:     6(bool) FOrdNotEqual 54 20
+              56:   43(bvec4) CompositeConstruct 47 49 51 55
+                              Store 45(b4) 56
+              59:   16(float) Load 18(u_f)
+              60:      9(int) ConvertFToS 59
+              61:     6(bool) Load 8(b)
+              64:      9(int) Select 61 63 62
+              65:      9(int) IAdd 60 64
+                              Store 58(i) 65
+              72:   69(fvec2) Load 71(u_f2)
+              73:   66(ivec2) ConvertFToS 72
+              74:   23(bvec2) Load 25(b2)
+              77:   66(ivec2) Select 74 76 75
+              78:   66(ivec2) IAdd 73 77
+                              Store 68(i2) 78
+              85:   82(fvec3) Load 84(u_f3)
+              86:   79(ivec3) ConvertFToS 85
+              87:   31(bvec3) Load 33(b3)
+              90:   79(ivec3) Select 87 89 88
+              91:   79(ivec3) IAdd 86 90
+                              Store 81(i3) 91
+              98:   95(fvec4) Load 97(u_f4)
+              99:   92(ivec4) ConvertFToS 98
+             100:   43(bvec4) Load 45(b4)
+             103:   92(ivec4) Select 100 102 101
+             104:   92(ivec4) IAdd 99 103
+                              Store 94(i4) 104
+             107:      9(int) Load 58(i)
+             108:   16(float) ConvertSToF 107
+                              Store 106(f) 108
+             111:   66(ivec2) Load 68(i2)
+             112:   69(fvec2) ConvertSToF 111
+                              Store 110(f2) 112
+             115:   79(ivec3) Load 81(i3)
+             116:   82(fvec3) ConvertSToF 115
+                              Store 114(f3) 116
+             119:   92(ivec4) Load 94(i4)
+             120:   95(fvec4) ConvertSToF 119
+                              Store 118(f4) 120
+             121:      9(int) Load 58(i)
+             122:   16(float) ConvertSToF 121
+             123:     6(bool) Load 8(b)
+             125:   16(float) Select 123 124 20
+             126:   16(float) FAdd 122 125
+             127:   16(float) Load 106(f)
+             128:   16(float) FAdd 127 126
+                              Store 106(f) 128
+             129:   66(ivec2) Load 68(i2)
+             130:   69(fvec2) ConvertSToF 129
+             131:   23(bvec2) Load 25(b2)
+             134:   69(fvec2) Select 131 133 132
+             135:   69(fvec2) FAdd 130 134
+             136:   69(fvec2) Load 110(f2)
+             137:   69(fvec2) FSub 136 135
+                              Store 110(f2) 137
+             138:   79(ivec3) Load 81(i3)
+             139:   82(fvec3) ConvertSToF 138
+             140:   31(bvec3) Load 33(b3)
+             143:   82(fvec3) Select 140 142 141
+             144:   82(fvec3) FAdd 139 143
+             145:   82(fvec3) Load 114(f3)
+             146:   82(fvec3) FDiv 145 144
+                              Store 114(f3) 146
+             147:   92(ivec4) Load 94(i4)
+             148:   95(fvec4) ConvertSToF 147
+             149:   43(bvec4) Load 45(b4)
+             152:   95(fvec4) Select 149 151 150
+             153:   95(fvec4) FAdd 148 152
+             154:   95(fvec4) Load 118(f4)
+             155:   95(fvec4) FAdd 154 153
+                              Store 118(f4) 155
+             158:   92(ivec4) Load 157(i_i4)
+             161:   43(bvec4) INotEqual 158 160
+             162:   95(fvec4) Select 161 151 150
+             163:   95(fvec4) Load 118(f4)
+             164:   95(fvec4) FAdd 163 162
+                              Store 118(f4) 164
+             165:   95(fvec4) Load 97(u_f4)
+             166:   43(bvec4) FOrdNotEqual 165 150
+             167:   95(fvec4) Select 166 151 150
+             168:   95(fvec4) Load 118(f4)
+             169:   95(fvec4) FAdd 168 167
+                              Store 118(f4) 169
+             170:   16(float) Load 106(f)
+             171:      9(int) Load 58(i)
+             172:   16(float) ConvertSToF 171
+             173:   16(float) FSub 170 172
+             174:   16(float) Load 106(f)
+             175:   16(float) FAdd 174 173
+                              Store 106(f) 175
+             176:   16(float) Load 106(f)
+             177:      9(int) Load 58(i)
+             178:   16(float) ConvertSToF 177
+             179:   69(fvec2) CompositeConstruct 176 178
+             180:   66(ivec2) Load 68(i2)
+             181:   69(fvec2) ConvertSToF 180
+             182:   69(fvec2) FAdd 179 181
+             183:   69(fvec2) Load 110(f2)
+             184:   69(fvec2) FAdd 183 182
+                              Store 110(f2) 184
+             185:   79(ivec3) Load 81(i3)
+             186:   82(fvec3) ConvertSToF 185
+             187:   16(float) Load 106(f)
+             188:      9(int) Load 58(i)
+             189:   16(float) ConvertSToF 188
+             190:   16(float) Load 106(f)
+             191:   82(fvec3) CompositeConstruct 187 189 190
+             192:   82(fvec3) FAdd 186 191
+             193:   82(fvec3) Load 114(f3)
+             194:   82(fvec3) FAdd 193 192
+                              Store 114(f3) 194
+             195:     6(bool) Load 8(b)
+             196:   16(float) Select 195 124 20
+             197:      9(int) Load 58(i)
+             198:   16(float) ConvertSToF 197
+             199:   16(float) Load 106(f)
+             200:      9(int) Load 58(i)
+             201:   16(float) ConvertSToF 200
+             202:   95(fvec4) CompositeConstruct 196 198 199 201
+             203:   92(ivec4) Load 94(i4)
+             204:   95(fvec4) ConvertSToF 203
+             205:   95(fvec4) FAdd 202 204
+             206:   95(fvec4) Load 118(f4)
+             207:   95(fvec4) FAdd 206 205
+                              Store 118(f4) 207
+             208:   16(float) Load 106(f)
+             209:      9(int) Load 58(i)
+             210:   16(float) ConvertSToF 209
+             211:   69(fvec2) CompositeConstruct 208 210
+             212:      9(int) Load 58(i)
+             213:   16(float) ConvertSToF 212
+             214:   69(fvec2) VectorTimesScalar 211 213
+             215:   69(fvec2) Load 110(f2)
+             216:   69(fvec2) FAdd 215 214
+                              Store 110(f2) 216
+             217:   16(float) Load 106(f)
+             218:      9(int) Load 58(i)
+             219:   16(float) ConvertSToF 218
+             220:   16(float) Load 106(f)
+             221:   82(fvec3) CompositeConstruct 217 219 220
+             222:      9(int) Load 58(i)
+             223:   16(float) ConvertSToF 222
+             224:   82(fvec3) CompositeConstruct 223 223 223
+             225:   82(fvec3) FAdd 221 224
+             226:   82(fvec3) Load 114(f3)
+             227:   82(fvec3) FAdd 226 225
+                              Store 114(f3) 227
+             228:      9(int) Load 58(i)
+             229:   16(float) ConvertSToF 228
+             230:     6(bool) Load 8(b)
+             231:   16(float) Select 230 124 20
+             232:      9(int) Load 58(i)
+             233:   16(float) ConvertSToF 232
+             234:   16(float) Load 106(f)
+             235:      9(int) Load 58(i)
+             236:   16(float) ConvertSToF 235
+             237:   95(fvec4) CompositeConstruct 231 233 234 236
+             238:   95(fvec4) CompositeConstruct 229 229 229 229
+             239:   95(fvec4) FSub 238 237
+             240:   95(fvec4) Load 118(f4)
+             241:   95(fvec4) FAdd 240 239
+                              Store 118(f4) 241
+             242:   16(float) Load 106(f)
+             243:      9(int) ConvertFToS 242
+             244:      9(int) Load 58(i)
+             245:   66(ivec2) CompositeConstruct 243 244
+             246:   66(ivec2) Load 68(i2)
+             247:   66(ivec2) IAdd 246 245
+                              Store 68(i2) 247
+             248:   16(float) Load 106(f)
+             249:      9(int) ConvertFToS 248
+             250:      9(int) Load 58(i)
+             251:   16(float) Load 106(f)
+             252:      9(int) ConvertFToS 251
+             253:   79(ivec3) CompositeConstruct 249 250 252
+             254:   79(ivec3) Load 81(i3)
+             255:   79(ivec3) IAdd 254 253
+                              Store 81(i3) 255
+             256:     6(bool) Load 8(b)
+             257:      9(int) Select 256 63 62
+             258:      9(int) Load 58(i)
+             259:   16(float) Load 106(f)
+             260:      9(int) ConvertFToS 259
+             261:      9(int) Load 58(i)
+             262:   92(ivec4) CompositeConstruct 257 258 260 261
+             263:   92(ivec4) Load 94(i4)
+             264:   92(ivec4) IAdd 263 262
+                              Store 94(i4) 264
+             265:   16(float) Load 106(f)
+             266:      9(int) Load 58(i)
+             267:   16(float) ConvertSToF 266
+             268:     6(bool) FOrdLessThan 265 267
+             269:     6(bool) LogicalNot 268
+                              SelectionMerge 271 None
+                              BranchConditional 269 270 271
+             270:               Label
+             272:      9(int)   Load 58(i)
+             273:   16(float)   ConvertSToF 272
+             274:   16(float)   Load 106(f)
+             275:     6(bool)   FOrdLessThan 273 274
+                                Branch 271
+             271:             Label
+             276:     6(bool) Phi 268 5 275 270
+             277:     6(bool) LogicalNot 276
+                              SelectionMerge 279 None
+                              BranchConditional 277 278 279
+             278:               Label
+             280:   69(fvec2)   Load 110(f2)
+             281:   66(ivec2)   Load 68(i2)
+             282:   69(fvec2)   ConvertSToF 281
+             283:   23(bvec2)   FOrdEqual 280 282
+             284:     6(bool)   All 283
+                                Branch 279
+             279:             Label
+             285:     6(bool) Phi 276 271 284 278
+             286:     6(bool) LogicalNot 285
+                              SelectionMerge 288 None
+                              BranchConditional 286 287 288
+             287:               Label
+             289:   79(ivec3)   Load 81(i3)
+             290:   82(fvec3)   ConvertSToF 289
+             291:   82(fvec3)   Load 114(f3)
+             292:   31(bvec3)   FOrdNotEqual 290 291
+             293:     6(bool)   Any 292
+                                Branch 288
+             288:             Label
+             294:     6(bool) Phi 285 279 293 287
+                              SelectionMerge 296 None
+                              BranchConditional 294 295 296
+             295:               Label
+             298:     6(bool)   Load 8(b)
+                                SelectionMerge 300 None
+                                BranchConditional 298 299 303
+             299:                 Label
+             301:      9(int)     Load 58(i)
+             302:   16(float)     ConvertSToF 301
+                                  Store 297 302
+                                  Branch 300
+             303:                 Label
+             304:    105(ptr)     AccessChain 110(f2) 14
+             305:   16(float)     Load 304
+                                  Store 297 305
+                                  Branch 300
+             300:               Label
+             306:   16(float)   Load 297
+             308:   23(bvec2)   Load 25(b2)
+             309:     6(bool)   CompositeExtract 308 0
+                                SelectionMerge 311 None
+                                BranchConditional 309 310 314
+             310:                 Label
+             312:    105(ptr)     AccessChain 114(f3) 14
+             313:   16(float)     Load 312
+                                  Store 307 313
+                                  Branch 311
+             314:                 Label
+             316:     57(ptr)     AccessChain 68(i2) 315
+             317:      9(int)     Load 316
+             318:   16(float)     ConvertSToF 317
+                                  Store 307 318
+                                  Branch 311
+             311:               Label
+             319:   16(float)   Load 307
+             320:   16(float)   FAdd 306 319
+                                Store 106(f) 320
+                                Branch 296
+             296:             Label
+             324:     6(bool) Load 8(b)
+             325:   23(bvec2) Load 25(b2)
+             326:     6(bool) CompositeExtract 325 0
+             327:     6(bool) LogicalOr 324 326
+             328:   23(bvec2) Load 25(b2)
+             329:     6(bool) CompositeExtract 328 1
+             330:     6(bool) LogicalOr 327 329
+             331:   31(bvec3) Load 33(b3)
+             332:     6(bool) CompositeExtract 331 0
+             333:     6(bool) LogicalOr 330 332
+             334:   31(bvec3) Load 33(b3)
+             335:     6(bool) CompositeExtract 334 1
+             336:     6(bool) LogicalOr 333 335
+             337:   31(bvec3) Load 33(b3)
+             338:     6(bool) CompositeExtract 337 2
+             339:     6(bool) LogicalOr 336 338
+             340:   43(bvec4) Load 45(b4)
+             341:     6(bool) CompositeExtract 340 0
+             342:     6(bool) LogicalOr 339 341
+             343:   43(bvec4) Load 45(b4)
+             344:     6(bool) CompositeExtract 343 1
+             345:     6(bool) LogicalOr 342 344
+             346:   43(bvec4) Load 45(b4)
+             347:     6(bool) CompositeExtract 346 2
+             348:     6(bool) LogicalOr 345 347
+             349:   43(bvec4) Load 45(b4)
+             350:     6(bool) CompositeExtract 349 3
+             351:     6(bool) LogicalOr 348 350
+                              SelectionMerge 353 None
+                              BranchConditional 351 352 415
+             352:               Label
+             354:      9(int)   Load 58(i)
+             355:     57(ptr)   AccessChain 68(i2) 14
+             356:      9(int)   Load 355
+             357:      9(int)   IAdd 354 356
+             358:     57(ptr)   AccessChain 68(i2) 315
+             359:      9(int)   Load 358
+             360:      9(int)   IAdd 357 359
+             361:     57(ptr)   AccessChain 81(i3) 14
+             362:      9(int)   Load 361
+             363:      9(int)   IAdd 360 362
+             364:     57(ptr)   AccessChain 81(i3) 315
+             365:      9(int)   Load 364
+             366:      9(int)   IAdd 363 365
+             368:     57(ptr)   AccessChain 81(i3) 367
+             369:      9(int)   Load 368
+             370:      9(int)   IAdd 366 369
+             371:     57(ptr)   AccessChain 94(i4) 14
+             372:      9(int)   Load 371
+             373:      9(int)   IAdd 370 372
+             374:     57(ptr)   AccessChain 94(i4) 315
+             375:      9(int)   Load 374
+             376:      9(int)   IAdd 373 375
+             377:     57(ptr)   AccessChain 94(i4) 367
+             378:      9(int)   Load 377
+             379:      9(int)   IAdd 376 378
+             381:     57(ptr)   AccessChain 94(i4) 380
+             382:      9(int)   Load 381
+             383:      9(int)   IAdd 379 382
+             384:   16(float)   ConvertSToF 383
+             385:   16(float)   Load 106(f)
+             386:   16(float)   FAdd 384 385
+             387:    105(ptr)   AccessChain 110(f2) 14
+             388:   16(float)   Load 387
+             389:   16(float)   FAdd 386 388
+             390:    105(ptr)   AccessChain 110(f2) 315
+             391:   16(float)   Load 390
+             392:   16(float)   FAdd 389 391
+             393:    105(ptr)   AccessChain 114(f3) 14
+             394:   16(float)   Load 393
+             395:   16(float)   FAdd 392 394
+             396:    105(ptr)   AccessChain 114(f3) 315
+             397:   16(float)   Load 396
+             398:   16(float)   FAdd 395 397
+             399:    105(ptr)   AccessChain 114(f3) 367
+             400:   16(float)   Load 399
+             401:   16(float)   FAdd 398 400
+             402:    105(ptr)   AccessChain 118(f4) 14
+             403:   16(float)   Load 402
+             404:   16(float)   FAdd 401 403
+             405:    105(ptr)   AccessChain 118(f4) 315
+             406:   16(float)   Load 405
+             407:   16(float)   FAdd 404 406
+             408:    105(ptr)   AccessChain 118(f4) 367
+             409:   16(float)   Load 408
+             410:   16(float)   FAdd 407 409
+             411:    105(ptr)   AccessChain 118(f4) 380
+             412:   16(float)   Load 411
+             413:   16(float)   FAdd 410 412
+             414:   95(fvec4)   CompositeConstruct 413 413 413 413
+                                Store 323 414
+                                Branch 353
+             415:               Label
+                                Store 323 151
+                                Branch 353
+             353:             Label
+             416:   95(fvec4) Load 323
+                              Store 322(gl_FragColor) 416
+                              Store 417(cv2) 102
+             419:   92(ivec4) Load 417(cv2)
+             420:   43(bvec4) INotEqual 419 160
+                              Store 418(cv5) 420
+             421:   43(bvec4) Load 418(cv5)
+             422:   95(fvec4) Select 421 151 150
+             423:   16(float) CompositeExtract 422 0
+             424:   95(fvec4) Load 322(gl_FragColor)
+             425:   95(fvec4) CompositeConstruct 423 423 423 423
+             426:   95(fvec4) FAdd 424 425
+                              Store 322(gl_FragColor) 426
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out
index ee3c691..277c053 100755
--- a/Test/baseResults/spv.dataOut.frag.out
+++ b/Test/baseResults/spv.dataOut.frag.out
@@ -1,41 +1,41 @@
-spv.dataOut.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 20

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 16

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 12  "gl_FragData"

-                              Name 16  "Color"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypeInt 32 0

-               9:      8(int) Constant 32

-              10:             TypeArray 7(fvec4) 9

-              11:             TypePointer Output 10

- 12(gl_FragData):     11(ptr) Variable Output

-              13:             TypeInt 32 1

-              14:     13(int) Constant 1

-              15:             TypePointer Input 7(fvec4)

-       16(Color):     15(ptr) Variable Input

-              18:             TypePointer Output 7(fvec4)

-         4(main):           2 Function None 3

-               5:             Label

-              17:    7(fvec4) Load 16(Color)

-              19:     18(ptr) AccessChain 12(gl_FragData) 14

-                              Store 19 17

-                              Return

-                              FunctionEnd

+spv.dataOut.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 20
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 16
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 12  "gl_FragData"
+                              Name 16  "Color"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeInt 32 0
+               9:      8(int) Constant 32
+              10:             TypeArray 7(fvec4) 9
+              11:             TypePointer Output 10
+ 12(gl_FragData):     11(ptr) Variable Output
+              13:             TypeInt 32 1
+              14:     13(int) Constant 1
+              15:             TypePointer Input 7(fvec4)
+       16(Color):     15(ptr) Variable Input
+              18:             TypePointer Output 7(fvec4)
+         4(main):           2 Function None 3
+               5:             Label
+              17:    7(fvec4) Load 16(Color)
+              19:     18(ptr) AccessChain 12(gl_FragData) 14
+                              Store 19 17
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out
index 6a2fd70..be3d3d5 100755
--- a/Test/baseResults/spv.dataOutIndirect.frag.out
+++ b/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -1,44 +1,44 @@
-spv.dataOutIndirect.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 22

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 18

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 12  "gl_FragData"

-                              Name 15  "i"

-                              Name 18  "Color"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypeInt 32 0

-               9:      8(int) Constant 32

-              10:             TypeArray 7(fvec4) 9

-              11:             TypePointer Output 10

- 12(gl_FragData):     11(ptr) Variable Output

-              13:             TypeInt 32 1

-              14:             TypePointer UniformConstant 13(int)

-           15(i):     14(ptr) Variable UniformConstant

-              17:             TypePointer Input 7(fvec4)

-       18(Color):     17(ptr) Variable Input

-              20:             TypePointer Output 7(fvec4)

-         4(main):           2 Function None 3

-               5:             Label

-              16:     13(int) Load 15(i)

-              19:    7(fvec4) Load 18(Color)

-              21:     20(ptr) AccessChain 12(gl_FragData) 16

-                              Store 21 19

-                              Return

-                              FunctionEnd

+spv.dataOutIndirect.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 22
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 18
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 12  "gl_FragData"
+                              Name 15  "i"
+                              Name 18  "Color"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeInt 32 0
+               9:      8(int) Constant 32
+              10:             TypeArray 7(fvec4) 9
+              11:             TypePointer Output 10
+ 12(gl_FragData):     11(ptr) Variable Output
+              13:             TypeInt 32 1
+              14:             TypePointer UniformConstant 13(int)
+           15(i):     14(ptr) Variable UniformConstant
+              17:             TypePointer Input 7(fvec4)
+       18(Color):     17(ptr) Variable Input
+              20:             TypePointer Output 7(fvec4)
+         4(main):           2 Function None 3
+               5:             Label
+              16:     13(int) Load 15(i)
+              19:    7(fvec4) Load 18(Color)
+              21:     20(ptr) AccessChain 12(gl_FragData) 16
+                              Store 21 19
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out
index 0b24b62..536fe3f 100755
--- a/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -1,71 +1,71 @@
-spv.dataOutIndirect.vert

-WARNING: 0:3: attribute deprecated in version 130; may be removed in future release

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 38

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 26 23 37

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 23  "colorOut"

-                              Name 26  "color"

-                              Name 32  "gl_Position"

-                              Name 37  "gl_VertexID"

-                              Decorate 32(gl_Position) BuiltIn Position

-                              Decorate 37(gl_VertexID) BuiltIn VertexId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 1

-              14:      6(int) Constant 5

-              15:             TypeBool

-              17:             TypeFloat 32

-              18:             TypeVector 17(float) 4

-              19:             TypeInt 32 0

-              20:     19(int) Constant 6

-              21:             TypeArray 18(fvec4) 20

-              22:             TypePointer Output 21

-    23(colorOut):     22(ptr) Variable Output

-              25:             TypePointer Input 18(fvec4)

-       26(color):     25(ptr) Variable Input

-              28:             TypePointer Output 18(fvec4)

- 32(gl_Position):     28(ptr) Variable Output

-              33:      6(int) Constant 2

-              36:             TypePointer Input 6(int)

- 37(gl_VertexID):     36(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:      6(int) Load 8(i)

-              16:    15(bool) SLessThan 13 14

-                              LoopMerge 11 10 None

-                              BranchConditional 16 12 11

-              12:               Label

-              24:      6(int)   Load 8(i)

-              27:   18(fvec4)   Load 26(color)

-              29:     28(ptr)   AccessChain 23(colorOut) 24

-                                Store 29 27

-              30:      6(int)   Load 8(i)

-              31:      6(int)   IAdd 30 9

-                                Store 8(i) 31

-                                Branch 10

-              11:             Label

-              34:     28(ptr) AccessChain 23(colorOut) 33

-              35:   18(fvec4) Load 34

-                              Store 32(gl_Position) 35

-                              Return

-                              FunctionEnd

+spv.dataOutIndirect.vert
+WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 38
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 26 23 37
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 23  "colorOut"
+                              Name 26  "color"
+                              Name 32  "gl_Position"
+                              Name 37  "gl_VertexID"
+                              Decorate 32(gl_Position) BuiltIn Position
+                              Decorate 37(gl_VertexID) BuiltIn VertexId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 1
+              14:      6(int) Constant 5
+              15:             TypeBool
+              17:             TypeFloat 32
+              18:             TypeVector 17(float) 4
+              19:             TypeInt 32 0
+              20:     19(int) Constant 6
+              21:             TypeArray 18(fvec4) 20
+              22:             TypePointer Output 21
+    23(colorOut):     22(ptr) Variable Output
+              25:             TypePointer Input 18(fvec4)
+       26(color):     25(ptr) Variable Input
+              28:             TypePointer Output 18(fvec4)
+ 32(gl_Position):     28(ptr) Variable Output
+              33:      6(int) Constant 2
+              36:             TypePointer Input 6(int)
+ 37(gl_VertexID):     36(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:      6(int) Load 8(i)
+              16:    15(bool) SLessThan 13 14
+                              LoopMerge 11 10 None
+                              BranchConditional 16 12 11
+              12:               Label
+              24:      6(int)   Load 8(i)
+              27:   18(fvec4)   Load 26(color)
+              29:     28(ptr)   AccessChain 23(colorOut) 24
+                                Store 29 27
+              30:      6(int)   Load 8(i)
+              31:      6(int)   IAdd 30 9
+                                Store 8(i) 31
+                                Branch 10
+              11:             Label
+              34:     28(ptr) AccessChain 23(colorOut) 33
+              35:   18(fvec4) Load 34
+                              Store 32(gl_Position) 35
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.deepRvalue.frag.out b/Test/baseResults/spv.deepRvalue.frag.out
index 1ed6681..4680492 100644
--- a/Test/baseResults/spv.deepRvalue.frag.out
+++ b/Test/baseResults/spv.deepRvalue.frag.out
@@ -1,6 +1,6 @@
-spv.deepRvalue.frag

-

-Linked fragment stage:

-

-

-Missing functionality: binary operation on matrix

+spv.deepRvalue.frag
+
+Linked fragment stage:
+
+
+Missing functionality: binary operation on matrix
diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out
index 07fb171..f978fa6 100755
--- a/Test/baseResults/spv.depthOut.frag.out
+++ b/Test/baseResults/spv.depthOut.frag.out
@@ -1,40 +1,40 @@
-spv.depthOut.frag

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 15

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 14 10 8 8

-                              ExecutionMode 4 OriginLowerLeft

-                              ExecutionMode 4 DepthGreater

-                              ExecutionMode 4 DepthReplacing

-                              Source GLSL 450

-                              Name 4  "main"

-                              Name 8  "gl_FragDepth"

-                              Name 10  "Depth"

-                              Name 14  "Color"

-                              Decorate 8(gl_FragDepth) BuiltIn FragDepth

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Output 6(float)

- 8(gl_FragDepth):      7(ptr) Variable Output

-               9:             TypePointer Input 6(float)

-       10(Depth):      9(ptr) Variable Input

-              12:             TypeVector 6(float) 4

-              13:             TypePointer Input 12(fvec4)

-       14(Color):     13(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              11:    6(float) Load 10(Depth)

-                              Store 8(gl_FragDepth) 11

-                              Return

-                              FunctionEnd

+spv.depthOut.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 15
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 14 10 8 8
+                              ExecutionMode 4 OriginLowerLeft
+                              ExecutionMode 4 DepthGreater
+                              ExecutionMode 4 DepthReplacing
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 8  "gl_FragDepth"
+                              Name 10  "Depth"
+                              Name 14  "Color"
+                              Decorate 8(gl_FragDepth) BuiltIn FragDepth
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Output 6(float)
+ 8(gl_FragDepth):      7(ptr) Variable Output
+               9:             TypePointer Input 6(float)
+       10(Depth):      9(ptr) Variable Input
+              12:             TypeVector 6(float) 4
+              13:             TypePointer Input 12(fvec4)
+       14(Color):     13(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              11:    6(float) Load 10(Depth)
+                              Store 8(gl_FragDepth) 11
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out
index 7f48250..26da15c 100755
--- a/Test/baseResults/spv.discard-dce.frag.out
+++ b/Test/baseResults/spv.discard-dce.frag.out
@@ -1,130 +1,130 @@
-spv.discard-dce.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 84

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 21

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 9  "white"

-                              Name 12  "black"

-                              Name 15  "color"

-                              Name 18  "x"

-                              Name 21  "tex_coord"

-                              Name 30  "y"

-                              Name 36  "radius"

-                              Name 59  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:    6(float) Constant 1065353216

-              11:    7(fvec4) ConstantComposite 10 10 10 10

-              13:    6(float) Constant 1045220557

-              14:    7(fvec4) ConstantComposite 13 13 13 13

-              17:             TypePointer Function 6(float)

-              19:             TypeVector 6(float) 2

-              20:             TypePointer Input 19(fvec2)

-   21(tex_coord):     20(ptr) Variable Input

-              22:             TypeInt 32 0

-              23:     22(int) Constant 0

-              24:             TypePointer Input 6(float)

-              27:    6(float) Constant 1073741824

-              31:     22(int) Constant 1

-              46:             TypeBool

-              51:    6(float) Constant 1066192077

-              58:             TypePointer Output 7(fvec4)

-59(gl_FragColor):     58(ptr) Variable Output

-              62:    6(float) Constant 1067030938

-              71:    6(float) Constant 1061158912

-              76:    6(float) Constant 1098907648

-         4(main):           2 Function None 3

-               5:             Label

-        9(white):      8(ptr) Variable Function

-       12(black):      8(ptr) Variable Function

-       15(color):      8(ptr) Variable Function

-           18(x):     17(ptr) Variable Function

-           30(y):     17(ptr) Variable Function

-      36(radius):     17(ptr) Variable Function

-                              Store 9(white) 11

-                              Store 12(black) 14

-              16:    7(fvec4) Load 9(white)

-                              Store 15(color) 16

-              25:     24(ptr) AccessChain 21(tex_coord) 23

-              26:    6(float) Load 25

-              28:    6(float) FMul 26 27

-              29:    6(float) FSub 28 10

-                              Store 18(x) 29

-              32:     24(ptr) AccessChain 21(tex_coord) 31

-              33:    6(float) Load 32

-              34:    6(float) FMul 33 27

-              35:    6(float) FSub 34 10

-                              Store 30(y) 35

-              37:    6(float) Load 18(x)

-              38:    6(float) Load 18(x)

-              39:    6(float) FMul 37 38

-              40:    6(float) Load 30(y)

-              41:    6(float) Load 30(y)

-              42:    6(float) FMul 40 41

-              43:    6(float) FAdd 39 42

-              44:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43

-                              Store 36(radius) 44

-              45:    6(float) Load 36(radius)

-              47:    46(bool) FOrdGreaterThan 45 10

-                              SelectionMerge 49 None

-                              BranchConditional 47 48 49

-              48:               Label

-              50:    6(float)   Load 36(radius)

-              52:    46(bool)   FOrdGreaterThan 50 51

-                                SelectionMerge 54 None

-                                BranchConditional 52 53 54

-              53:                 Label

-              55:    7(fvec4)     Load 15(color)

-              56:    7(fvec4)     CompositeConstruct 10 10 10 10

-              57:    7(fvec4)     FAdd 55 56

-                                  Store 15(color) 57

-                                  Branch 54

-              54:               Label

-              60:    7(fvec4)   Load 15(color)

-                                Store 59(gl_FragColor) 60

-              61:    6(float)   Load 36(radius)

-              63:    46(bool)   FOrdGreaterThan 61 62

-                                SelectionMerge 65 None

-                                BranchConditional 63 64 65

-              64:                 Label

-              66:    7(fvec4)     Load 15(color)

-              67:    7(fvec4)     CompositeConstruct 10 10 10 10

-              68:    7(fvec4)     FAdd 66 67

-                                  Store 15(color) 68

-                                  Branch 65

-              65:               Label

-                                Kill

-              49:             Label

-              70:    6(float) Load 36(radius)

-              72:    46(bool) FOrdGreaterThanEqual 70 71

-                              SelectionMerge 74 None

-                              BranchConditional 72 73 74

-              73:               Label

-              75:    6(float)   Load 36(radius)

-              77:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 75 76

-              78:    6(float)   FDiv 77 27

-              79:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 78

-              80:    7(fvec4)   Load 15(color)

-              81:    7(fvec4)   CompositeConstruct 79 79 79 79

-              82:    7(fvec4)   FSub 80 81

-                                Store 15(color) 82

-                                Branch 74

-              74:             Label

-              83:    7(fvec4) Load 15(color)

-                              Store 59(gl_FragColor) 83

-                              Return

-                              FunctionEnd

+spv.discard-dce.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 84
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 21
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 9  "white"
+                              Name 12  "black"
+                              Name 15  "color"
+                              Name 18  "x"
+                              Name 21  "tex_coord"
+                              Name 30  "y"
+                              Name 36  "radius"
+                              Name 59  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:    6(float) Constant 1065353216
+              11:    7(fvec4) ConstantComposite 10 10 10 10
+              13:    6(float) Constant 1045220557
+              14:    7(fvec4) ConstantComposite 13 13 13 13
+              17:             TypePointer Function 6(float)
+              19:             TypeVector 6(float) 2
+              20:             TypePointer Input 19(fvec2)
+   21(tex_coord):     20(ptr) Variable Input
+              22:             TypeInt 32 0
+              23:     22(int) Constant 0
+              24:             TypePointer Input 6(float)
+              27:    6(float) Constant 1073741824
+              31:     22(int) Constant 1
+              46:             TypeBool
+              51:    6(float) Constant 1066192077
+              58:             TypePointer Output 7(fvec4)
+59(gl_FragColor):     58(ptr) Variable Output
+              62:    6(float) Constant 1067030938
+              71:    6(float) Constant 1061158912
+              76:    6(float) Constant 1098907648
+         4(main):           2 Function None 3
+               5:             Label
+        9(white):      8(ptr) Variable Function
+       12(black):      8(ptr) Variable Function
+       15(color):      8(ptr) Variable Function
+           18(x):     17(ptr) Variable Function
+           30(y):     17(ptr) Variable Function
+      36(radius):     17(ptr) Variable Function
+                              Store 9(white) 11
+                              Store 12(black) 14
+              16:    7(fvec4) Load 9(white)
+                              Store 15(color) 16
+              25:     24(ptr) AccessChain 21(tex_coord) 23
+              26:    6(float) Load 25
+              28:    6(float) FMul 26 27
+              29:    6(float) FSub 28 10
+                              Store 18(x) 29
+              32:     24(ptr) AccessChain 21(tex_coord) 31
+              33:    6(float) Load 32
+              34:    6(float) FMul 33 27
+              35:    6(float) FSub 34 10
+                              Store 30(y) 35
+              37:    6(float) Load 18(x)
+              38:    6(float) Load 18(x)
+              39:    6(float) FMul 37 38
+              40:    6(float) Load 30(y)
+              41:    6(float) Load 30(y)
+              42:    6(float) FMul 40 41
+              43:    6(float) FAdd 39 42
+              44:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43
+                              Store 36(radius) 44
+              45:    6(float) Load 36(radius)
+              47:    46(bool) FOrdGreaterThan 45 10
+                              SelectionMerge 49 None
+                              BranchConditional 47 48 49
+              48:               Label
+              50:    6(float)   Load 36(radius)
+              52:    46(bool)   FOrdGreaterThan 50 51
+                                SelectionMerge 54 None
+                                BranchConditional 52 53 54
+              53:                 Label
+              55:    7(fvec4)     Load 15(color)
+              56:    7(fvec4)     CompositeConstruct 10 10 10 10
+              57:    7(fvec4)     FAdd 55 56
+                                  Store 15(color) 57
+                                  Branch 54
+              54:               Label
+              60:    7(fvec4)   Load 15(color)
+                                Store 59(gl_FragColor) 60
+              61:    6(float)   Load 36(radius)
+              63:    46(bool)   FOrdGreaterThan 61 62
+                                SelectionMerge 65 None
+                                BranchConditional 63 64 65
+              64:                 Label
+              66:    7(fvec4)     Load 15(color)
+              67:    7(fvec4)     CompositeConstruct 10 10 10 10
+              68:    7(fvec4)     FAdd 66 67
+                                  Store 15(color) 68
+                                  Branch 65
+              65:               Label
+                                Kill
+              49:             Label
+              70:    6(float) Load 36(radius)
+              72:    46(bool) FOrdGreaterThanEqual 70 71
+                              SelectionMerge 74 None
+                              BranchConditional 72 73 74
+              73:               Label
+              75:    6(float)   Load 36(radius)
+              77:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 75 76
+              78:    6(float)   FDiv 77 27
+              79:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 78
+              80:    7(fvec4)   Load 15(color)
+              81:    7(fvec4)   CompositeConstruct 79 79 79 79
+              82:    7(fvec4)   FSub 80 81
+                                Store 15(color) 82
+                                Branch 74
+              74:             Label
+              83:    7(fvec4) Load 15(color)
+                              Store 59(gl_FragColor) 83
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out
index 5da8827..e697f71 100755
--- a/Test/baseResults/spv.do-simple.vert.out
+++ b/Test/baseResults/spv.do-simple.vert.out
@@ -1,60 +1,60 @@
-spv.do-simple.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 29

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 27 28

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 27  "gl_VertexID"

-                              Name 28  "gl_InstanceID"

-                              Decorate 27(gl_VertexID) BuiltIn VertexId

-                              Decorate 28(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 0

-              14:             TypeBool

-              15:    14(bool) ConstantTrue

-              19:      6(int) Constant 10

-              23:      6(int) Constant 1

-              25:    14(bool) ConstantFalse

-              26:             TypePointer Input 6(int)

- 27(gl_VertexID):     26(ptr) Variable Input

-28(gl_InstanceID):     26(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:    14(bool) Phi 15 5 25 12

-                              LoopMerge 11 10 None

-                              Branch 16

-              16:             Label

-                              SelectionMerge 12 None

-                              BranchConditional 13 12 17

-              17:               Label

-              18:      6(int)   Load 8(i)

-              20:    14(bool)   SLessThan 18 19

-                                SelectionMerge 21 None

-                                BranchConditional 20 21 11

-              21:               Label

-                                Branch 12

-              12:             Label

-              22:      6(int) Load 8(i)

-              24:      6(int) IAdd 22 23

-                              Store 8(i) 24

-                              Branch 10

-              11:             Label

-                              Return

-                              FunctionEnd

+spv.do-simple.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 29
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 27 28
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 27  "gl_VertexID"
+                              Name 28  "gl_InstanceID"
+                              Decorate 27(gl_VertexID) BuiltIn VertexId
+                              Decorate 28(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 0
+              14:             TypeBool
+              15:    14(bool) ConstantTrue
+              19:      6(int) Constant 10
+              23:      6(int) Constant 1
+              25:    14(bool) ConstantFalse
+              26:             TypePointer Input 6(int)
+ 27(gl_VertexID):     26(ptr) Variable Input
+28(gl_InstanceID):     26(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:    14(bool) Phi 15 5 25 12
+                              LoopMerge 11 10 None
+                              Branch 16
+              16:             Label
+                              SelectionMerge 12 None
+                              BranchConditional 13 12 17
+              17:               Label
+              18:      6(int)   Load 8(i)
+              20:    14(bool)   SLessThan 18 19
+                                SelectionMerge 21 None
+                                BranchConditional 20 21 11
+              21:               Label
+                                Branch 12
+              12:             Label
+              22:      6(int) Load 8(i)
+              24:      6(int) IAdd 22 23
+                              Store 8(i) 24
+                              Branch 10
+              11:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out
index f148d51..c483861 100755
--- a/Test/baseResults/spv.do-while-continue-break.vert.out
+++ b/Test/baseResults/spv.do-while-continue-break.vert.out
@@ -1,104 +1,104 @@
-spv.do-while-continue-break.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 51

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 49 50

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 24  "A"

-                              Name 30  "B"

-                              Name 33  "C"

-                              Name 39  "D"

-                              Name 42  "E"

-                              Name 44  "F"

-                              Name 46  "G"

-                              Name 49  "gl_VertexID"

-                              Name 50  "gl_InstanceID"

-                              Decorate 49(gl_VertexID) BuiltIn VertexId

-                              Decorate 50(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 0

-              14:             TypeBool

-              15:    14(bool) ConstantTrue

-              19:      6(int) Constant 1

-              21:      6(int) Constant 19

-              26:      6(int) Constant 2

-              31:    14(bool) ConstantFalse

-              35:      6(int) Constant 5

-              40:      6(int) Constant 3

-              43:      6(int) Constant 42

-              45:      6(int) Constant 99

-              47:      6(int) Constant 12

-              48:             TypePointer Input 6(int)

- 49(gl_VertexID):     48(ptr) Variable Input

-50(gl_InstanceID):     48(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-           24(A):      7(ptr) Variable Function

-           30(B):      7(ptr) Variable Function

-           33(C):      7(ptr) Variable Function

-           39(D):      7(ptr) Variable Function

-           42(E):      7(ptr) Variable Function

-           44(F):      7(ptr) Variable Function

-           46(G):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:    14(bool) Phi 15 5 31 28 31 38

-                              LoopMerge 11 10 None

-                              Branch 16

-              16:             Label

-                              SelectionMerge 12 None

-                              BranchConditional 13 12 17

-              17:               Label

-              18:      6(int)   Load 8(i)

-              20:      6(int)   IAdd 18 19

-                                Store 8(i) 20

-              22:    14(bool)   SLessThan 20 21

-                                SelectionMerge 23 None

-                                BranchConditional 22 23 11

-              23:               Label

-                                Branch 12

-              12:             Label

-                              Store 24(A) 9

-              25:      6(int) Load 8(i)

-              27:    14(bool) IEqual 25 26

-                              SelectionMerge 29 None

-                              BranchConditional 27 28 29

-              28:               Label

-                                Store 30(B) 19

-                                Branch 10

-              32:               Label

-                                Store 33(C) 26

-                                Branch 29

-              29:             Label

-              34:      6(int) Load 8(i)

-              36:    14(bool) IEqual 34 35

-                              SelectionMerge 38 None

-                              BranchConditional 36 37 38

-              37:               Label

-                                Store 39(D) 40

-                                Branch 11

-              41:               Label

-                                Store 42(E) 43

-                                Branch 38

-              38:             Label

-                              Store 44(F) 45

-                              Branch 10

-              11:             Label

-                              Store 46(G) 47

-                              Return

-                              FunctionEnd

+spv.do-while-continue-break.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 51
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 49 50
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 24  "A"
+                              Name 30  "B"
+                              Name 33  "C"
+                              Name 39  "D"
+                              Name 42  "E"
+                              Name 44  "F"
+                              Name 46  "G"
+                              Name 49  "gl_VertexID"
+                              Name 50  "gl_InstanceID"
+                              Decorate 49(gl_VertexID) BuiltIn VertexId
+                              Decorate 50(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 0
+              14:             TypeBool
+              15:    14(bool) ConstantTrue
+              19:      6(int) Constant 1
+              21:      6(int) Constant 19
+              26:      6(int) Constant 2
+              31:    14(bool) ConstantFalse
+              35:      6(int) Constant 5
+              40:      6(int) Constant 3
+              43:      6(int) Constant 42
+              45:      6(int) Constant 99
+              47:      6(int) Constant 12
+              48:             TypePointer Input 6(int)
+ 49(gl_VertexID):     48(ptr) Variable Input
+50(gl_InstanceID):     48(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+           24(A):      7(ptr) Variable Function
+           30(B):      7(ptr) Variable Function
+           33(C):      7(ptr) Variable Function
+           39(D):      7(ptr) Variable Function
+           42(E):      7(ptr) Variable Function
+           44(F):      7(ptr) Variable Function
+           46(G):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:    14(bool) Phi 15 5 31 28 31 38
+                              LoopMerge 11 10 None
+                              Branch 16
+              16:             Label
+                              SelectionMerge 12 None
+                              BranchConditional 13 12 17
+              17:               Label
+              18:      6(int)   Load 8(i)
+              20:      6(int)   IAdd 18 19
+                                Store 8(i) 20
+              22:    14(bool)   SLessThan 20 21
+                                SelectionMerge 23 None
+                                BranchConditional 22 23 11
+              23:               Label
+                                Branch 12
+              12:             Label
+                              Store 24(A) 9
+              25:      6(int) Load 8(i)
+              27:    14(bool) IEqual 25 26
+                              SelectionMerge 29 None
+                              BranchConditional 27 28 29
+              28:               Label
+                                Store 30(B) 19
+                                Branch 10
+              32:               Label
+                                Store 33(C) 26
+                                Branch 29
+              29:             Label
+              34:      6(int) Load 8(i)
+              36:    14(bool) IEqual 34 35
+                              SelectionMerge 38 None
+                              BranchConditional 36 37 38
+              37:               Label
+                                Store 39(D) 40
+                                Branch 11
+              41:               Label
+                                Store 42(E) 43
+                                Branch 38
+              38:             Label
+                              Store 44(F) 45
+                              Branch 10
+              11:             Label
+                              Store 46(G) 47
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out
index d33fb8b..ab2b713 100755
--- a/Test/baseResults/spv.doWhileLoop.frag.out
+++ b/Test/baseResults/spv.doWhileLoop.frag.out
@@ -1,73 +1,73 @@
-spv.doWhileLoop.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 40

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 11

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 27  "d"

-                              Name 32  "bigColor"

-                              Name 38  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              17:             TypeBool

-              18:    17(bool) ConstantTrue

-              21:             TypeInt 32 0

-              22:     21(int) Constant 0

-              23:             TypePointer Function 6(float)

-              26:             TypePointer UniformConstant 6(float)

-           27(d):     26(ptr) Variable UniformConstant

-              31:             TypePointer UniformConstant 7(fvec4)

-    32(bigColor):     31(ptr) Variable UniformConstant

-              36:    17(bool) ConstantFalse

-              37:             TypePointer Output 7(fvec4)

-38(gl_FragColor):     37(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-                              Branch 13

-              13:             Label

-              16:    17(bool) Phi 18 5 36 15

-                              LoopMerge 14 13 None

-                              Branch 19

-              19:             Label

-                              SelectionMerge 15 None

-                              BranchConditional 16 15 20

-              20:               Label

-              24:     23(ptr)   AccessChain 9(color) 22

-              25:    6(float)   Load 24

-              28:    6(float)   Load 27(d)

-              29:    17(bool)   FOrdLessThan 25 28

-                                SelectionMerge 30 None

-                                BranchConditional 29 30 14

-              30:               Label

-                                Branch 15

-              15:             Label

-              33:    7(fvec4) Load 32(bigColor)

-              34:    7(fvec4) Load 9(color)

-              35:    7(fvec4) FAdd 34 33

-                              Store 9(color) 35

-                              Branch 13

-              14:             Label

-              39:    7(fvec4) Load 9(color)

-                              Store 38(gl_FragColor) 39

-                              Return

-                              FunctionEnd

+spv.doWhileLoop.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 40
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 11
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 27  "d"
+                              Name 32  "bigColor"
+                              Name 38  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              17:             TypeBool
+              18:    17(bool) ConstantTrue
+              21:             TypeInt 32 0
+              22:     21(int) Constant 0
+              23:             TypePointer Function 6(float)
+              26:             TypePointer UniformConstant 6(float)
+           27(d):     26(ptr) Variable UniformConstant
+              31:             TypePointer UniformConstant 7(fvec4)
+    32(bigColor):     31(ptr) Variable UniformConstant
+              36:    17(bool) ConstantFalse
+              37:             TypePointer Output 7(fvec4)
+38(gl_FragColor):     37(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+                              Branch 13
+              13:             Label
+              16:    17(bool) Phi 18 5 36 15
+                              LoopMerge 14 13 None
+                              Branch 19
+              19:             Label
+                              SelectionMerge 15 None
+                              BranchConditional 16 15 20
+              20:               Label
+              24:     23(ptr)   AccessChain 9(color) 22
+              25:    6(float)   Load 24
+              28:    6(float)   Load 27(d)
+              29:    17(bool)   FOrdLessThan 25 28
+                                SelectionMerge 30 None
+                                BranchConditional 29 30 14
+              30:               Label
+                                Branch 15
+              15:             Label
+              33:    7(fvec4) Load 32(bigColor)
+              34:    7(fvec4) Load 9(color)
+              35:    7(fvec4) FAdd 34 33
+                              Store 9(color) 35
+                              Branch 13
+              14:             Label
+              39:    7(fvec4) Load 9(color)
+                              Store 38(gl_FragColor) 39
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out
index 1a63bbb..b588ca9 100755
--- a/Test/baseResults/spv.double.comp.out
+++ b/Test/baseResults/spv.double.comp.out
@@ -1,102 +1,102 @@
-spv.double.comp

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked compute stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 62

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint GLCompute 4  "main"

-                              ExecutionMode 4 LocalSize 1 1 1

-                              Source GLSL 430

-                              Name 4  "main"

-                              Name 8  "bufName"

-                              MemberName 8(bufName) 0  "f"

-                              MemberName 8(bufName) 1  "d"

-                              Name 10  "bufInst"

-                              Name 22  "storePos"

-                              Name 26  "gl_GlobalInvocationID"

-                              Name 32  "localCoef"

-                              Name 33  "gl_LocalInvocationID"

-                              Name 49  "aa"

-                              Name 54  "globalCoef"

-                              Name 58  "roll"

-                              Name 61  "destTex"

-                              Decorate 8(bufName) GLSLShared

-                              Decorate 8(bufName) BufferBlock

-                              Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId

-                              Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeFloat 64

-      8(bufName):             TypeStruct 6(float) 7(float)

-               9:             TypePointer Uniform 8(bufName)

-     10(bufInst):      9(ptr) Variable Uniform

-              11:             TypeInt 32 1

-              12:     11(int) Constant 1

-              13:    7(float) Constant 1413754136 1074340347

-              14:             TypePointer Uniform 7(float)

-              16:     11(int) Constant 0

-              17:    6(float) Constant 1095307129

-              18:             TypePointer Uniform 6(float)

-              20:             TypeVector 11(int) 2

-              21:             TypePointer Function 20(ivec2)

-              23:             TypeInt 32 0

-              24:             TypeVector 23(int) 3

-              25:             TypePointer Input 24(ivec3)

-26(gl_GlobalInvocationID):     25(ptr) Variable Input

-              27:             TypeVector 23(int) 2

-              31:             TypePointer Function 7(float)

-33(gl_LocalInvocationID):     25(ptr) Variable Input

-              37:     11(int) Constant 8

-              40:             TypeVector 6(float) 2

-              42:    6(float) Constant 1090519040

-              47:             TypeVector 7(float) 4

-              48:             TypePointer Function 47(fvec4)

-              50:    7(float) Constant 2576980378 1071225241

-              51:    7(float) Constant 2576980378 1070176665

-              52:    7(float) Constant 858993459 1070805811

-              53:   47(fvec4) ConstantComposite 50 51 52 50

-              55:    7(float) Constant 0 1072693248

-              56:    7(float) Constant 3229815407 1074340298

-              57:             TypePointer UniformConstant 7(float)

-        58(roll):     57(ptr) Variable UniformConstant

-              59:             TypeImage 6(float) 2D nonsampled format:Unknown

-              60:             TypePointer UniformConstant 59

-     61(destTex):     60(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-    22(storePos):     21(ptr) Variable Function

-   32(localCoef):     31(ptr) Variable Function

-          49(aa):     48(ptr) Variable Function

-  54(globalCoef):     31(ptr) Variable Function

-              15:     14(ptr) AccessChain 10(bufInst) 12

-                              Store 15 13

-              19:     18(ptr) AccessChain 10(bufInst) 16

-                              Store 19 17

-              28:   24(ivec3) Load 26(gl_GlobalInvocationID)

-              29:   27(ivec2) VectorShuffle 28 28 0 1

-              30:   20(ivec2) Bitcast 29

-                              Store 22(storePos) 30

-              34:   24(ivec3) Load 33(gl_LocalInvocationID)

-              35:   27(ivec2) VectorShuffle 34 34 0 1

-              36:   20(ivec2) Bitcast 35

-              38:   20(ivec2) CompositeConstruct 37 37

-              39:   20(ivec2) ISub 36 38

-              41:   40(fvec2) ConvertSToF 39

-              43:   40(fvec2) CompositeConstruct 42 42

-              44:   40(fvec2) FDiv 41 43

-              45:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 44

-              46:    7(float) FConvert 45

-                              Store 32(localCoef) 46

-                              Store 49(aa) 53

-                              Store 54(globalCoef) 55

-                              Return

-                              FunctionEnd

+spv.double.comp
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 62
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source GLSL 430
+                              Name 4  "main"
+                              Name 8  "bufName"
+                              MemberName 8(bufName) 0  "f"
+                              MemberName 8(bufName) 1  "d"
+                              Name 10  "bufInst"
+                              Name 22  "storePos"
+                              Name 26  "gl_GlobalInvocationID"
+                              Name 32  "localCoef"
+                              Name 33  "gl_LocalInvocationID"
+                              Name 49  "aa"
+                              Name 54  "globalCoef"
+                              Name 58  "roll"
+                              Name 61  "destTex"
+                              Decorate 8(bufName) GLSLShared
+                              Decorate 8(bufName) BufferBlock
+                              Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
+                              Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeFloat 64
+      8(bufName):             TypeStruct 6(float) 7(float)
+               9:             TypePointer Uniform 8(bufName)
+     10(bufInst):      9(ptr) Variable Uniform
+              11:             TypeInt 32 1
+              12:     11(int) Constant 1
+              13:    7(float) Constant 1413754136 1074340347
+              14:             TypePointer Uniform 7(float)
+              16:     11(int) Constant 0
+              17:    6(float) Constant 1095307129
+              18:             TypePointer Uniform 6(float)
+              20:             TypeVector 11(int) 2
+              21:             TypePointer Function 20(ivec2)
+              23:             TypeInt 32 0
+              24:             TypeVector 23(int) 3
+              25:             TypePointer Input 24(ivec3)
+26(gl_GlobalInvocationID):     25(ptr) Variable Input
+              27:             TypeVector 23(int) 2
+              31:             TypePointer Function 7(float)
+33(gl_LocalInvocationID):     25(ptr) Variable Input
+              37:     11(int) Constant 8
+              40:             TypeVector 6(float) 2
+              42:    6(float) Constant 1090519040
+              47:             TypeVector 7(float) 4
+              48:             TypePointer Function 47(fvec4)
+              50:    7(float) Constant 2576980378 1071225241
+              51:    7(float) Constant 2576980378 1070176665
+              52:    7(float) Constant 858993459 1070805811
+              53:   47(fvec4) ConstantComposite 50 51 52 50
+              55:    7(float) Constant 0 1072693248
+              56:    7(float) Constant 3229815407 1074340298
+              57:             TypePointer UniformConstant 7(float)
+        58(roll):     57(ptr) Variable UniformConstant
+              59:             TypeImage 6(float) 2D nonsampled format:Unknown
+              60:             TypePointer UniformConstant 59
+     61(destTex):     60(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+    22(storePos):     21(ptr) Variable Function
+   32(localCoef):     31(ptr) Variable Function
+          49(aa):     48(ptr) Variable Function
+  54(globalCoef):     31(ptr) Variable Function
+              15:     14(ptr) AccessChain 10(bufInst) 12
+                              Store 15 13
+              19:     18(ptr) AccessChain 10(bufInst) 16
+                              Store 19 17
+              28:   24(ivec3) Load 26(gl_GlobalInvocationID)
+              29:   27(ivec2) VectorShuffle 28 28 0 1
+              30:   20(ivec2) Bitcast 29
+                              Store 22(storePos) 30
+              34:   24(ivec3) Load 33(gl_LocalInvocationID)
+              35:   27(ivec2) VectorShuffle 34 34 0 1
+              36:   20(ivec2) Bitcast 35
+              38:   20(ivec2) CompositeConstruct 37 37
+              39:   20(ivec2) ISub 36 38
+              41:   40(fvec2) ConvertSToF 39
+              43:   40(fvec2) CompositeConstruct 42 42
+              44:   40(fvec2) FDiv 41 43
+              45:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 44
+              46:    7(float) FConvert 45
+                              Store 32(localCoef) 46
+                              Store 49(aa) 53
+                              Store 54(globalCoef) 55
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out
index ab5f922..2f97327 100755
--- a/Test/baseResults/spv.earlyReturnDiscard.frag.out
+++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -1,175 +1,175 @@
-spv.earlyReturnDiscard.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 112

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 18 11

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 13  "color2"

-                              Name 15  "otherColor"

-                              Name 18  "c"

-                              Name 21  "d"

-                              Name 27  "bigColor"

-                              Name 32  "smallColor"

-                              Name 41  "minimum"

-                              Name 53  "threshhold"

-                              Name 65  "threshhold2"

-                              Name 79  "b"

-                              Name 107  "gl_FragColor"

-                              Name 111  "threshhold3"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              14:             TypePointer UniformConstant 7(fvec4)

-  15(otherColor):     14(ptr) Variable UniformConstant

-              17:             TypePointer Input 6(float)

-           18(c):     17(ptr) Variable Input

-              20:             TypePointer UniformConstant 6(float)

-           21(d):     20(ptr) Variable UniformConstant

-              23:             TypeBool

-    27(bigColor):     14(ptr) Variable UniformConstant

-  32(smallColor):     14(ptr) Variable UniformConstant

-              36:             TypeInt 32 0

-              37:     36(int) Constant 2

-              38:             TypePointer Function 6(float)

-     41(minimum):     20(ptr) Variable UniformConstant

-              49:    6(float) Constant 1065353216

-  53(threshhold):     20(ptr) Variable UniformConstant

-              62:     36(int) Constant 3

- 65(threshhold2):     20(ptr) Variable UniformConstant

-              78:             TypePointer UniformConstant 23(bool)

-           79(b):     78(ptr) Variable UniformConstant

-              87:     36(int) Constant 0

-             106:             TypePointer Output 7(fvec4)

-107(gl_FragColor):    106(ptr) Variable Output

-111(threshhold3):     20(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-      13(color2):      8(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-              16:    7(fvec4) Load 15(otherColor)

-                              Store 13(color2) 16

-              19:    6(float) Load 18(c)

-              22:    6(float) Load 21(d)

-              24:    23(bool) FOrdGreaterThan 19 22

-                              SelectionMerge 26 None

-                              BranchConditional 24 25 31

-              25:               Label

-              28:    7(fvec4)   Load 27(bigColor)

-              29:    7(fvec4)   Load 9(color)

-              30:    7(fvec4)   FAdd 29 28

-                                Store 9(color) 30

-                                Branch 26

-              31:               Label

-              33:    7(fvec4)   Load 32(smallColor)

-              34:    7(fvec4)   Load 9(color)

-              35:    7(fvec4)   FAdd 34 33

-                                Store 9(color) 35

-                                Branch 26

-              26:             Label

-              39:     38(ptr) AccessChain 9(color) 37

-              40:    6(float) Load 39

-              42:    6(float) Load 41(minimum)

-              43:    23(bool) FOrdLessThan 40 42

-                              SelectionMerge 45 None

-                              BranchConditional 43 44 45

-              44:               Label

-                                Return

-              45:             Label

-              47:     38(ptr) AccessChain 9(color) 37

-              48:    6(float) Load 47

-              50:    6(float) FAdd 48 49

-                              Store 47 50

-              51:     38(ptr) AccessChain 9(color) 37

-              52:    6(float) Load 51

-              54:    6(float) Load 53(threshhold)

-              55:    23(bool) FOrdGreaterThan 52 54

-                              SelectionMerge 57 None

-                              BranchConditional 55 56 57

-              56:               Label

-                                Kill

-              57:             Label

-              59:    7(fvec4) Load 9(color)

-              60:    7(fvec4) CompositeConstruct 49 49 49 49

-              61:    7(fvec4) FAdd 59 60

-                              Store 9(color) 61

-              63:     38(ptr) AccessChain 9(color) 62

-              64:    6(float) Load 63

-              66:    6(float) Load 65(threshhold2)

-              67:    23(bool) FOrdGreaterThan 64 66

-                              SelectionMerge 69 None

-                              BranchConditional 67 68 99

-              68:               Label

-              70:     38(ptr)   AccessChain 9(color) 37

-              71:    6(float)   Load 70

-              72:    6(float)   Load 65(threshhold2)

-              73:    23(bool)   FOrdGreaterThan 71 72

-                                SelectionMerge 75 None

-                                BranchConditional 73 74 77

-              74:                 Label

-                                  Return

-              77:                 Label

-              80:    23(bool)     Load 79(b)

-                                  SelectionMerge 82 None

-                                  BranchConditional 80 81 86

-              81:                   Label

-              83:     38(ptr)       AccessChain 9(color) 37

-              84:    6(float)       Load 83

-              85:    6(float)       FAdd 84 49

-                                    Store 83 85

-                                    Branch 82

-              86:                   Label

-              88:     38(ptr)       AccessChain 9(color) 87

-              89:    6(float)       Load 88

-              90:    6(float)       Load 41(minimum)

-              91:    23(bool)       FOrdLessThan 89 90

-                                    SelectionMerge 93 None

-                                    BranchConditional 91 92 95

-              92:                     Label

-                                      Kill

-              95:                     Label

-              96:    7(fvec4)         Load 9(color)

-              97:    7(fvec4)         CompositeConstruct 49 49 49 49

-              98:    7(fvec4)         FAdd 96 97

-                                      Store 9(color) 98

-                                      Branch 93

-              93:                   Label

-                                    Branch 82

-              82:                 Label

-                                  Branch 75

-              75:               Label

-                                Branch 69

-              99:               Label

-             100:    23(bool)   Load 79(b)

-                                SelectionMerge 102 None

-                                BranchConditional 100 101 104

-             101:                 Label

-                                  Kill

-             104:                 Label

-                                  Return

-             102:               Label

-                                Branch 69

-              69:             Label

-             108:    7(fvec4) Load 9(color)

-             109:    7(fvec4) Load 13(color2)

-             110:    7(fvec4) FMul 108 109

-                              Store 107(gl_FragColor) 110

-                              Return

-                              FunctionEnd

+spv.earlyReturnDiscard.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 112
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 18 11
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 13  "color2"
+                              Name 15  "otherColor"
+                              Name 18  "c"
+                              Name 21  "d"
+                              Name 27  "bigColor"
+                              Name 32  "smallColor"
+                              Name 41  "minimum"
+                              Name 53  "threshhold"
+                              Name 65  "threshhold2"
+                              Name 79  "b"
+                              Name 107  "gl_FragColor"
+                              Name 111  "threshhold3"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              14:             TypePointer UniformConstant 7(fvec4)
+  15(otherColor):     14(ptr) Variable UniformConstant
+              17:             TypePointer Input 6(float)
+           18(c):     17(ptr) Variable Input
+              20:             TypePointer UniformConstant 6(float)
+           21(d):     20(ptr) Variable UniformConstant
+              23:             TypeBool
+    27(bigColor):     14(ptr) Variable UniformConstant
+  32(smallColor):     14(ptr) Variable UniformConstant
+              36:             TypeInt 32 0
+              37:     36(int) Constant 2
+              38:             TypePointer Function 6(float)
+     41(minimum):     20(ptr) Variable UniformConstant
+              49:    6(float) Constant 1065353216
+  53(threshhold):     20(ptr) Variable UniformConstant
+              62:     36(int) Constant 3
+ 65(threshhold2):     20(ptr) Variable UniformConstant
+              78:             TypePointer UniformConstant 23(bool)
+           79(b):     78(ptr) Variable UniformConstant
+              87:     36(int) Constant 0
+             106:             TypePointer Output 7(fvec4)
+107(gl_FragColor):    106(ptr) Variable Output
+111(threshhold3):     20(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+      13(color2):      8(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+              16:    7(fvec4) Load 15(otherColor)
+                              Store 13(color2) 16
+              19:    6(float) Load 18(c)
+              22:    6(float) Load 21(d)
+              24:    23(bool) FOrdGreaterThan 19 22
+                              SelectionMerge 26 None
+                              BranchConditional 24 25 31
+              25:               Label
+              28:    7(fvec4)   Load 27(bigColor)
+              29:    7(fvec4)   Load 9(color)
+              30:    7(fvec4)   FAdd 29 28
+                                Store 9(color) 30
+                                Branch 26
+              31:               Label
+              33:    7(fvec4)   Load 32(smallColor)
+              34:    7(fvec4)   Load 9(color)
+              35:    7(fvec4)   FAdd 34 33
+                                Store 9(color) 35
+                                Branch 26
+              26:             Label
+              39:     38(ptr) AccessChain 9(color) 37
+              40:    6(float) Load 39
+              42:    6(float) Load 41(minimum)
+              43:    23(bool) FOrdLessThan 40 42
+                              SelectionMerge 45 None
+                              BranchConditional 43 44 45
+              44:               Label
+                                Return
+              45:             Label
+              47:     38(ptr) AccessChain 9(color) 37
+              48:    6(float) Load 47
+              50:    6(float) FAdd 48 49
+                              Store 47 50
+              51:     38(ptr) AccessChain 9(color) 37
+              52:    6(float) Load 51
+              54:    6(float) Load 53(threshhold)
+              55:    23(bool) FOrdGreaterThan 52 54
+                              SelectionMerge 57 None
+                              BranchConditional 55 56 57
+              56:               Label
+                                Kill
+              57:             Label
+              59:    7(fvec4) Load 9(color)
+              60:    7(fvec4) CompositeConstruct 49 49 49 49
+              61:    7(fvec4) FAdd 59 60
+                              Store 9(color) 61
+              63:     38(ptr) AccessChain 9(color) 62
+              64:    6(float) Load 63
+              66:    6(float) Load 65(threshhold2)
+              67:    23(bool) FOrdGreaterThan 64 66
+                              SelectionMerge 69 None
+                              BranchConditional 67 68 99
+              68:               Label
+              70:     38(ptr)   AccessChain 9(color) 37
+              71:    6(float)   Load 70
+              72:    6(float)   Load 65(threshhold2)
+              73:    23(bool)   FOrdGreaterThan 71 72
+                                SelectionMerge 75 None
+                                BranchConditional 73 74 77
+              74:                 Label
+                                  Return
+              77:                 Label
+              80:    23(bool)     Load 79(b)
+                                  SelectionMerge 82 None
+                                  BranchConditional 80 81 86
+              81:                   Label
+              83:     38(ptr)       AccessChain 9(color) 37
+              84:    6(float)       Load 83
+              85:    6(float)       FAdd 84 49
+                                    Store 83 85
+                                    Branch 82
+              86:                   Label
+              88:     38(ptr)       AccessChain 9(color) 87
+              89:    6(float)       Load 88
+              90:    6(float)       Load 41(minimum)
+              91:    23(bool)       FOrdLessThan 89 90
+                                    SelectionMerge 93 None
+                                    BranchConditional 91 92 95
+              92:                     Label
+                                      Kill
+              95:                     Label
+              96:    7(fvec4)         Load 9(color)
+              97:    7(fvec4)         CompositeConstruct 49 49 49 49
+              98:    7(fvec4)         FAdd 96 97
+                                      Store 9(color) 98
+                                      Branch 93
+              93:                   Label
+                                    Branch 82
+              82:                 Label
+                                  Branch 75
+              75:               Label
+                                Branch 69
+              99:               Label
+             100:    23(bool)   Load 79(b)
+                                SelectionMerge 102 None
+                                BranchConditional 100 101 104
+             101:                 Label
+                                  Kill
+             104:                 Label
+                                  Return
+             102:               Label
+                                Branch 69
+              69:             Label
+             108:    7(fvec4) Load 9(color)
+             109:    7(fvec4) Load 13(color2)
+             110:    7(fvec4) FMul 108 109
+                              Store 107(gl_FragColor) 110
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out
index fa1b5c0..b5e460b 100755
--- a/Test/baseResults/spv.flowControl.frag.out
+++ b/Test/baseResults/spv.flowControl.frag.out
@@ -1,75 +1,75 @@
-spv.flowControl.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 41

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 18 11

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 120

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 13  "color2"

-                              Name 15  "otherColor"

-                              Name 18  "c"

-                              Name 21  "d"

-                              Name 27  "bigColor"

-                              Name 32  "smallColor"

-                              Name 37  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              14:             TypePointer UniformConstant 7(fvec4)

-  15(otherColor):     14(ptr) Variable UniformConstant

-              17:             TypePointer Input 6(float)

-           18(c):     17(ptr) Variable Input

-              20:             TypePointer UniformConstant 6(float)

-           21(d):     20(ptr) Variable UniformConstant

-              23:             TypeBool

-    27(bigColor):     14(ptr) Variable UniformConstant

-  32(smallColor):     14(ptr) Variable UniformConstant

-              36:             TypePointer Output 7(fvec4)

-37(gl_FragColor):     36(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-      13(color2):      8(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-              16:    7(fvec4) Load 15(otherColor)

-                              Store 13(color2) 16

-              19:    6(float) Load 18(c)

-              22:    6(float) Load 21(d)

-              24:    23(bool) FOrdGreaterThan 19 22

-                              SelectionMerge 26 None

-                              BranchConditional 24 25 31

-              25:               Label

-              28:    7(fvec4)   Load 27(bigColor)

-              29:    7(fvec4)   Load 9(color)

-              30:    7(fvec4)   FAdd 29 28

-                                Store 9(color) 30

-                                Branch 26

-              31:               Label

-              33:    7(fvec4)   Load 32(smallColor)

-              34:    7(fvec4)   Load 9(color)

-              35:    7(fvec4)   FAdd 34 33

-                                Store 9(color) 35

-                                Branch 26

-              26:             Label

-              38:    7(fvec4) Load 9(color)

-              39:    7(fvec4) Load 13(color2)

-              40:    7(fvec4) FMul 38 39

-                              Store 37(gl_FragColor) 40

-                              Return

-                              FunctionEnd

+spv.flowControl.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 41
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 18 11
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 120
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 13  "color2"
+                              Name 15  "otherColor"
+                              Name 18  "c"
+                              Name 21  "d"
+                              Name 27  "bigColor"
+                              Name 32  "smallColor"
+                              Name 37  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              14:             TypePointer UniformConstant 7(fvec4)
+  15(otherColor):     14(ptr) Variable UniformConstant
+              17:             TypePointer Input 6(float)
+           18(c):     17(ptr) Variable Input
+              20:             TypePointer UniformConstant 6(float)
+           21(d):     20(ptr) Variable UniformConstant
+              23:             TypeBool
+    27(bigColor):     14(ptr) Variable UniformConstant
+  32(smallColor):     14(ptr) Variable UniformConstant
+              36:             TypePointer Output 7(fvec4)
+37(gl_FragColor):     36(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+      13(color2):      8(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+              16:    7(fvec4) Load 15(otherColor)
+                              Store 13(color2) 16
+              19:    6(float) Load 18(c)
+              22:    6(float) Load 21(d)
+              24:    23(bool) FOrdGreaterThan 19 22
+                              SelectionMerge 26 None
+                              BranchConditional 24 25 31
+              25:               Label
+              28:    7(fvec4)   Load 27(bigColor)
+              29:    7(fvec4)   Load 9(color)
+              30:    7(fvec4)   FAdd 29 28
+                                Store 9(color) 30
+                                Branch 26
+              31:               Label
+              33:    7(fvec4)   Load 32(smallColor)
+              34:    7(fvec4)   Load 9(color)
+              35:    7(fvec4)   FAdd 34 33
+                                Store 9(color) 35
+                                Branch 26
+              26:             Label
+              38:    7(fvec4) Load 9(color)
+              39:    7(fvec4) Load 13(color2)
+              40:    7(fvec4) FMul 38 39
+                              Store 37(gl_FragColor) 40
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out
index eac3ddb..92976eb 100755
--- a/Test/baseResults/spv.for-continue-break.vert.out
+++ b/Test/baseResults/spv.for-continue-break.vert.out
@@ -1,97 +1,97 @@
-spv.for-continue-break.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 48

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 46 47

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 17  "A"

-                              Name 25  "B"

-                              Name 29  "C"

-                              Name 36  "D"

-                              Name 38  "E"

-                              Name 39  "F"

-                              Name 43  "G"

-                              Name 46  "gl_VertexID"

-                              Name 47  "gl_InstanceID"

-                              Decorate 46(gl_VertexID) BuiltIn VertexId

-                              Decorate 47(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 0

-              14:      6(int) Constant 10

-              15:             TypeBool

-              18:      6(int) Constant 1

-              20:      6(int) Constant 2

-              31:      6(int) Constant 3

-              40:      6(int) Constant 12

-              44:      6(int) Constant 99

-              45:             TypePointer Input 6(int)

- 46(gl_VertexID):     45(ptr) Variable Input

-47(gl_InstanceID):     45(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-           17(A):      7(ptr) Variable Function

-           25(B):      7(ptr) Variable Function

-           29(C):      7(ptr) Variable Function

-           36(D):      7(ptr) Variable Function

-           38(E):      7(ptr) Variable Function

-           39(F):      7(ptr) Variable Function

-           43(G):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:      6(int) Load 8(i)

-              16:    15(bool) SLessThan 13 14

-                              LoopMerge 11 10 None

-                              BranchConditional 16 12 11

-              12:               Label

-                                Store 17(A) 18

-              19:      6(int)   Load 8(i)

-              21:      6(int)   SMod 19 20

-              22:    15(bool)   IEqual 21 9

-                                SelectionMerge 24 None

-                                BranchConditional 22 23 24

-              23:                 Label

-                                  Store 25(B) 18

-              26:      6(int)     Load 8(i)

-              27:      6(int)     IAdd 26 18

-                                  Store 8(i) 27

-                                  Branch 10

-              28:                 Label

-                                  Store 29(C) 18

-                                  Branch 24

-              24:               Label

-              30:      6(int)   Load 8(i)

-              32:      6(int)   SMod 30 31

-              33:    15(bool)   IEqual 32 9

-                                SelectionMerge 35 None

-                                BranchConditional 33 34 35

-              34:                 Label

-                                  Store 36(D) 18

-                                  Branch 11

-              37:                 Label

-                                  Store 38(E) 18

-                                  Branch 35

-              35:               Label

-                                Store 39(F) 40

-              41:      6(int)   Load 8(i)

-              42:      6(int)   IAdd 41 18

-                                Store 8(i) 42

-                                Branch 10

-              11:             Label

-                              Store 43(G) 44

-                              Return

-                              FunctionEnd

+spv.for-continue-break.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 48
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 46 47
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 17  "A"
+                              Name 25  "B"
+                              Name 29  "C"
+                              Name 36  "D"
+                              Name 38  "E"
+                              Name 39  "F"
+                              Name 43  "G"
+                              Name 46  "gl_VertexID"
+                              Name 47  "gl_InstanceID"
+                              Decorate 46(gl_VertexID) BuiltIn VertexId
+                              Decorate 47(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 0
+              14:      6(int) Constant 10
+              15:             TypeBool
+              18:      6(int) Constant 1
+              20:      6(int) Constant 2
+              31:      6(int) Constant 3
+              40:      6(int) Constant 12
+              44:      6(int) Constant 99
+              45:             TypePointer Input 6(int)
+ 46(gl_VertexID):     45(ptr) Variable Input
+47(gl_InstanceID):     45(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+           17(A):      7(ptr) Variable Function
+           25(B):      7(ptr) Variable Function
+           29(C):      7(ptr) Variable Function
+           36(D):      7(ptr) Variable Function
+           38(E):      7(ptr) Variable Function
+           39(F):      7(ptr) Variable Function
+           43(G):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:      6(int) Load 8(i)
+              16:    15(bool) SLessThan 13 14
+                              LoopMerge 11 10 None
+                              BranchConditional 16 12 11
+              12:               Label
+                                Store 17(A) 18
+              19:      6(int)   Load 8(i)
+              21:      6(int)   SMod 19 20
+              22:    15(bool)   IEqual 21 9
+                                SelectionMerge 24 None
+                                BranchConditional 22 23 24
+              23:                 Label
+                                  Store 25(B) 18
+              26:      6(int)     Load 8(i)
+              27:      6(int)     IAdd 26 18
+                                  Store 8(i) 27
+                                  Branch 10
+              28:                 Label
+                                  Store 29(C) 18
+                                  Branch 24
+              24:               Label
+              30:      6(int)   Load 8(i)
+              32:      6(int)   SMod 30 31
+              33:    15(bool)   IEqual 32 9
+                                SelectionMerge 35 None
+                                BranchConditional 33 34 35
+              34:                 Label
+                                  Store 36(D) 18
+                                  Branch 11
+              37:                 Label
+                                  Store 38(E) 18
+                                  Branch 35
+              35:               Label
+                                Store 39(F) 40
+              41:      6(int)   Load 8(i)
+              42:      6(int)   IAdd 41 18
+                                Store 8(i) 42
+                                Branch 10
+              11:             Label
+                              Store 43(G) 44
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out
index 95ca758..0ce997b 100755
--- a/Test/baseResults/spv.for-simple.vert.out
+++ b/Test/baseResults/spv.for-simple.vert.out
@@ -1,53 +1,53 @@
-spv.for-simple.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 25

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 23 24

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 17  "j"

-                              Name 23  "gl_VertexID"

-                              Name 24  "gl_InstanceID"

-                              Decorate 23(gl_VertexID) BuiltIn VertexId

-                              Decorate 24(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 0

-              14:      6(int) Constant 10

-              15:             TypeBool

-              18:      6(int) Constant 12

-              20:      6(int) Constant 1

-              22:             TypePointer Input 6(int)

- 23(gl_VertexID):     22(ptr) Variable Input

-24(gl_InstanceID):     22(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-           17(j):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:      6(int) Load 8(i)

-              16:    15(bool) SLessThan 13 14

-                              LoopMerge 11 10 None

-                              BranchConditional 16 12 11

-              12:               Label

-                                Store 17(j) 18

-              19:      6(int)   Load 8(i)

-              21:      6(int)   IAdd 19 20

-                                Store 8(i) 21

-                                Branch 10

-              11:             Label

-                              Return

-                              FunctionEnd

+spv.for-simple.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 23 24
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 17  "j"
+                              Name 23  "gl_VertexID"
+                              Name 24  "gl_InstanceID"
+                              Decorate 23(gl_VertexID) BuiltIn VertexId
+                              Decorate 24(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 0
+              14:      6(int) Constant 10
+              15:             TypeBool
+              18:      6(int) Constant 12
+              20:      6(int) Constant 1
+              22:             TypePointer Input 6(int)
+ 23(gl_VertexID):     22(ptr) Variable Input
+24(gl_InstanceID):     22(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+           17(j):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:      6(int) Load 8(i)
+              16:    15(bool) SLessThan 13 14
+                              LoopMerge 11 10 None
+                              BranchConditional 16 12 11
+              12:               Label
+                                Store 17(j) 18
+              19:      6(int)   Load 8(i)
+              21:      6(int)   IAdd 19 20
+                                Store 8(i) 21
+                                Branch 10
+              11:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out
index 1be209b..df3fdd6 100755
--- a/Test/baseResults/spv.forLoop.frag.out
+++ b/Test/baseResults/spv.forLoop.frag.out
@@ -1,194 +1,194 @@
-spv.forLoop.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 122

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 11 97

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 15  "i"

-                              Name 22  "Count"

-                              Name 27  "bigColor"

-                              Name 35  "gl_FragColor"

-                              Name 38  "sum"

-                              Name 40  "i"

-                              Name 50  "v4"

-                              Name 60  "i"

-                              Name 66  "tv4"

-                              Name 83  "r"

-                              Name 89  "i"

-                              Name 97  "f"

-                              Name 110  "i"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              13:             TypeInt 32 1

-              14:             TypePointer Function 13(int)

-              16:     13(int) Constant 0

-              21:             TypePointer UniformConstant 13(int)

-       22(Count):     21(ptr) Variable UniformConstant

-              24:             TypeBool

-              26:             TypePointer UniformConstant 7(fvec4)

-    27(bigColor):     26(ptr) Variable UniformConstant

-              32:     13(int) Constant 1

-              34:             TypePointer Output 7(fvec4)

-35(gl_FragColor):     34(ptr) Variable Output

-              37:             TypePointer Function 6(float)

-              39:    6(float) Constant 0

-              45:     13(int) Constant 4

-              47:             TypeInt 32 0

-              48:             TypeVector 47(int) 4

-              49:             TypePointer UniformConstant 48(ivec4)

-          50(v4):     49(ptr) Variable UniformConstant

-              52:             TypePointer UniformConstant 47(int)

-              71:     47(int) Constant 4

-              84:             TypeVector 6(float) 3

-              96:             TypePointer Input 6(float)

-           97(f):     96(ptr) Variable Input

-              99:     47(int) Constant 3

-             115:     13(int) Constant 16

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-           15(i):     14(ptr) Variable Function

-         38(sum):     37(ptr) Variable Function

-           40(i):     14(ptr) Variable Function

-           60(i):     14(ptr) Variable Function

-         66(tv4):      8(ptr) Variable Function

-           83(r):      8(ptr) Variable Function

-           89(i):     14(ptr) Variable Function

-          110(i):     14(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-                              Store 15(i) 16

-                              Branch 17

-              17:             Label

-              20:     13(int) Load 15(i)

-              23:     13(int) Load 22(Count)

-              25:    24(bool) SLessThan 20 23

-                              LoopMerge 18 17 None

-                              BranchConditional 25 19 18

-              19:               Label

-              28:    7(fvec4)   Load 27(bigColor)

-              29:    7(fvec4)   Load 9(color)

-              30:    7(fvec4)   FAdd 29 28

-                                Store 9(color) 30

-              31:     13(int)   Load 15(i)

-              33:     13(int)   IAdd 31 32

-                                Store 15(i) 33

-                                Branch 17

-              18:             Label

-              36:    7(fvec4) Load 9(color)

-                              Store 35(gl_FragColor) 36

-                              Store 38(sum) 39

-                              Store 40(i) 16

-                              Branch 41

-              41:             Label

-              44:     13(int) Load 40(i)

-              46:    24(bool) SLessThan 44 45

-                              LoopMerge 42 41 None

-                              BranchConditional 46 43 42

-              43:               Label

-              51:     13(int)   Load 40(i)

-              53:     52(ptr)   AccessChain 50(v4) 51

-              54:     47(int)   Load 53

-              55:    6(float)   ConvertUToF 54

-              56:    6(float)   Load 38(sum)

-              57:    6(float)   FAdd 56 55

-                                Store 38(sum) 57

-              58:     13(int)   Load 40(i)

-              59:     13(int)   IAdd 58 32

-                                Store 40(i) 59

-                                Branch 41

-              42:             Label

-                              Store 60(i) 16

-                              Branch 61

-              61:             Label

-              64:     13(int) Load 60(i)

-              65:    24(bool) SLessThan 64 45

-                              LoopMerge 62 61 None

-                              BranchConditional 65 63 62

-              63:               Label

-              67:     13(int)   Load 60(i)

-              68:     13(int)   Load 60(i)

-              69:     52(ptr)   AccessChain 50(v4) 68

-              70:     47(int)   Load 69

-              72:     47(int)   IMul 70 71

-              73:    6(float)   ConvertUToF 72

-              74:     37(ptr)   AccessChain 66(tv4) 67

-                                Store 74 73

-              75:     13(int)   Load 60(i)

-              76:     13(int)   IAdd 75 32

-                                Store 60(i) 76

-                                Branch 61

-              62:             Label

-              77:    6(float) Load 38(sum)

-              78:    7(fvec4) CompositeConstruct 77 77 77 77

-              79:    7(fvec4) Load 66(tv4)

-              80:    7(fvec4) FAdd 78 79

-              81:    7(fvec4) Load 35(gl_FragColor)

-              82:    7(fvec4) FAdd 81 80

-                              Store 35(gl_FragColor) 82

-              85:    7(fvec4) Load 11(BaseColor)

-              86:   84(fvec3) VectorShuffle 85 85 0 1 2

-              87:    7(fvec4) Load 83(r)

-              88:    7(fvec4) VectorShuffle 87 86 4 5 6 3

-                              Store 83(r) 88

-                              Store 89(i) 16

-                              Branch 90

-              90:             Label

-              93:     13(int) Load 89(i)

-              94:     13(int) Load 22(Count)

-              95:    24(bool) SLessThan 93 94

-                              LoopMerge 91 90 None

-                              BranchConditional 95 92 91

-              92:               Label

-              98:    6(float)   Load 97(f)

-             100:     37(ptr)   AccessChain 83(r) 99

-                                Store 100 98

-             101:     13(int)   Load 89(i)

-             102:     13(int)   IAdd 101 32

-                                Store 89(i) 102

-                                Branch 90

-              91:             Label

-             103:    7(fvec4) Load 83(r)

-             104:   84(fvec3) VectorShuffle 103 103 0 1 2

-             105:    7(fvec4) Load 35(gl_FragColor)

-             106:   84(fvec3) VectorShuffle 105 105 0 1 2

-             107:   84(fvec3) FAdd 106 104

-             108:    7(fvec4) Load 35(gl_FragColor)

-             109:    7(fvec4) VectorShuffle 108 107 4 5 6 3

-                              Store 35(gl_FragColor) 109

-                              Store 110(i) 16

-                              Branch 111

-             111:             Label

-             114:     13(int) Load 110(i)

-             116:    24(bool) SLessThan 114 115

-                              LoopMerge 112 111 None

-                              BranchConditional 116 113 112

-             113:               Label

-             117:    6(float)   Load 97(f)

-             118:    7(fvec4)   Load 35(gl_FragColor)

-             119:    7(fvec4)   VectorTimesScalar 118 117

-                                Store 35(gl_FragColor) 119

-             120:     13(int)   Load 110(i)

-             121:     13(int)   IAdd 120 45

-                                Store 110(i) 121

-                                Branch 111

-             112:             Label

-                              Return

-                              FunctionEnd

+spv.forLoop.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 122
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 11 97
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 15  "i"
+                              Name 22  "Count"
+                              Name 27  "bigColor"
+                              Name 35  "gl_FragColor"
+                              Name 38  "sum"
+                              Name 40  "i"
+                              Name 50  "v4"
+                              Name 60  "i"
+                              Name 66  "tv4"
+                              Name 83  "r"
+                              Name 89  "i"
+                              Name 97  "f"
+                              Name 110  "i"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              13:             TypeInt 32 1
+              14:             TypePointer Function 13(int)
+              16:     13(int) Constant 0
+              21:             TypePointer UniformConstant 13(int)
+       22(Count):     21(ptr) Variable UniformConstant
+              24:             TypeBool
+              26:             TypePointer UniformConstant 7(fvec4)
+    27(bigColor):     26(ptr) Variable UniformConstant
+              32:     13(int) Constant 1
+              34:             TypePointer Output 7(fvec4)
+35(gl_FragColor):     34(ptr) Variable Output
+              37:             TypePointer Function 6(float)
+              39:    6(float) Constant 0
+              45:     13(int) Constant 4
+              47:             TypeInt 32 0
+              48:             TypeVector 47(int) 4
+              49:             TypePointer UniformConstant 48(ivec4)
+          50(v4):     49(ptr) Variable UniformConstant
+              52:             TypePointer UniformConstant 47(int)
+              71:     47(int) Constant 4
+              84:             TypeVector 6(float) 3
+              96:             TypePointer Input 6(float)
+           97(f):     96(ptr) Variable Input
+              99:     47(int) Constant 3
+             115:     13(int) Constant 16
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+           15(i):     14(ptr) Variable Function
+         38(sum):     37(ptr) Variable Function
+           40(i):     14(ptr) Variable Function
+           60(i):     14(ptr) Variable Function
+         66(tv4):      8(ptr) Variable Function
+           83(r):      8(ptr) Variable Function
+           89(i):     14(ptr) Variable Function
+          110(i):     14(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+                              Store 15(i) 16
+                              Branch 17
+              17:             Label
+              20:     13(int) Load 15(i)
+              23:     13(int) Load 22(Count)
+              25:    24(bool) SLessThan 20 23
+                              LoopMerge 18 17 None
+                              BranchConditional 25 19 18
+              19:               Label
+              28:    7(fvec4)   Load 27(bigColor)
+              29:    7(fvec4)   Load 9(color)
+              30:    7(fvec4)   FAdd 29 28
+                                Store 9(color) 30
+              31:     13(int)   Load 15(i)
+              33:     13(int)   IAdd 31 32
+                                Store 15(i) 33
+                                Branch 17
+              18:             Label
+              36:    7(fvec4) Load 9(color)
+                              Store 35(gl_FragColor) 36
+                              Store 38(sum) 39
+                              Store 40(i) 16
+                              Branch 41
+              41:             Label
+              44:     13(int) Load 40(i)
+              46:    24(bool) SLessThan 44 45
+                              LoopMerge 42 41 None
+                              BranchConditional 46 43 42
+              43:               Label
+              51:     13(int)   Load 40(i)
+              53:     52(ptr)   AccessChain 50(v4) 51
+              54:     47(int)   Load 53
+              55:    6(float)   ConvertUToF 54
+              56:    6(float)   Load 38(sum)
+              57:    6(float)   FAdd 56 55
+                                Store 38(sum) 57
+              58:     13(int)   Load 40(i)
+              59:     13(int)   IAdd 58 32
+                                Store 40(i) 59
+                                Branch 41
+              42:             Label
+                              Store 60(i) 16
+                              Branch 61
+              61:             Label
+              64:     13(int) Load 60(i)
+              65:    24(bool) SLessThan 64 45
+                              LoopMerge 62 61 None
+                              BranchConditional 65 63 62
+              63:               Label
+              67:     13(int)   Load 60(i)
+              68:     13(int)   Load 60(i)
+              69:     52(ptr)   AccessChain 50(v4) 68
+              70:     47(int)   Load 69
+              72:     47(int)   IMul 70 71
+              73:    6(float)   ConvertUToF 72
+              74:     37(ptr)   AccessChain 66(tv4) 67
+                                Store 74 73
+              75:     13(int)   Load 60(i)
+              76:     13(int)   IAdd 75 32
+                                Store 60(i) 76
+                                Branch 61
+              62:             Label
+              77:    6(float) Load 38(sum)
+              78:    7(fvec4) CompositeConstruct 77 77 77 77
+              79:    7(fvec4) Load 66(tv4)
+              80:    7(fvec4) FAdd 78 79
+              81:    7(fvec4) Load 35(gl_FragColor)
+              82:    7(fvec4) FAdd 81 80
+                              Store 35(gl_FragColor) 82
+              85:    7(fvec4) Load 11(BaseColor)
+              86:   84(fvec3) VectorShuffle 85 85 0 1 2
+              87:    7(fvec4) Load 83(r)
+              88:    7(fvec4) VectorShuffle 87 86 4 5 6 3
+                              Store 83(r) 88
+                              Store 89(i) 16
+                              Branch 90
+              90:             Label
+              93:     13(int) Load 89(i)
+              94:     13(int) Load 22(Count)
+              95:    24(bool) SLessThan 93 94
+                              LoopMerge 91 90 None
+                              BranchConditional 95 92 91
+              92:               Label
+              98:    6(float)   Load 97(f)
+             100:     37(ptr)   AccessChain 83(r) 99
+                                Store 100 98
+             101:     13(int)   Load 89(i)
+             102:     13(int)   IAdd 101 32
+                                Store 89(i) 102
+                                Branch 90
+              91:             Label
+             103:    7(fvec4) Load 83(r)
+             104:   84(fvec3) VectorShuffle 103 103 0 1 2
+             105:    7(fvec4) Load 35(gl_FragColor)
+             106:   84(fvec3) VectorShuffle 105 105 0 1 2
+             107:   84(fvec3) FAdd 106 104
+             108:    7(fvec4) Load 35(gl_FragColor)
+             109:    7(fvec4) VectorShuffle 108 107 4 5 6 3
+                              Store 35(gl_FragColor) 109
+                              Store 110(i) 16
+                              Branch 111
+             111:             Label
+             114:     13(int) Load 110(i)
+             116:    24(bool) SLessThan 114 115
+                              LoopMerge 112 111 None
+                              BranchConditional 116 113 112
+             113:               Label
+             117:    6(float)   Load 97(f)
+             118:    7(fvec4)   Load 35(gl_FragColor)
+             119:    7(fvec4)   VectorTimesScalar 118 117
+                                Store 35(gl_FragColor) 119
+             120:     13(int)   Load 110(i)
+             121:     13(int)   IAdd 120 45
+                                Store 110(i) 121
+                                Branch 111
+             112:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out
index ce0cdb8..cdc4442 100755
--- a/Test/baseResults/spv.forwardFun.frag.out
+++ b/Test/baseResults/spv.forwardFun.frag.out
@@ -1,104 +1,104 @@
-spv.forwardFun.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 60

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 20

-                              ExecutionMode 4 OriginLowerLeft

-                              Source ESSL 100

-                              Name 4  "main"

-                              Name 6  "bar("

-                              Name 10  "unreachableReturn("

-                              Name 16  "foo(vf4;"

-                              Name 15  "bar"

-                              Name 18  "color"

-                              Name 20  "BaseColor"

-                              Name 21  "param"

-                              Name 27  "f"

-                              Name 30  "gl_FragColor"

-                              Name 36  "d"

-                              Name 59  "bigColor"

-                              Decorate 18(color) RelaxedPrecision

-                              Decorate 20(BaseColor) RelaxedPrecision

-                              Decorate 27(f) RelaxedPrecision

-                              Decorate 30(gl_FragColor) RelaxedPrecision

-                              Decorate 36(d) RelaxedPrecision

-                              Decorate 59(bigColor) RelaxedPrecision

-               2:             TypeVoid

-               3:             TypeFunction 2

-               8:             TypeFloat 32

-               9:             TypeFunction 8(float)

-              12:             TypeVector 8(float) 4

-              13:             TypePointer Function 12(fvec4)

-              14:             TypeFunction 8(float) 13(ptr)

-              19:             TypePointer Input 12(fvec4)

-   20(BaseColor):     19(ptr) Variable Input

-              26:             TypePointer Function 8(float)

-              29:             TypePointer Output 12(fvec4)

-30(gl_FragColor):     29(ptr) Variable Output

-              35:             TypePointer UniformConstant 8(float)

-           36(d):     35(ptr) Variable UniformConstant

-              38:    8(float) Constant 1082549862

-              39:             TypeBool

-              43:    8(float) Constant 1067030938

-              46:    8(float) Constant 1083179008

-              49:             TypeInt 32 0

-              50:     49(int) Constant 0

-              53:     49(int) Constant 1

-              58:             TypePointer UniformConstant 12(fvec4)

-    59(bigColor):     58(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-       18(color):     13(ptr) Variable Function

-       21(param):     13(ptr) Variable Function

-           27(f):     26(ptr) Variable Function

-              22:   12(fvec4) Load 20(BaseColor)

-                              Store 21(param) 22

-              23:    8(float) FunctionCall 16(foo(vf4;) 21(param)

-              24:   12(fvec4) CompositeConstruct 23 23 23 23

-                              Store 18(color) 24

-              25:           2 FunctionCall 6(bar()

-              28:    8(float) FunctionCall 10(unreachableReturn()

-                              Store 27(f) 28

-              31:   12(fvec4) Load 18(color)

-              32:    8(float) Load 27(f)

-              33:   12(fvec4) VectorTimesScalar 31 32

-                              Store 30(gl_FragColor) 33

-                              Return

-                              FunctionEnd

-         6(bar():           2 Function None 3

-               7:             Label

-                              Return

-                              FunctionEnd

-10(unreachableReturn():    8(float) Function None 9

-              11:             Label

-              34:           2 FunctionCall 6(bar()

-              37:    8(float) Load 36(d)

-              40:    39(bool) FOrdLessThan 37 38

-                              SelectionMerge 42 None

-                              BranchConditional 40 41 45

-              41:               Label

-                                ReturnValue 43

-              45:               Label

-                                ReturnValue 46

-              42:             Label

-              48:    8(float) Undef

-                              ReturnValue 48

-                              FunctionEnd

-    16(foo(vf4;):    8(float) Function None 14

-         15(bar):     13(ptr) FunctionParameter

-              17:             Label

-              51:     26(ptr) AccessChain 15(bar) 50

-              52:    8(float) Load 51

-              54:     26(ptr) AccessChain 15(bar) 53

-              55:    8(float) Load 54

-              56:    8(float) FAdd 52 55

-                              ReturnValue 56

-                              FunctionEnd

+spv.forwardFun.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 60
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 20
+                              ExecutionMode 4 OriginLowerLeft
+                              Source ESSL 100
+                              Name 4  "main"
+                              Name 6  "bar("
+                              Name 10  "unreachableReturn("
+                              Name 16  "foo(vf4;"
+                              Name 15  "bar"
+                              Name 18  "color"
+                              Name 20  "BaseColor"
+                              Name 21  "param"
+                              Name 27  "f"
+                              Name 30  "gl_FragColor"
+                              Name 36  "d"
+                              Name 59  "bigColor"
+                              Decorate 18(color) RelaxedPrecision
+                              Decorate 20(BaseColor) RelaxedPrecision
+                              Decorate 27(f) RelaxedPrecision
+                              Decorate 30(gl_FragColor) RelaxedPrecision
+                              Decorate 36(d) RelaxedPrecision
+                              Decorate 59(bigColor) RelaxedPrecision
+               2:             TypeVoid
+               3:             TypeFunction 2
+               8:             TypeFloat 32
+               9:             TypeFunction 8(float)
+              12:             TypeVector 8(float) 4
+              13:             TypePointer Function 12(fvec4)
+              14:             TypeFunction 8(float) 13(ptr)
+              19:             TypePointer Input 12(fvec4)
+   20(BaseColor):     19(ptr) Variable Input
+              26:             TypePointer Function 8(float)
+              29:             TypePointer Output 12(fvec4)
+30(gl_FragColor):     29(ptr) Variable Output
+              35:             TypePointer UniformConstant 8(float)
+           36(d):     35(ptr) Variable UniformConstant
+              38:    8(float) Constant 1082549862
+              39:             TypeBool
+              43:    8(float) Constant 1067030938
+              46:    8(float) Constant 1083179008
+              49:             TypeInt 32 0
+              50:     49(int) Constant 0
+              53:     49(int) Constant 1
+              58:             TypePointer UniformConstant 12(fvec4)
+    59(bigColor):     58(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+       18(color):     13(ptr) Variable Function
+       21(param):     13(ptr) Variable Function
+           27(f):     26(ptr) Variable Function
+              22:   12(fvec4) Load 20(BaseColor)
+                              Store 21(param) 22
+              23:    8(float) FunctionCall 16(foo(vf4;) 21(param)
+              24:   12(fvec4) CompositeConstruct 23 23 23 23
+                              Store 18(color) 24
+              25:           2 FunctionCall 6(bar()
+              28:    8(float) FunctionCall 10(unreachableReturn()
+                              Store 27(f) 28
+              31:   12(fvec4) Load 18(color)
+              32:    8(float) Load 27(f)
+              33:   12(fvec4) VectorTimesScalar 31 32
+                              Store 30(gl_FragColor) 33
+                              Return
+                              FunctionEnd
+         6(bar():           2 Function None 3
+               7:             Label
+                              Return
+                              FunctionEnd
+10(unreachableReturn():    8(float) Function None 9
+              11:             Label
+              34:           2 FunctionCall 6(bar()
+              37:    8(float) Load 36(d)
+              40:    39(bool) FOrdLessThan 37 38
+                              SelectionMerge 42 None
+                              BranchConditional 40 41 45
+              41:               Label
+                                ReturnValue 43
+              45:               Label
+                                ReturnValue 46
+              42:             Label
+              48:    8(float) Undef
+                              ReturnValue 48
+                              FunctionEnd
+    16(foo(vf4;):    8(float) Function None 14
+         15(bar):     13(ptr) FunctionParameter
+              17:             Label
+              51:     26(ptr) AccessChain 15(bar) 50
+              52:    8(float) Load 51
+              54:     26(ptr) AccessChain 15(bar) 53
+              55:    8(float) Load 54
+              56:    8(float) FAdd 52 55
+                              ReturnValue 56
+                              FunctionEnd
diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out
index 0d8bed7..77d60a2 100755
--- a/Test/baseResults/spv.functionCall.frag.out
+++ b/Test/baseResults/spv.functionCall.frag.out
@@ -1,126 +1,126 @@
-spv.functionCall.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 76

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 57

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 11  "foo(vf4;"

-                              Name 10  "bar"

-                              Name 13  "bar("

-                              Name 16  "unreachableReturn("

-                              Name 18  "missingReturn("

-                              Name 21  "h"

-                              Name 34  "d"

-                              Name 55  "color"

-                              Name 57  "BaseColor"

-                              Name 58  "param"

-                              Name 63  "f"

-                              Name 65  "g"

-                              Name 68  "gl_FragColor"

-                              Name 75  "bigColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-               9:             TypeFunction 6(float) 8(ptr)

-              15:             TypeFunction 6(float)

-              20:             TypePointer Private 6(float)

-           21(h):     20(ptr) Variable Private

-              22:    6(float) Constant 0

-              23:             TypeInt 32 0

-              24:     23(int) Constant 0

-              25:             TypePointer Function 6(float)

-              28:     23(int) Constant 1

-              33:             TypePointer UniformConstant 6(float)

-           34(d):     33(ptr) Variable UniformConstant

-              36:    6(float) Constant 1082549862

-              37:             TypeBool

-              41:    6(float) Constant 1067030938

-              44:    6(float) Constant 1083179008

-              52:    6(float) Constant 1081711002

-              56:             TypePointer Input 7(fvec4)

-   57(BaseColor):     56(ptr) Variable Input

-              67:             TypePointer Output 7(fvec4)

-68(gl_FragColor):     67(ptr) Variable Output

-              74:             TypePointer UniformConstant 7(fvec4)

-    75(bigColor):     74(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-       55(color):      8(ptr) Variable Function

-       58(param):      8(ptr) Variable Function

-           63(f):     25(ptr) Variable Function

-           65(g):     25(ptr) Variable Function

-                              Store 21(h) 22

-              59:    7(fvec4) Load 57(BaseColor)

-                              Store 58(param) 59

-              60:    6(float) FunctionCall 11(foo(vf4;) 58(param)

-              61:    7(fvec4) CompositeConstruct 60 60 60 60

-                              Store 55(color) 61

-              62:           2 FunctionCall 13(bar()

-              64:    6(float) FunctionCall 16(unreachableReturn()

-                              Store 63(f) 64

-              66:    6(float) FunctionCall 18(missingReturn()

-                              Store 65(g) 66

-              69:    7(fvec4) Load 55(color)

-              70:    6(float) Load 63(f)

-              71:    7(fvec4) VectorTimesScalar 69 70

-              72:    6(float) Load 21(h)

-              73:    7(fvec4) VectorTimesScalar 71 72

-                              Store 68(gl_FragColor) 73

-                              Return

-                              FunctionEnd

-    11(foo(vf4;):    6(float) Function None 9

-         10(bar):      8(ptr) FunctionParameter

-              12:             Label

-              26:     25(ptr) AccessChain 10(bar) 24

-              27:    6(float) Load 26

-              29:     25(ptr) AccessChain 10(bar) 28

-              30:    6(float) Load 29

-              31:    6(float) FAdd 27 30

-                              ReturnValue 31

-                              FunctionEnd

-        13(bar():           2 Function None 3

-              14:             Label

-                              Return

-                              FunctionEnd

-16(unreachableReturn():    6(float) Function None 15

-              17:             Label

-              35:    6(float) Load 34(d)

-              38:    37(bool) FOrdLessThan 35 36

-                              SelectionMerge 40 None

-                              BranchConditional 38 39 43

-              39:               Label

-                                ReturnValue 41

-              43:               Label

-                                ReturnValue 44

-              40:             Label

-              46:    6(float) Undef

-                              ReturnValue 46

-                              FunctionEnd

-18(missingReturn():    6(float) Function None 15

-              19:             Label

-              47:    6(float) Load 34(d)

-              48:    37(bool) FOrdLessThan 47 44

-                              SelectionMerge 50 None

-                              BranchConditional 48 49 50

-              49:               Label

-              51:    6(float)   Load 34(d)

-                                Store 21(h) 51

-                                ReturnValue 52

-              50:             Label

-              54:    6(float) Undef

-                              ReturnValue 54

-                              FunctionEnd

+spv.functionCall.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 76
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 57
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 11  "foo(vf4;"
+                              Name 10  "bar"
+                              Name 13  "bar("
+                              Name 16  "unreachableReturn("
+                              Name 18  "missingReturn("
+                              Name 21  "h"
+                              Name 34  "d"
+                              Name 55  "color"
+                              Name 57  "BaseColor"
+                              Name 58  "param"
+                              Name 63  "f"
+                              Name 65  "g"
+                              Name 68  "gl_FragColor"
+                              Name 75  "bigColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+               9:             TypeFunction 6(float) 8(ptr)
+              15:             TypeFunction 6(float)
+              20:             TypePointer Private 6(float)
+           21(h):     20(ptr) Variable Private
+              22:    6(float) Constant 0
+              23:             TypeInt 32 0
+              24:     23(int) Constant 0
+              25:             TypePointer Function 6(float)
+              28:     23(int) Constant 1
+              33:             TypePointer UniformConstant 6(float)
+           34(d):     33(ptr) Variable UniformConstant
+              36:    6(float) Constant 1082549862
+              37:             TypeBool
+              41:    6(float) Constant 1067030938
+              44:    6(float) Constant 1083179008
+              52:    6(float) Constant 1081711002
+              56:             TypePointer Input 7(fvec4)
+   57(BaseColor):     56(ptr) Variable Input
+              67:             TypePointer Output 7(fvec4)
+68(gl_FragColor):     67(ptr) Variable Output
+              74:             TypePointer UniformConstant 7(fvec4)
+    75(bigColor):     74(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+       55(color):      8(ptr) Variable Function
+       58(param):      8(ptr) Variable Function
+           63(f):     25(ptr) Variable Function
+           65(g):     25(ptr) Variable Function
+                              Store 21(h) 22
+              59:    7(fvec4) Load 57(BaseColor)
+                              Store 58(param) 59
+              60:    6(float) FunctionCall 11(foo(vf4;) 58(param)
+              61:    7(fvec4) CompositeConstruct 60 60 60 60
+                              Store 55(color) 61
+              62:           2 FunctionCall 13(bar()
+              64:    6(float) FunctionCall 16(unreachableReturn()
+                              Store 63(f) 64
+              66:    6(float) FunctionCall 18(missingReturn()
+                              Store 65(g) 66
+              69:    7(fvec4) Load 55(color)
+              70:    6(float) Load 63(f)
+              71:    7(fvec4) VectorTimesScalar 69 70
+              72:    6(float) Load 21(h)
+              73:    7(fvec4) VectorTimesScalar 71 72
+                              Store 68(gl_FragColor) 73
+                              Return
+                              FunctionEnd
+    11(foo(vf4;):    6(float) Function None 9
+         10(bar):      8(ptr) FunctionParameter
+              12:             Label
+              26:     25(ptr) AccessChain 10(bar) 24
+              27:    6(float) Load 26
+              29:     25(ptr) AccessChain 10(bar) 28
+              30:    6(float) Load 29
+              31:    6(float) FAdd 27 30
+                              ReturnValue 31
+                              FunctionEnd
+        13(bar():           2 Function None 3
+              14:             Label
+                              Return
+                              FunctionEnd
+16(unreachableReturn():    6(float) Function None 15
+              17:             Label
+              35:    6(float) Load 34(d)
+              38:    37(bool) FOrdLessThan 35 36
+                              SelectionMerge 40 None
+                              BranchConditional 38 39 43
+              39:               Label
+                                ReturnValue 41
+              43:               Label
+                                ReturnValue 44
+              40:             Label
+              46:    6(float) Undef
+                              ReturnValue 46
+                              FunctionEnd
+18(missingReturn():    6(float) Function None 15
+              19:             Label
+              47:    6(float) Load 34(d)
+              48:    37(bool) FOrdLessThan 47 44
+                              SelectionMerge 50 None
+                              BranchConditional 48 49 50
+              49:               Label
+              51:    6(float)   Load 34(d)
+                                Store 21(h) 51
+                                ReturnValue 52
+              50:             Label
+              54:    6(float) Undef
+                              ReturnValue 54
+                              FunctionEnd
diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out
index 1200d28..45a0bd3 100755
--- a/Test/baseResults/spv.functionSemantics.frag.out
+++ b/Test/baseResults/spv.functionSemantics.frag.out
@@ -1,232 +1,232 @@
-spv.functionSemantics.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 153

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main"

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 400

-                              Name 4  "main"

-                              Name 15  "foo(i1;i1;i1;i1;i1;i1;"

-                              Name 9  "a"

-                              Name 10  "b"

-                              Name 11  "c"

-                              Name 12  "d"

-                              Name 13  "e"

-                              Name 14  "f"

-                              Name 25  "foo2(f1;vf3;i1;"

-                              Name 22  "a"

-                              Name 23  "b"

-                              Name 24  "r"

-                              Name 28  "foo3("

-                              Name 30  "sum"

-                              Name 74  "u"

-                              Name 86  "t"

-                              Name 89  "s"

-                              MemberName 89(s) 0  "t"

-                              Name 91  "f"

-                              Name 95  "color"

-                              Name 101  "e"

-                              Name 102  "param"

-                              Name 103  "param"

-                              Name 104  "param"

-                              Name 105  "param"

-                              Name 120  "ret"

-                              Name 122  "tempReturn"

-                              Name 127  "tempArg"

-                              Name 128  "param"

-                              Name 129  "param"

-                              Name 130  "param"

-                              Name 133  "arg"

-                              Name 149  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               8:             TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr)

-              17:             TypeFloat 32

-              18:             TypePointer Function 17(float)

-              19:             TypeVector 17(float) 3

-              20:             TypePointer Function 19(fvec3)

-              21:             TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr)

-              27:             TypeFunction 6(int)

-              38:      6(int) Constant 64

-              43:      6(int) Constant 1024

-              61:   17(float) Constant 1077936128

-              65:   17(float) Constant 1084227584

-              66:             TypeInt 32 0

-              67:     66(int) Constant 1

-              73:             TypePointer UniformConstant 17(float)

-           74(u):     73(ptr) Variable UniformConstant

-              76:   17(float) Constant 1078774989

-              77:             TypeBool

-              82:      6(int) Constant 1000000

-              84:      6(int) Constant 2000000

-              87:      6(int) Constant 2

-              88:             TypeVector 6(int) 4

-           89(s):             TypeStruct 88(ivec4)

-              90:             TypePointer Function 89(s)

-              92:      6(int) Constant 0

-              93:      6(int) Constant 32

-              96:      6(int) Constant 1

-             100:      6(int) Constant 8

-             112:      6(int) Constant 128

-             121:             TypePointer Private 6(int)

- 122(tempReturn):    121(ptr) Variable Private

-             123:   17(float) Constant 1082130432

-             124:   17(float) Constant 1065353216

-             125:   17(float) Constant 1073741824

-             126:   19(fvec3) ConstantComposite 124 125 61

-             147:             TypeVector 17(float) 4

-             148:             TypePointer Output 147(fvec4)

-149(gl_FragColor):    148(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-           86(t):      7(ptr) Variable Function

-           91(f):     90(ptr) Variable Function

-       95(color):      7(ptr) Variable Function

-          101(e):      7(ptr) Variable Function

-      102(param):      7(ptr) Variable Function

-      103(param):      7(ptr) Variable Function

-      104(param):      7(ptr) Variable Function

-      105(param):      7(ptr) Variable Function

-        120(ret):     18(ptr) Variable Function

-    127(tempArg):      7(ptr) Variable Function

-      128(param):     18(ptr) Variable Function

-      129(param):     20(ptr) Variable Function

-      130(param):      7(ptr) Variable Function

-        133(arg):     18(ptr) Variable Function

-                              Store 86(t) 87

-              94:      7(ptr) AccessChain 91(f) 92 67

-                              Store 94 93

-              97:      6(int) Load 86(t)

-              98:      6(int) Load 86(t)

-              99:      6(int) IAdd 97 98

-                              Store 102(param) 96

-                              Store 103(param) 99

-             106:      7(ptr) AccessChain 91(f) 92 67

-             107:      6(int) Load 106

-                              Store 105(param) 107

-             108:      6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 102(param) 87 103(param) 100 104(param) 105(param)

-             109:      6(int) Load 104(param)

-                              Store 101(e) 109

-             110:      6(int) Load 105(param)

-             111:      7(ptr) AccessChain 91(f) 92 67

-                              Store 111 110

-                              Store 95(color) 108

-             113:      6(int) Load 101(e)

-             114:      7(ptr) AccessChain 91(f) 92 67

-             115:      6(int) Load 114

-             116:      6(int) IAdd 113 115

-             117:      6(int) IMul 112 116

-             118:      6(int) Load 95(color)

-             119:      6(int) IAdd 118 117

-                              Store 95(color) 119

-                              Store 128(param) 123

-                              Store 129(param) 126

-             131:      6(int) FunctionCall 25(foo2(f1;vf3;i1;) 128(param) 129(param) 130(param)

-             132:      6(int) Load 130(param)

-                              Store 127(tempArg) 132

-                              Store 122(tempReturn) 131

-             134:      6(int) Load 127(tempArg)

-             135:   17(float) ConvertSToF 134

-                              Store 133(arg) 135

-             136:      6(int) Load 122(tempReturn)

-             137:   17(float) ConvertSToF 136

-                              Store 120(ret) 137

-             138:   17(float) Load 120(ret)

-             139:   17(float) Load 133(arg)

-             140:   17(float) FAdd 138 139

-             141:      6(int) ConvertFToS 140

-             142:      6(int) Load 95(color)

-             143:      6(int) IAdd 142 141

-                              Store 95(color) 143

-             144:      6(int) FunctionCall 28(foo3()

-             145:      6(int) Load 95(color)

-             146:      6(int) IAdd 145 144

-                              Store 95(color) 146

-             150:      6(int) Load 95(color)

-             151:   17(float) ConvertSToF 150

-             152:  147(fvec4) CompositeConstruct 151 151 151 151

-                              Store 149(gl_FragColor) 152

-                              Return

-                              FunctionEnd

-15(foo(i1;i1;i1;i1;i1;i1;):      6(int) Function None 8

-            9(a):      7(ptr) FunctionParameter

-           10(b):      6(int) FunctionParameter

-           11(c):      7(ptr) FunctionParameter

-           12(d):      6(int) FunctionParameter

-           13(e):      7(ptr) FunctionParameter

-           14(f):      7(ptr) FunctionParameter

-              16:             Label

-         30(sum):      7(ptr) Variable Function

-              31:      6(int) Load 9(a)

-              32:      6(int) IAdd 31 10(b)

-              33:      6(int) Load 11(c)

-              34:      6(int) IAdd 32 33

-              35:      6(int) IAdd 34 12(d)

-              36:      6(int) Load 14(f)

-              37:      6(int) IAdd 35 36

-                              Store 30(sum) 37

-              39:      6(int) Load 9(a)

-              40:      6(int) IMul 39 38

-                              Store 9(a) 40

-              41:      6(int) Load 11(c)

-              42:      6(int) IMul 41 38

-                              Store 11(c) 42

-                              Store 13(e) 43

-              44:      6(int) Load 14(f)

-              45:      6(int) IMul 44 38

-                              Store 14(f) 45

-              46:      6(int) Load 9(a)

-              47:      6(int) IMul 38 10(b)

-              48:      6(int) IAdd 46 47

-              49:      6(int) Load 11(c)

-              50:      6(int) IAdd 48 49

-              51:      6(int) IMul 38 12(d)

-              52:      6(int) IAdd 50 51

-              53:      6(int) Load 13(e)

-              54:      6(int) IAdd 52 53

-              55:      6(int) Load 14(f)

-              56:      6(int) IAdd 54 55

-              57:      6(int) Load 30(sum)

-              58:      6(int) IAdd 57 56

-                              Store 30(sum) 58

-              59:      6(int) Load 30(sum)

-                              ReturnValue 59

-                              FunctionEnd

-25(foo2(f1;vf3;i1;):      6(int) Function None 21

-           22(a):     18(ptr) FunctionParameter

-           23(b):     20(ptr) FunctionParameter

-           24(r):      7(ptr) FunctionParameter

-              26:             Label

-              62:   17(float) Load 22(a)

-              63:   17(float) FMul 61 62

-              64:      6(int) ConvertFToS 63

-                              Store 24(r) 64

-              68:     18(ptr) AccessChain 23(b) 67

-              69:   17(float) Load 68

-              70:   17(float) FMul 65 69

-              71:      6(int) ConvertFToS 70

-                              ReturnValue 71

-                              FunctionEnd

-       28(foo3():      6(int) Function None 27

-              29:             Label

-              75:   17(float) Load 74(u)

-              78:    77(bool) FOrdGreaterThan 75 76

-                              SelectionMerge 80 None

-                              BranchConditional 78 79 80

-              79:               Label

-                                Kill

-              80:             Label

-                              ReturnValue 84

-                              FunctionEnd

+spv.functionSemantics.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 153
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main"
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 400
+                              Name 4  "main"
+                              Name 15  "foo(i1;i1;i1;i1;i1;i1;"
+                              Name 9  "a"
+                              Name 10  "b"
+                              Name 11  "c"
+                              Name 12  "d"
+                              Name 13  "e"
+                              Name 14  "f"
+                              Name 25  "foo2(f1;vf3;i1;"
+                              Name 22  "a"
+                              Name 23  "b"
+                              Name 24  "r"
+                              Name 28  "foo3("
+                              Name 30  "sum"
+                              Name 74  "u"
+                              Name 86  "t"
+                              Name 89  "s"
+                              MemberName 89(s) 0  "t"
+                              Name 91  "f"
+                              Name 95  "color"
+                              Name 101  "e"
+                              Name 102  "param"
+                              Name 103  "param"
+                              Name 104  "param"
+                              Name 105  "param"
+                              Name 120  "ret"
+                              Name 122  "tempReturn"
+                              Name 127  "tempArg"
+                              Name 128  "param"
+                              Name 129  "param"
+                              Name 130  "param"
+                              Name 133  "arg"
+                              Name 149  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               8:             TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr)
+              17:             TypeFloat 32
+              18:             TypePointer Function 17(float)
+              19:             TypeVector 17(float) 3
+              20:             TypePointer Function 19(fvec3)
+              21:             TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr)
+              27:             TypeFunction 6(int)
+              38:      6(int) Constant 64
+              43:      6(int) Constant 1024
+              61:   17(float) Constant 1077936128
+              65:   17(float) Constant 1084227584
+              66:             TypeInt 32 0
+              67:     66(int) Constant 1
+              73:             TypePointer UniformConstant 17(float)
+           74(u):     73(ptr) Variable UniformConstant
+              76:   17(float) Constant 1078774989
+              77:             TypeBool
+              82:      6(int) Constant 1000000
+              84:      6(int) Constant 2000000
+              87:      6(int) Constant 2
+              88:             TypeVector 6(int) 4
+           89(s):             TypeStruct 88(ivec4)
+              90:             TypePointer Function 89(s)
+              92:      6(int) Constant 0
+              93:      6(int) Constant 32
+              96:      6(int) Constant 1
+             100:      6(int) Constant 8
+             112:      6(int) Constant 128
+             121:             TypePointer Private 6(int)
+ 122(tempReturn):    121(ptr) Variable Private
+             123:   17(float) Constant 1082130432
+             124:   17(float) Constant 1065353216
+             125:   17(float) Constant 1073741824
+             126:   19(fvec3) ConstantComposite 124 125 61
+             147:             TypeVector 17(float) 4
+             148:             TypePointer Output 147(fvec4)
+149(gl_FragColor):    148(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+           86(t):      7(ptr) Variable Function
+           91(f):     90(ptr) Variable Function
+       95(color):      7(ptr) Variable Function
+          101(e):      7(ptr) Variable Function
+      102(param):      7(ptr) Variable Function
+      103(param):      7(ptr) Variable Function
+      104(param):      7(ptr) Variable Function
+      105(param):      7(ptr) Variable Function
+        120(ret):     18(ptr) Variable Function
+    127(tempArg):      7(ptr) Variable Function
+      128(param):     18(ptr) Variable Function
+      129(param):     20(ptr) Variable Function
+      130(param):      7(ptr) Variable Function
+        133(arg):     18(ptr) Variable Function
+                              Store 86(t) 87
+              94:      7(ptr) AccessChain 91(f) 92 67
+                              Store 94 93
+              97:      6(int) Load 86(t)
+              98:      6(int) Load 86(t)
+              99:      6(int) IAdd 97 98
+                              Store 102(param) 96
+                              Store 103(param) 99
+             106:      7(ptr) AccessChain 91(f) 92 67
+             107:      6(int) Load 106
+                              Store 105(param) 107
+             108:      6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 102(param) 87 103(param) 100 104(param) 105(param)
+             109:      6(int) Load 104(param)
+                              Store 101(e) 109
+             110:      6(int) Load 105(param)
+             111:      7(ptr) AccessChain 91(f) 92 67
+                              Store 111 110
+                              Store 95(color) 108
+             113:      6(int) Load 101(e)
+             114:      7(ptr) AccessChain 91(f) 92 67
+             115:      6(int) Load 114
+             116:      6(int) IAdd 113 115
+             117:      6(int) IMul 112 116
+             118:      6(int) Load 95(color)
+             119:      6(int) IAdd 118 117
+                              Store 95(color) 119
+                              Store 128(param) 123
+                              Store 129(param) 126
+             131:      6(int) FunctionCall 25(foo2(f1;vf3;i1;) 128(param) 129(param) 130(param)
+             132:      6(int) Load 130(param)
+                              Store 127(tempArg) 132
+                              Store 122(tempReturn) 131
+             134:      6(int) Load 127(tempArg)
+             135:   17(float) ConvertSToF 134
+                              Store 133(arg) 135
+             136:      6(int) Load 122(tempReturn)
+             137:   17(float) ConvertSToF 136
+                              Store 120(ret) 137
+             138:   17(float) Load 120(ret)
+             139:   17(float) Load 133(arg)
+             140:   17(float) FAdd 138 139
+             141:      6(int) ConvertFToS 140
+             142:      6(int) Load 95(color)
+             143:      6(int) IAdd 142 141
+                              Store 95(color) 143
+             144:      6(int) FunctionCall 28(foo3()
+             145:      6(int) Load 95(color)
+             146:      6(int) IAdd 145 144
+                              Store 95(color) 146
+             150:      6(int) Load 95(color)
+             151:   17(float) ConvertSToF 150
+             152:  147(fvec4) CompositeConstruct 151 151 151 151
+                              Store 149(gl_FragColor) 152
+                              Return
+                              FunctionEnd
+15(foo(i1;i1;i1;i1;i1;i1;):      6(int) Function None 8
+            9(a):      7(ptr) FunctionParameter
+           10(b):      6(int) FunctionParameter
+           11(c):      7(ptr) FunctionParameter
+           12(d):      6(int) FunctionParameter
+           13(e):      7(ptr) FunctionParameter
+           14(f):      7(ptr) FunctionParameter
+              16:             Label
+         30(sum):      7(ptr) Variable Function
+              31:      6(int) Load 9(a)
+              32:      6(int) IAdd 31 10(b)
+              33:      6(int) Load 11(c)
+              34:      6(int) IAdd 32 33
+              35:      6(int) IAdd 34 12(d)
+              36:      6(int) Load 14(f)
+              37:      6(int) IAdd 35 36
+                              Store 30(sum) 37
+              39:      6(int) Load 9(a)
+              40:      6(int) IMul 39 38
+                              Store 9(a) 40
+              41:      6(int) Load 11(c)
+              42:      6(int) IMul 41 38
+                              Store 11(c) 42
+                              Store 13(e) 43
+              44:      6(int) Load 14(f)
+              45:      6(int) IMul 44 38
+                              Store 14(f) 45
+              46:      6(int) Load 9(a)
+              47:      6(int) IMul 38 10(b)
+              48:      6(int) IAdd 46 47
+              49:      6(int) Load 11(c)
+              50:      6(int) IAdd 48 49
+              51:      6(int) IMul 38 12(d)
+              52:      6(int) IAdd 50 51
+              53:      6(int) Load 13(e)
+              54:      6(int) IAdd 52 53
+              55:      6(int) Load 14(f)
+              56:      6(int) IAdd 54 55
+              57:      6(int) Load 30(sum)
+              58:      6(int) IAdd 57 56
+                              Store 30(sum) 58
+              59:      6(int) Load 30(sum)
+                              ReturnValue 59
+                              FunctionEnd
+25(foo2(f1;vf3;i1;):      6(int) Function None 21
+           22(a):     18(ptr) FunctionParameter
+           23(b):     20(ptr) FunctionParameter
+           24(r):      7(ptr) FunctionParameter
+              26:             Label
+              62:   17(float) Load 22(a)
+              63:   17(float) FMul 61 62
+              64:      6(int) ConvertFToS 63
+                              Store 24(r) 64
+              68:     18(ptr) AccessChain 23(b) 67
+              69:   17(float) Load 68
+              70:   17(float) FMul 65 69
+              71:      6(int) ConvertFToS 70
+                              ReturnValue 71
+                              FunctionEnd
+       28(foo3():      6(int) Function None 27
+              29:             Label
+              75:   17(float) Load 74(u)
+              78:    77(bool) FOrdGreaterThan 75 76
+                              SelectionMerge 80 None
+                              BranchConditional 78 79 80
+              79:               Label
+                                Kill
+              80:             Label
+                              ReturnValue 84
+                              FunctionEnd
diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out
index 1baad76..78bff2d 100644
--- a/Test/baseResults/spv.image.frag.out
+++ b/Test/baseResults/spv.image.frag.out
@@ -1,486 +1,486 @@
-spv.image.frag

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 372

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 356

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 450

-                              Name 4  "main"

-                              Name 9  "iv"

-                              Name 15  "i1D"

-                              Name 27  "i2D"

-                              Name 38  "i3D"

-                              Name 45  "iCube"

-                              Name 55  "iCubeArray"

-                              Name 62  "i2DRect"

-                              Name 72  "i1DArray"

-                              Name 82  "i2DArray"

-                              Name 89  "iBuffer"

-                              Name 98  "i2DMS"

-                              Name 108  "i2DMSArray"

-                              Name 127  "v"

-                              Name 132  "ic1D"

-                              Name 142  "ic2D"

-                              Name 152  "ic3D"

-                              Name 229  "ui"

-                              Name 232  "ii1D"

-                              Name 245  "ui2D"

-                              Name 248  "value"

-                              Name 356  "fragData"

-                              Name 371  "ic4D"

-                              Decorate 15(i1D) Binding 0

-                              Decorate 27(i2D) Binding 1

-                              Decorate 38(i3D) Binding 2

-                              Decorate 45(iCube) Binding 3

-                              Decorate 55(iCubeArray) Binding 4

-                              Decorate 62(i2DRect) Binding 5

-                              Decorate 72(i1DArray) Binding 6

-                              Decorate 82(i2DArray) Binding 7

-                              Decorate 89(iBuffer) Binding 8

-                              Decorate 98(i2DMS) Binding 9

-                              Decorate 108(i2DMSArray) Binding 10

-                              Decorate 232(ii1D) Binding 11

-                              Decorate 245(ui2D) Binding 12

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypeVector 6(int) 3

-               8:             TypePointer Function 7(ivec3)

-              10:      6(int) Constant 0

-              11:    7(ivec3) ConstantComposite 10 10 10

-              12:             TypeFloat 32

-              13:             TypeImage 12(float) 1D nonsampled format:Rgba32f

-              14:             TypePointer UniformConstant 13

-         15(i1D):     14(ptr) Variable UniformConstant

-              18:             TypeInt 32 0

-              19:     18(int) Constant 0

-              20:             TypePointer Function 6(int)

-              25:             TypeImage 12(float) 2D nonsampled format:Rgba32f

-              26:             TypePointer UniformConstant 25

-         27(i2D):     26(ptr) Variable UniformConstant

-              29:             TypeVector 6(int) 2

-              36:             TypeImage 12(float) 3D nonsampled format:Rgba32f

-              37:             TypePointer UniformConstant 36

-         38(i3D):     37(ptr) Variable UniformConstant

-              43:             TypeImage 12(float) Cube nonsampled format:Rgba32f

-              44:             TypePointer UniformConstant 43

-       45(iCube):     44(ptr) Variable UniformConstant

-              53:             TypeImage 12(float) Cube array nonsampled format:Rgba32f

-              54:             TypePointer UniformConstant 53

-  55(iCubeArray):     54(ptr) Variable UniformConstant

-              60:             TypeImage 12(float) Rect nonsampled format:Rgba32f

-              61:             TypePointer UniformConstant 60

-     62(i2DRect):     61(ptr) Variable UniformConstant

-              70:             TypeImage 12(float) 1D array nonsampled format:Rgba32f

-              71:             TypePointer UniformConstant 70

-    72(i1DArray):     71(ptr) Variable UniformConstant

-              80:             TypeImage 12(float) 2D array nonsampled format:Rgba32f

-              81:             TypePointer UniformConstant 80

-    82(i2DArray):     81(ptr) Variable UniformConstant

-              87:             TypeImage 12(float) Buffer nonsampled format:Rgba32f

-              88:             TypePointer UniformConstant 87

-     89(iBuffer):     88(ptr) Variable UniformConstant

-              96:             TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f

-              97:             TypePointer UniformConstant 96

-       98(i2DMS):     97(ptr) Variable UniformConstant

-             106:             TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f

-             107:             TypePointer UniformConstant 106

- 108(i2DMSArray):    107(ptr) Variable UniformConstant

-             125:             TypeVector 12(float) 4

-             126:             TypePointer Function 125(fvec4)

-             128:   12(float) Constant 0

-             129:  125(fvec4) ConstantComposite 128 128 128 128

-             131:             TypePointer UniformConstant 6(int)

-       132(ic1D):    131(ptr) Variable UniformConstant

-             141:             TypePointer UniformConstant 29(ivec2)

-       142(ic2D):    141(ptr) Variable UniformConstant

-             151:             TypePointer UniformConstant 7(ivec3)

-       152(ic3D):    151(ptr) Variable UniformConstant

-             210:      6(int) Constant 1

-             216:      6(int) Constant 2

-             220:      6(int) Constant 3

-             226:      6(int) Constant 4

-             228:             TypePointer Function 18(int)

-             230:             TypeImage 6(int) 1D nonsampled format:R32i

-             231:             TypePointer UniformConstant 230

-       232(ii1D):    231(ptr) Variable UniformConstant

-             234:      6(int) Constant 10

-             235:             TypePointer Image 6(int)

-             237:     18(int) Constant 1

-             243:             TypeImage 18(int) 2D nonsampled format:R32ui

-             244:             TypePointer UniformConstant 243

-       245(ui2D):    244(ptr) Variable UniformConstant

-             247:             TypePointer UniformConstant 18(int)

-      248(value):    247(ptr) Variable UniformConstant

-             250:             TypePointer Image 18(int)

-             256:      6(int) Constant 11

-             270:      6(int) Constant 12

-             284:      6(int) Constant 13

-             298:      6(int) Constant 14

-             312:      6(int) Constant 15

-             326:      6(int) Constant 16

-             340:      6(int) Constant 18

-             341:      6(int) Constant 17

-             349:     18(int) Constant 19

-             355:             TypePointer Output 125(fvec4)

-   356(fragData):    355(ptr) Variable Output

-             362:             TypeBool

-             369:             TypeVector 6(int) 4

-             370:             TypePointer UniformConstant 369(ivec4)

-       371(ic4D):    370(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-           9(iv):      8(ptr) Variable Function

-          127(v):    126(ptr) Variable Function

-         229(ui):    228(ptr) Variable Function

-             357:    126(ptr) Variable Function

-                              Store 9(iv) 11

-              16:          13 Load 15(i1D)

-              17:      6(int) ImageQuerySize 16

-              21:     20(ptr) AccessChain 9(iv) 19

-              22:      6(int) Load 21

-              23:      6(int) IAdd 22 17

-              24:     20(ptr) AccessChain 9(iv) 19

-                              Store 24 23

-              28:          25 Load 27(i2D)

-              30:   29(ivec2) ImageQuerySize 28

-              31:    7(ivec3) Load 9(iv)

-              32:   29(ivec2) VectorShuffle 31 31 0 1

-              33:   29(ivec2) IAdd 32 30

-              34:    7(ivec3) Load 9(iv)

-              35:    7(ivec3) VectorShuffle 34 33 3 4 2

-                              Store 9(iv) 35

-              39:          36 Load 38(i3D)

-              40:    7(ivec3) ImageQuerySize 39

-              41:    7(ivec3) Load 9(iv)

-              42:    7(ivec3) IAdd 41 40

-                              Store 9(iv) 42

-              46:          43 Load 45(iCube)

-              47:   29(ivec2) ImageQuerySize 46

-              48:    7(ivec3) Load 9(iv)

-              49:   29(ivec2) VectorShuffle 48 48 0 1

-              50:   29(ivec2) IAdd 49 47

-              51:    7(ivec3) Load 9(iv)

-              52:    7(ivec3) VectorShuffle 51 50 3 4 2

-                              Store 9(iv) 52

-              56:          53 Load 55(iCubeArray)

-              57:    7(ivec3) ImageQuerySize 56

-              58:    7(ivec3) Load 9(iv)

-              59:    7(ivec3) IAdd 58 57

-                              Store 9(iv) 59

-              63:          60 Load 62(i2DRect)

-              64:   29(ivec2) ImageQuerySize 63

-              65:    7(ivec3) Load 9(iv)

-              66:   29(ivec2) VectorShuffle 65 65 0 1

-              67:   29(ivec2) IAdd 66 64

-              68:    7(ivec3) Load 9(iv)

-              69:    7(ivec3) VectorShuffle 68 67 3 4 2

-                              Store 9(iv) 69

-              73:          70 Load 72(i1DArray)

-              74:   29(ivec2) ImageQuerySize 73

-              75:    7(ivec3) Load 9(iv)

-              76:   29(ivec2) VectorShuffle 75 75 0 1

-              77:   29(ivec2) IAdd 76 74

-              78:    7(ivec3) Load 9(iv)

-              79:    7(ivec3) VectorShuffle 78 77 3 4 2

-                              Store 9(iv) 79

-              83:          80 Load 82(i2DArray)

-              84:    7(ivec3) ImageQuerySize 83

-              85:    7(ivec3) Load 9(iv)

-              86:    7(ivec3) IAdd 85 84

-                              Store 9(iv) 86

-              90:          87 Load 89(iBuffer)

-              91:      6(int) ImageQuerySize 90

-              92:     20(ptr) AccessChain 9(iv) 19

-              93:      6(int) Load 92

-              94:      6(int) IAdd 93 91

-              95:     20(ptr) AccessChain 9(iv) 19

-                              Store 95 94

-              99:          96 Load 98(i2DMS)

-             100:   29(ivec2) ImageQuerySize 99

-             101:    7(ivec3) Load 9(iv)

-             102:   29(ivec2) VectorShuffle 101 101 0 1

-             103:   29(ivec2) IAdd 102 100

-             104:    7(ivec3) Load 9(iv)

-             105:    7(ivec3) VectorShuffle 104 103 3 4 2

-                              Store 9(iv) 105

-             109:         106 Load 108(i2DMSArray)

-             110:    7(ivec3) ImageQuerySize 109

-             111:    7(ivec3) Load 9(iv)

-             112:    7(ivec3) IAdd 111 110

-                              Store 9(iv) 112

-             113:          96 Load 98(i2DMS)

-             114:      6(int) ImageQuerySamples 113

-             115:     20(ptr) AccessChain 9(iv) 19

-             116:      6(int) Load 115

-             117:      6(int) IAdd 116 114

-             118:     20(ptr) AccessChain 9(iv) 19

-                              Store 118 117

-             119:         106 Load 108(i2DMSArray)

-             120:      6(int) ImageQuerySamples 119

-             121:     20(ptr) AccessChain 9(iv) 19

-             122:      6(int) Load 121

-             123:      6(int) IAdd 122 120

-             124:     20(ptr) AccessChain 9(iv) 19

-                              Store 124 123

-                              Store 127(v) 129

-             130:          13 Load 15(i1D)

-             133:      6(int) Load 132(ic1D)

-             134:  125(fvec4) ImageRead 130 133

-             135:  125(fvec4) Load 127(v)

-             136:  125(fvec4) FAdd 135 134

-                              Store 127(v) 136

-             137:          13 Load 15(i1D)

-             138:      6(int) Load 132(ic1D)

-             139:  125(fvec4) Load 127(v)

-                              ImageWrite 137 138 139

-             140:          25 Load 27(i2D)

-             143:   29(ivec2) Load 142(ic2D)

-             144:  125(fvec4) ImageRead 140 143

-             145:  125(fvec4) Load 127(v)

-             146:  125(fvec4) FAdd 145 144

-                              Store 127(v) 146

-             147:          25 Load 27(i2D)

-             148:   29(ivec2) Load 142(ic2D)

-             149:  125(fvec4) Load 127(v)

-                              ImageWrite 147 148 149

-             150:          36 Load 38(i3D)

-             153:    7(ivec3) Load 152(ic3D)

-             154:  125(fvec4) ImageRead 150 153

-             155:  125(fvec4) Load 127(v)

-             156:  125(fvec4) FAdd 155 154

-                              Store 127(v) 156

-             157:          36 Load 38(i3D)

-             158:    7(ivec3) Load 152(ic3D)

-             159:  125(fvec4) Load 127(v)

-                              ImageWrite 157 158 159

-             160:          43 Load 45(iCube)

-             161:    7(ivec3) Load 152(ic3D)

-             162:  125(fvec4) ImageRead 160 161

-             163:  125(fvec4) Load 127(v)

-             164:  125(fvec4) FAdd 163 162

-                              Store 127(v) 164

-             165:          43 Load 45(iCube)

-             166:    7(ivec3) Load 152(ic3D)

-             167:  125(fvec4) Load 127(v)

-                              ImageWrite 165 166 167

-             168:          53 Load 55(iCubeArray)

-             169:    7(ivec3) Load 152(ic3D)

-             170:  125(fvec4) ImageRead 168 169

-             171:  125(fvec4) Load 127(v)

-             172:  125(fvec4) FAdd 171 170

-                              Store 127(v) 172

-             173:          53 Load 55(iCubeArray)

-             174:    7(ivec3) Load 152(ic3D)

-             175:  125(fvec4) Load 127(v)

-                              ImageWrite 173 174 175

-             176:          60 Load 62(i2DRect)

-             177:   29(ivec2) Load 142(ic2D)

-             178:  125(fvec4) ImageRead 176 177

-             179:  125(fvec4) Load 127(v)

-             180:  125(fvec4) FAdd 179 178

-                              Store 127(v) 180

-             181:          60 Load 62(i2DRect)

-             182:   29(ivec2) Load 142(ic2D)

-             183:  125(fvec4) Load 127(v)

-                              ImageWrite 181 182 183

-             184:          70 Load 72(i1DArray)

-             185:   29(ivec2) Load 142(ic2D)

-             186:  125(fvec4) ImageRead 184 185

-             187:  125(fvec4) Load 127(v)

-             188:  125(fvec4) FAdd 187 186

-                              Store 127(v) 188

-             189:          70 Load 72(i1DArray)

-             190:   29(ivec2) Load 142(ic2D)

-             191:  125(fvec4) Load 127(v)

-                              ImageWrite 189 190 191

-             192:          80 Load 82(i2DArray)

-             193:    7(ivec3) Load 152(ic3D)

-             194:  125(fvec4) ImageRead 192 193

-             195:  125(fvec4) Load 127(v)

-             196:  125(fvec4) FAdd 195 194

-                              Store 127(v) 196

-             197:          80 Load 82(i2DArray)

-             198:    7(ivec3) Load 152(ic3D)

-             199:  125(fvec4) Load 127(v)

-                              ImageWrite 197 198 199

-             200:          87 Load 89(iBuffer)

-             201:      6(int) Load 132(ic1D)

-             202:  125(fvec4) ImageRead 200 201

-             203:  125(fvec4) Load 127(v)

-             204:  125(fvec4) FAdd 203 202

-                              Store 127(v) 204

-             205:          87 Load 89(iBuffer)

-             206:      6(int) Load 132(ic1D)

-             207:  125(fvec4) Load 127(v)

-                              ImageWrite 205 206 207

-             208:          96 Load 98(i2DMS)

-             209:   29(ivec2) Load 142(ic2D)

-             211:  125(fvec4) ImageRead 208 209 Sample 210

-             212:  125(fvec4) Load 127(v)

-             213:  125(fvec4) FAdd 212 211

-                              Store 127(v) 213

-             214:          96 Load 98(i2DMS)

-             215:   29(ivec2) Load 142(ic2D)

-             217:  125(fvec4) Load 127(v)

-                              ImageWrite 214 215 216

-             218:         106 Load 108(i2DMSArray)

-             219:    7(ivec3) Load 152(ic3D)

-             221:  125(fvec4) ImageRead 218 219 Sample 220

-             222:  125(fvec4) Load 127(v)

-             223:  125(fvec4) FAdd 222 221

-                              Store 127(v) 223

-             224:         106 Load 108(i2DMSArray)

-             225:    7(ivec3) Load 152(ic3D)

-             227:  125(fvec4) Load 127(v)

-                              ImageWrite 224 225 226

-                              Store 229(ui) 19

-             233:      6(int) Load 132(ic1D)

-             236:    235(ptr) ImageTexelPointer 232(ii1D) 233 0

-             238:      6(int) AtomicIAdd 236 237 19 234

-             239:     20(ptr) AccessChain 9(iv) 19

-             240:      6(int) Load 239

-             241:      6(int) IAdd 240 238

-             242:     20(ptr) AccessChain 9(iv) 19

-                              Store 242 241

-             246:   29(ivec2) Load 142(ic2D)

-             249:     18(int) Load 248(value)

-             251:    250(ptr) ImageTexelPointer 245(ui2D) 246 0

-             252:     18(int) AtomicIAdd 251 237 19 249

-             253:     18(int) Load 229(ui)

-             254:     18(int) IAdd 253 252

-                              Store 229(ui) 254

-             255:      6(int) Load 132(ic1D)

-             257:    235(ptr) ImageTexelPointer 232(ii1D) 255 0

-             258:      6(int) AtomicSMin 257 237 19 256

-             259:     20(ptr) AccessChain 9(iv) 19

-             260:      6(int) Load 259

-             261:      6(int) IAdd 260 258

-             262:     20(ptr) AccessChain 9(iv) 19

-                              Store 262 261

-             263:   29(ivec2) Load 142(ic2D)

-             264:     18(int) Load 248(value)

-             265:    250(ptr) ImageTexelPointer 245(ui2D) 263 0

-             266:     18(int) AtomicUMin 265 237 19 264

-             267:     18(int) Load 229(ui)

-             268:     18(int) IAdd 267 266

-                              Store 229(ui) 268

-             269:      6(int) Load 132(ic1D)

-             271:    235(ptr) ImageTexelPointer 232(ii1D) 269 0

-             272:      6(int) AtomicSMax 271 237 19 270

-             273:     20(ptr) AccessChain 9(iv) 19

-             274:      6(int) Load 273

-             275:      6(int) IAdd 274 272

-             276:     20(ptr) AccessChain 9(iv) 19

-                              Store 276 275

-             277:   29(ivec2) Load 142(ic2D)

-             278:     18(int) Load 248(value)

-             279:    250(ptr) ImageTexelPointer 245(ui2D) 277 0

-             280:     18(int) AtomicUMax 279 237 19 278

-             281:     18(int) Load 229(ui)

-             282:     18(int) IAdd 281 280

-                              Store 229(ui) 282

-             283:      6(int) Load 132(ic1D)

-             285:    235(ptr) ImageTexelPointer 232(ii1D) 283 0

-             286:      6(int) AtomicAnd 285 237 19 284

-             287:     20(ptr) AccessChain 9(iv) 19

-             288:      6(int) Load 287

-             289:      6(int) IAdd 288 286

-             290:     20(ptr) AccessChain 9(iv) 19

-                              Store 290 289

-             291:   29(ivec2) Load 142(ic2D)

-             292:     18(int) Load 248(value)

-             293:    250(ptr) ImageTexelPointer 245(ui2D) 291 0

-             294:     18(int) AtomicAnd 293 237 19 292

-             295:     18(int) Load 229(ui)

-             296:     18(int) IAdd 295 294

-                              Store 229(ui) 296

-             297:      6(int) Load 132(ic1D)

-             299:    235(ptr) ImageTexelPointer 232(ii1D) 297 0

-             300:      6(int) AtomicOr 299 237 19 298

-             301:     20(ptr) AccessChain 9(iv) 19

-             302:      6(int) Load 301

-             303:      6(int) IAdd 302 300

-             304:     20(ptr) AccessChain 9(iv) 19

-                              Store 304 303

-             305:   29(ivec2) Load 142(ic2D)

-             306:     18(int) Load 248(value)

-             307:    250(ptr) ImageTexelPointer 245(ui2D) 305 0

-             308:     18(int) AtomicOr 307 237 19 306

-             309:     18(int) Load 229(ui)

-             310:     18(int) IAdd 309 308

-                              Store 229(ui) 310

-             311:      6(int) Load 132(ic1D)

-             313:    235(ptr) ImageTexelPointer 232(ii1D) 311 0

-             314:      6(int) AtomicXor 313 237 19 312

-             315:     20(ptr) AccessChain 9(iv) 19

-             316:      6(int) Load 315

-             317:      6(int) IAdd 316 314

-             318:     20(ptr) AccessChain 9(iv) 19

-                              Store 318 317

-             319:   29(ivec2) Load 142(ic2D)

-             320:     18(int) Load 248(value)

-             321:    250(ptr) ImageTexelPointer 245(ui2D) 319 0

-             322:     18(int) AtomicXor 321 237 19 320

-             323:     18(int) Load 229(ui)

-             324:     18(int) IAdd 323 322

-                              Store 229(ui) 324

-             325:      6(int) Load 132(ic1D)

-             327:    235(ptr) ImageTexelPointer 232(ii1D) 325 0

-             328:      6(int) AtomicExchange 327 237 19 326

-             329:     20(ptr) AccessChain 9(iv) 19

-             330:      6(int) Load 329

-             331:      6(int) IAdd 330 328

-             332:     20(ptr) AccessChain 9(iv) 19

-                              Store 332 331

-             333:   29(ivec2) Load 142(ic2D)

-             334:     18(int) Load 248(value)

-             335:    250(ptr) ImageTexelPointer 245(ui2D) 333 0

-             336:     18(int) AtomicExchange 335 237 19 334

-             337:     18(int) Load 229(ui)

-             338:     18(int) IAdd 337 336

-                              Store 229(ui) 338

-             339:      6(int) Load 132(ic1D)

-             342:    235(ptr) ImageTexelPointer 232(ii1D) 339 0

-             343:      6(int) AtomicCompareExchange 342 237 19 19 341 340

-             344:     20(ptr) AccessChain 9(iv) 19

-             345:      6(int) Load 344

-             346:      6(int) IAdd 345 343

-             347:     20(ptr) AccessChain 9(iv) 19

-                              Store 347 346

-             348:   29(ivec2) Load 142(ic2D)

-             350:     18(int) Load 248(value)

-             351:    250(ptr) ImageTexelPointer 245(ui2D) 348 0

-             352:     18(int) AtomicCompareExchange 351 237 19 19 350 349

-             353:     18(int) Load 229(ui)

-             354:     18(int) IAdd 353 352

-                              Store 229(ui) 354

-             358:     18(int) Load 229(ui)

-             359:     20(ptr) AccessChain 9(iv) 237

-             360:      6(int) Load 359

-             361:     18(int) Bitcast 360

-             363:   362(bool) INotEqual 358 361

-                              SelectionMerge 365 None

-                              BranchConditional 363 364 367

-             364:               Label

-             366:  125(fvec4)   Load 127(v)

-                                Store 357 366

-                                Branch 365

-             367:               Label

-                                Store 357 129

-                                Branch 365

-             365:             Label

-             368:  125(fvec4) Load 357

-                              Store 356(fragData) 368

-                              Return

-                              FunctionEnd

+spv.image.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 372
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 356
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 9  "iv"
+                              Name 15  "i1D"
+                              Name 27  "i2D"
+                              Name 38  "i3D"
+                              Name 45  "iCube"
+                              Name 55  "iCubeArray"
+                              Name 62  "i2DRect"
+                              Name 72  "i1DArray"
+                              Name 82  "i2DArray"
+                              Name 89  "iBuffer"
+                              Name 98  "i2DMS"
+                              Name 108  "i2DMSArray"
+                              Name 127  "v"
+                              Name 132  "ic1D"
+                              Name 142  "ic2D"
+                              Name 152  "ic3D"
+                              Name 229  "ui"
+                              Name 232  "ii1D"
+                              Name 245  "ui2D"
+                              Name 248  "value"
+                              Name 356  "fragData"
+                              Name 371  "ic4D"
+                              Decorate 15(i1D) Binding 0
+                              Decorate 27(i2D) Binding 1
+                              Decorate 38(i3D) Binding 2
+                              Decorate 45(iCube) Binding 3
+                              Decorate 55(iCubeArray) Binding 4
+                              Decorate 62(i2DRect) Binding 5
+                              Decorate 72(i1DArray) Binding 6
+                              Decorate 82(i2DArray) Binding 7
+                              Decorate 89(iBuffer) Binding 8
+                              Decorate 98(i2DMS) Binding 9
+                              Decorate 108(i2DMSArray) Binding 10
+                              Decorate 232(ii1D) Binding 11
+                              Decorate 245(ui2D) Binding 12
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeVector 6(int) 3
+               8:             TypePointer Function 7(ivec3)
+              10:      6(int) Constant 0
+              11:    7(ivec3) ConstantComposite 10 10 10
+              12:             TypeFloat 32
+              13:             TypeImage 12(float) 1D nonsampled format:Rgba32f
+              14:             TypePointer UniformConstant 13
+         15(i1D):     14(ptr) Variable UniformConstant
+              18:             TypeInt 32 0
+              19:     18(int) Constant 0
+              20:             TypePointer Function 6(int)
+              25:             TypeImage 12(float) 2D nonsampled format:Rgba32f
+              26:             TypePointer UniformConstant 25
+         27(i2D):     26(ptr) Variable UniformConstant
+              29:             TypeVector 6(int) 2
+              36:             TypeImage 12(float) 3D nonsampled format:Rgba32f
+              37:             TypePointer UniformConstant 36
+         38(i3D):     37(ptr) Variable UniformConstant
+              43:             TypeImage 12(float) Cube nonsampled format:Rgba32f
+              44:             TypePointer UniformConstant 43
+       45(iCube):     44(ptr) Variable UniformConstant
+              53:             TypeImage 12(float) Cube array nonsampled format:Rgba32f
+              54:             TypePointer UniformConstant 53
+  55(iCubeArray):     54(ptr) Variable UniformConstant
+              60:             TypeImage 12(float) Rect nonsampled format:Rgba32f
+              61:             TypePointer UniformConstant 60
+     62(i2DRect):     61(ptr) Variable UniformConstant
+              70:             TypeImage 12(float) 1D array nonsampled format:Rgba32f
+              71:             TypePointer UniformConstant 70
+    72(i1DArray):     71(ptr) Variable UniformConstant
+              80:             TypeImage 12(float) 2D array nonsampled format:Rgba32f
+              81:             TypePointer UniformConstant 80
+    82(i2DArray):     81(ptr) Variable UniformConstant
+              87:             TypeImage 12(float) Buffer nonsampled format:Rgba32f
+              88:             TypePointer UniformConstant 87
+     89(iBuffer):     88(ptr) Variable UniformConstant
+              96:             TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f
+              97:             TypePointer UniformConstant 96
+       98(i2DMS):     97(ptr) Variable UniformConstant
+             106:             TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f
+             107:             TypePointer UniformConstant 106
+ 108(i2DMSArray):    107(ptr) Variable UniformConstant
+             125:             TypeVector 12(float) 4
+             126:             TypePointer Function 125(fvec4)
+             128:   12(float) Constant 0
+             129:  125(fvec4) ConstantComposite 128 128 128 128
+             131:             TypePointer UniformConstant 6(int)
+       132(ic1D):    131(ptr) Variable UniformConstant
+             141:             TypePointer UniformConstant 29(ivec2)
+       142(ic2D):    141(ptr) Variable UniformConstant
+             151:             TypePointer UniformConstant 7(ivec3)
+       152(ic3D):    151(ptr) Variable UniformConstant
+             210:      6(int) Constant 1
+             216:      6(int) Constant 2
+             220:      6(int) Constant 3
+             226:      6(int) Constant 4
+             228:             TypePointer Function 18(int)
+             230:             TypeImage 6(int) 1D nonsampled format:R32i
+             231:             TypePointer UniformConstant 230
+       232(ii1D):    231(ptr) Variable UniformConstant
+             234:      6(int) Constant 10
+             235:             TypePointer Image 6(int)
+             237:     18(int) Constant 1
+             243:             TypeImage 18(int) 2D nonsampled format:R32ui
+             244:             TypePointer UniformConstant 243
+       245(ui2D):    244(ptr) Variable UniformConstant
+             247:             TypePointer UniformConstant 18(int)
+      248(value):    247(ptr) Variable UniformConstant
+             250:             TypePointer Image 18(int)
+             256:      6(int) Constant 11
+             270:      6(int) Constant 12
+             284:      6(int) Constant 13
+             298:      6(int) Constant 14
+             312:      6(int) Constant 15
+             326:      6(int) Constant 16
+             340:      6(int) Constant 18
+             341:      6(int) Constant 17
+             349:     18(int) Constant 19
+             355:             TypePointer Output 125(fvec4)
+   356(fragData):    355(ptr) Variable Output
+             362:             TypeBool
+             369:             TypeVector 6(int) 4
+             370:             TypePointer UniformConstant 369(ivec4)
+       371(ic4D):    370(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+           9(iv):      8(ptr) Variable Function
+          127(v):    126(ptr) Variable Function
+         229(ui):    228(ptr) Variable Function
+             357:    126(ptr) Variable Function
+                              Store 9(iv) 11
+              16:          13 Load 15(i1D)
+              17:      6(int) ImageQuerySize 16
+              21:     20(ptr) AccessChain 9(iv) 19
+              22:      6(int) Load 21
+              23:      6(int) IAdd 22 17
+              24:     20(ptr) AccessChain 9(iv) 19
+                              Store 24 23
+              28:          25 Load 27(i2D)
+              30:   29(ivec2) ImageQuerySize 28
+              31:    7(ivec3) Load 9(iv)
+              32:   29(ivec2) VectorShuffle 31 31 0 1
+              33:   29(ivec2) IAdd 32 30
+              34:    7(ivec3) Load 9(iv)
+              35:    7(ivec3) VectorShuffle 34 33 3 4 2
+                              Store 9(iv) 35
+              39:          36 Load 38(i3D)
+              40:    7(ivec3) ImageQuerySize 39
+              41:    7(ivec3) Load 9(iv)
+              42:    7(ivec3) IAdd 41 40
+                              Store 9(iv) 42
+              46:          43 Load 45(iCube)
+              47:   29(ivec2) ImageQuerySize 46
+              48:    7(ivec3) Load 9(iv)
+              49:   29(ivec2) VectorShuffle 48 48 0 1
+              50:   29(ivec2) IAdd 49 47
+              51:    7(ivec3) Load 9(iv)
+              52:    7(ivec3) VectorShuffle 51 50 3 4 2
+                              Store 9(iv) 52
+              56:          53 Load 55(iCubeArray)
+              57:    7(ivec3) ImageQuerySize 56
+              58:    7(ivec3) Load 9(iv)
+              59:    7(ivec3) IAdd 58 57
+                              Store 9(iv) 59
+              63:          60 Load 62(i2DRect)
+              64:   29(ivec2) ImageQuerySize 63
+              65:    7(ivec3) Load 9(iv)
+              66:   29(ivec2) VectorShuffle 65 65 0 1
+              67:   29(ivec2) IAdd 66 64
+              68:    7(ivec3) Load 9(iv)
+              69:    7(ivec3) VectorShuffle 68 67 3 4 2
+                              Store 9(iv) 69
+              73:          70 Load 72(i1DArray)
+              74:   29(ivec2) ImageQuerySize 73
+              75:    7(ivec3) Load 9(iv)
+              76:   29(ivec2) VectorShuffle 75 75 0 1
+              77:   29(ivec2) IAdd 76 74
+              78:    7(ivec3) Load 9(iv)
+              79:    7(ivec3) VectorShuffle 78 77 3 4 2
+                              Store 9(iv) 79
+              83:          80 Load 82(i2DArray)
+              84:    7(ivec3) ImageQuerySize 83
+              85:    7(ivec3) Load 9(iv)
+              86:    7(ivec3) IAdd 85 84
+                              Store 9(iv) 86
+              90:          87 Load 89(iBuffer)
+              91:      6(int) ImageQuerySize 90
+              92:     20(ptr) AccessChain 9(iv) 19
+              93:      6(int) Load 92
+              94:      6(int) IAdd 93 91
+              95:     20(ptr) AccessChain 9(iv) 19
+                              Store 95 94
+              99:          96 Load 98(i2DMS)
+             100:   29(ivec2) ImageQuerySize 99
+             101:    7(ivec3) Load 9(iv)
+             102:   29(ivec2) VectorShuffle 101 101 0 1
+             103:   29(ivec2) IAdd 102 100
+             104:    7(ivec3) Load 9(iv)
+             105:    7(ivec3) VectorShuffle 104 103 3 4 2
+                              Store 9(iv) 105
+             109:         106 Load 108(i2DMSArray)
+             110:    7(ivec3) ImageQuerySize 109
+             111:    7(ivec3) Load 9(iv)
+             112:    7(ivec3) IAdd 111 110
+                              Store 9(iv) 112
+             113:          96 Load 98(i2DMS)
+             114:      6(int) ImageQuerySamples 113
+             115:     20(ptr) AccessChain 9(iv) 19
+             116:      6(int) Load 115
+             117:      6(int) IAdd 116 114
+             118:     20(ptr) AccessChain 9(iv) 19
+                              Store 118 117
+             119:         106 Load 108(i2DMSArray)
+             120:      6(int) ImageQuerySamples 119
+             121:     20(ptr) AccessChain 9(iv) 19
+             122:      6(int) Load 121
+             123:      6(int) IAdd 122 120
+             124:     20(ptr) AccessChain 9(iv) 19
+                              Store 124 123
+                              Store 127(v) 129
+             130:          13 Load 15(i1D)
+             133:      6(int) Load 132(ic1D)
+             134:  125(fvec4) ImageRead 130 133
+             135:  125(fvec4) Load 127(v)
+             136:  125(fvec4) FAdd 135 134
+                              Store 127(v) 136
+             137:          13 Load 15(i1D)
+             138:      6(int) Load 132(ic1D)
+             139:  125(fvec4) Load 127(v)
+                              ImageWrite 137 138 139
+             140:          25 Load 27(i2D)
+             143:   29(ivec2) Load 142(ic2D)
+             144:  125(fvec4) ImageRead 140 143
+             145:  125(fvec4) Load 127(v)
+             146:  125(fvec4) FAdd 145 144
+                              Store 127(v) 146
+             147:          25 Load 27(i2D)
+             148:   29(ivec2) Load 142(ic2D)
+             149:  125(fvec4) Load 127(v)
+                              ImageWrite 147 148 149
+             150:          36 Load 38(i3D)
+             153:    7(ivec3) Load 152(ic3D)
+             154:  125(fvec4) ImageRead 150 153
+             155:  125(fvec4) Load 127(v)
+             156:  125(fvec4) FAdd 155 154
+                              Store 127(v) 156
+             157:          36 Load 38(i3D)
+             158:    7(ivec3) Load 152(ic3D)
+             159:  125(fvec4) Load 127(v)
+                              ImageWrite 157 158 159
+             160:          43 Load 45(iCube)
+             161:    7(ivec3) Load 152(ic3D)
+             162:  125(fvec4) ImageRead 160 161
+             163:  125(fvec4) Load 127(v)
+             164:  125(fvec4) FAdd 163 162
+                              Store 127(v) 164
+             165:          43 Load 45(iCube)
+             166:    7(ivec3) Load 152(ic3D)
+             167:  125(fvec4) Load 127(v)
+                              ImageWrite 165 166 167
+             168:          53 Load 55(iCubeArray)
+             169:    7(ivec3) Load 152(ic3D)
+             170:  125(fvec4) ImageRead 168 169
+             171:  125(fvec4) Load 127(v)
+             172:  125(fvec4) FAdd 171 170
+                              Store 127(v) 172
+             173:          53 Load 55(iCubeArray)
+             174:    7(ivec3) Load 152(ic3D)
+             175:  125(fvec4) Load 127(v)
+                              ImageWrite 173 174 175
+             176:          60 Load 62(i2DRect)
+             177:   29(ivec2) Load 142(ic2D)
+             178:  125(fvec4) ImageRead 176 177
+             179:  125(fvec4) Load 127(v)
+             180:  125(fvec4) FAdd 179 178
+                              Store 127(v) 180
+             181:          60 Load 62(i2DRect)
+             182:   29(ivec2) Load 142(ic2D)
+             183:  125(fvec4) Load 127(v)
+                              ImageWrite 181 182 183
+             184:          70 Load 72(i1DArray)
+             185:   29(ivec2) Load 142(ic2D)
+             186:  125(fvec4) ImageRead 184 185
+             187:  125(fvec4) Load 127(v)
+             188:  125(fvec4) FAdd 187 186
+                              Store 127(v) 188
+             189:          70 Load 72(i1DArray)
+             190:   29(ivec2) Load 142(ic2D)
+             191:  125(fvec4) Load 127(v)
+                              ImageWrite 189 190 191
+             192:          80 Load 82(i2DArray)
+             193:    7(ivec3) Load 152(ic3D)
+             194:  125(fvec4) ImageRead 192 193
+             195:  125(fvec4) Load 127(v)
+             196:  125(fvec4) FAdd 195 194
+                              Store 127(v) 196
+             197:          80 Load 82(i2DArray)
+             198:    7(ivec3) Load 152(ic3D)
+             199:  125(fvec4) Load 127(v)
+                              ImageWrite 197 198 199
+             200:          87 Load 89(iBuffer)
+             201:      6(int) Load 132(ic1D)
+             202:  125(fvec4) ImageRead 200 201
+             203:  125(fvec4) Load 127(v)
+             204:  125(fvec4) FAdd 203 202
+                              Store 127(v) 204
+             205:          87 Load 89(iBuffer)
+             206:      6(int) Load 132(ic1D)
+             207:  125(fvec4) Load 127(v)
+                              ImageWrite 205 206 207
+             208:          96 Load 98(i2DMS)
+             209:   29(ivec2) Load 142(ic2D)
+             211:  125(fvec4) ImageRead 208 209 Sample 210
+             212:  125(fvec4) Load 127(v)
+             213:  125(fvec4) FAdd 212 211
+                              Store 127(v) 213
+             214:          96 Load 98(i2DMS)
+             215:   29(ivec2) Load 142(ic2D)
+             217:  125(fvec4) Load 127(v)
+                              ImageWrite 214 215 216
+             218:         106 Load 108(i2DMSArray)
+             219:    7(ivec3) Load 152(ic3D)
+             221:  125(fvec4) ImageRead 218 219 Sample 220
+             222:  125(fvec4) Load 127(v)
+             223:  125(fvec4) FAdd 222 221
+                              Store 127(v) 223
+             224:         106 Load 108(i2DMSArray)
+             225:    7(ivec3) Load 152(ic3D)
+             227:  125(fvec4) Load 127(v)
+                              ImageWrite 224 225 226
+                              Store 229(ui) 19
+             233:      6(int) Load 132(ic1D)
+             236:    235(ptr) ImageTexelPointer 232(ii1D) 233 0
+             238:      6(int) AtomicIAdd 236 237 19 234
+             239:     20(ptr) AccessChain 9(iv) 19
+             240:      6(int) Load 239
+             241:      6(int) IAdd 240 238
+             242:     20(ptr) AccessChain 9(iv) 19
+                              Store 242 241
+             246:   29(ivec2) Load 142(ic2D)
+             249:     18(int) Load 248(value)
+             251:    250(ptr) ImageTexelPointer 245(ui2D) 246 0
+             252:     18(int) AtomicIAdd 251 237 19 249
+             253:     18(int) Load 229(ui)
+             254:     18(int) IAdd 253 252
+                              Store 229(ui) 254
+             255:      6(int) Load 132(ic1D)
+             257:    235(ptr) ImageTexelPointer 232(ii1D) 255 0
+             258:      6(int) AtomicSMin 257 237 19 256
+             259:     20(ptr) AccessChain 9(iv) 19
+             260:      6(int) Load 259
+             261:      6(int) IAdd 260 258
+             262:     20(ptr) AccessChain 9(iv) 19
+                              Store 262 261
+             263:   29(ivec2) Load 142(ic2D)
+             264:     18(int) Load 248(value)
+             265:    250(ptr) ImageTexelPointer 245(ui2D) 263 0
+             266:     18(int) AtomicUMin 265 237 19 264
+             267:     18(int) Load 229(ui)
+             268:     18(int) IAdd 267 266
+                              Store 229(ui) 268
+             269:      6(int) Load 132(ic1D)
+             271:    235(ptr) ImageTexelPointer 232(ii1D) 269 0
+             272:      6(int) AtomicSMax 271 237 19 270
+             273:     20(ptr) AccessChain 9(iv) 19
+             274:      6(int) Load 273
+             275:      6(int) IAdd 274 272
+             276:     20(ptr) AccessChain 9(iv) 19
+                              Store 276 275
+             277:   29(ivec2) Load 142(ic2D)
+             278:     18(int) Load 248(value)
+             279:    250(ptr) ImageTexelPointer 245(ui2D) 277 0
+             280:     18(int) AtomicUMax 279 237 19 278
+             281:     18(int) Load 229(ui)
+             282:     18(int) IAdd 281 280
+                              Store 229(ui) 282
+             283:      6(int) Load 132(ic1D)
+             285:    235(ptr) ImageTexelPointer 232(ii1D) 283 0
+             286:      6(int) AtomicAnd 285 237 19 284
+             287:     20(ptr) AccessChain 9(iv) 19
+             288:      6(int) Load 287
+             289:      6(int) IAdd 288 286
+             290:     20(ptr) AccessChain 9(iv) 19
+                              Store 290 289
+             291:   29(ivec2) Load 142(ic2D)
+             292:     18(int) Load 248(value)
+             293:    250(ptr) ImageTexelPointer 245(ui2D) 291 0
+             294:     18(int) AtomicAnd 293 237 19 292
+             295:     18(int) Load 229(ui)
+             296:     18(int) IAdd 295 294
+                              Store 229(ui) 296
+             297:      6(int) Load 132(ic1D)
+             299:    235(ptr) ImageTexelPointer 232(ii1D) 297 0
+             300:      6(int) AtomicOr 299 237 19 298
+             301:     20(ptr) AccessChain 9(iv) 19
+             302:      6(int) Load 301
+             303:      6(int) IAdd 302 300
+             304:     20(ptr) AccessChain 9(iv) 19
+                              Store 304 303
+             305:   29(ivec2) Load 142(ic2D)
+             306:     18(int) Load 248(value)
+             307:    250(ptr) ImageTexelPointer 245(ui2D) 305 0
+             308:     18(int) AtomicOr 307 237 19 306
+             309:     18(int) Load 229(ui)
+             310:     18(int) IAdd 309 308
+                              Store 229(ui) 310
+             311:      6(int) Load 132(ic1D)
+             313:    235(ptr) ImageTexelPointer 232(ii1D) 311 0
+             314:      6(int) AtomicXor 313 237 19 312
+             315:     20(ptr) AccessChain 9(iv) 19
+             316:      6(int) Load 315
+             317:      6(int) IAdd 316 314
+             318:     20(ptr) AccessChain 9(iv) 19
+                              Store 318 317
+             319:   29(ivec2) Load 142(ic2D)
+             320:     18(int) Load 248(value)
+             321:    250(ptr) ImageTexelPointer 245(ui2D) 319 0
+             322:     18(int) AtomicXor 321 237 19 320
+             323:     18(int) Load 229(ui)
+             324:     18(int) IAdd 323 322
+                              Store 229(ui) 324
+             325:      6(int) Load 132(ic1D)
+             327:    235(ptr) ImageTexelPointer 232(ii1D) 325 0
+             328:      6(int) AtomicExchange 327 237 19 326
+             329:     20(ptr) AccessChain 9(iv) 19
+             330:      6(int) Load 329
+             331:      6(int) IAdd 330 328
+             332:     20(ptr) AccessChain 9(iv) 19
+                              Store 332 331
+             333:   29(ivec2) Load 142(ic2D)
+             334:     18(int) Load 248(value)
+             335:    250(ptr) ImageTexelPointer 245(ui2D) 333 0
+             336:     18(int) AtomicExchange 335 237 19 334
+             337:     18(int) Load 229(ui)
+             338:     18(int) IAdd 337 336
+                              Store 229(ui) 338
+             339:      6(int) Load 132(ic1D)
+             342:    235(ptr) ImageTexelPointer 232(ii1D) 339 0
+             343:      6(int) AtomicCompareExchange 342 237 19 19 341 340
+             344:     20(ptr) AccessChain 9(iv) 19
+             345:      6(int) Load 344
+             346:      6(int) IAdd 345 343
+             347:     20(ptr) AccessChain 9(iv) 19
+                              Store 347 346
+             348:   29(ivec2) Load 142(ic2D)
+             350:     18(int) Load 248(value)
+             351:    250(ptr) ImageTexelPointer 245(ui2D) 348 0
+             352:     18(int) AtomicCompareExchange 351 237 19 19 350 349
+             353:     18(int) Load 229(ui)
+             354:     18(int) IAdd 353 352
+                              Store 229(ui) 354
+             358:     18(int) Load 229(ui)
+             359:     20(ptr) AccessChain 9(iv) 237
+             360:      6(int) Load 359
+             361:     18(int) Bitcast 360
+             363:   362(bool) INotEqual 358 361
+                              SelectionMerge 365 None
+                              BranchConditional 363 364 367
+             364:               Label
+             366:  125(fvec4)   Load 127(v)
+                                Store 357 366
+                                Branch 365
+             367:               Label
+                                Store 357 129
+                                Branch 365
+             365:             Label
+             368:  125(fvec4) Load 357
+                              Store 356(fragData) 368
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out
index 649c05a..fca5cd4 100644
--- a/Test/baseResults/spv.intOps.vert.out
+++ b/Test/baseResults/spv.intOps.vert.out
@@ -1,359 +1,359 @@
-spv.intOps.vert

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 270

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 47 26 173 67 121 142 100 247 156 146 182 83 15 9 21 268 269

-                              Source ESSL 310

-                              Name 4  "main"

-                              Name 9  "iout"

-                              Name 15  "uout"

-                              Name 21  "fout"

-                              Name 26  "u2"

-                              Name 30  "u2out"

-                              Name 31  "ResType"

-                              Name 47  "u1"

-                              Name 51  "u1out"

-                              Name 52  "ResType"

-                              Name 67  "u4"

-                              Name 71  "u4outHi"

-                              Name 72  "u4outLow"

-                              Name 73  "ResType"

-                              Name 83  "i4"

-                              Name 87  "i4outHi"

-                              Name 88  "i4outLow"

-                              Name 89  "ResType"

-                              Name 100  "v3"

-                              Name 104  "i3out"

-                              Name 105  "ResType"

-                              Name 121  "v1"

-                              Name 124  "i1out"

-                              Name 125  "ResType"

-                              Name 142  "v2"

-                              Name 146  "i2"

-                              Name 156  "i1"

-                              Name 173  "u3"

-                              Name 182  "i3"

-                              Name 247  "v4"

-                              Name 268  "gl_VertexID"

-                              Name 269  "gl_InstanceID"

-                              Decorate 268(gl_VertexID) BuiltIn VertexId

-                              Decorate 269(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypeVector 6(int) 4

-               8:             TypePointer Output 7(ivec4)

-         9(iout):      8(ptr) Variable Output

-              10:      6(int) Constant 0

-              11:    7(ivec4) ConstantComposite 10 10 10 10

-              12:             TypeInt 32 0

-              13:             TypeVector 12(int) 4

-              14:             TypePointer Output 13(ivec4)

-        15(uout):     14(ptr) Variable Output

-              16:     12(int) Constant 0

-              17:   13(ivec4) ConstantComposite 16 16 16 16

-              18:             TypeFloat 32

-              19:             TypeVector 18(float) 4

-              20:             TypePointer Output 19(fvec4)

-        21(fout):     20(ptr) Variable Output

-              22:   18(float) Constant 0

-              23:   19(fvec4) ConstantComposite 22 22 22 22

-              24:             TypeVector 12(int) 2

-              25:             TypePointer Input 24(ivec2)

-          26(u2):     25(ptr) Variable Input

-              29:             TypePointer Function 24(ivec2)

-     31(ResType):             TypeStruct 24(ivec2) 24(ivec2)

-              46:             TypePointer Input 12(int)

-          47(u1):     46(ptr) Variable Input

-              50:             TypePointer Function 12(int)

-     52(ResType):             TypeStruct 12(int) 12(int)

-              56:             TypePointer Output 12(int)

-              66:             TypePointer Input 13(ivec4)

-          67(u4):     66(ptr) Variable Input

-              70:             TypePointer Function 13(ivec4)

-     73(ResType):             TypeStruct 13(ivec4) 13(ivec4)

-              82:             TypePointer Input 7(ivec4)

-          83(i4):     82(ptr) Variable Input

-              86:             TypePointer Function 7(ivec4)

-     89(ResType):             TypeStruct 7(ivec4) 7(ivec4)

-              98:             TypeVector 18(float) 3

-              99:             TypePointer Input 98(fvec3)

-         100(v3):     99(ptr) Variable Input

-             102:             TypeVector 6(int) 3

-             103:             TypePointer Function 102(ivec3)

-    105(ResType):             TypeStruct 98(fvec3) 102(ivec3)

-             120:             TypePointer Input 18(float)

-         121(v1):    120(ptr) Variable Input

-             123:             TypePointer Function 6(int)

-    125(ResType):             TypeStruct 18(float) 6(int)

-             129:             TypePointer Output 18(float)

-             135:             TypePointer Output 6(int)

-             140:             TypeVector 18(float) 2

-             141:             TypePointer Input 140(fvec2)

-         142(v2):    141(ptr) Variable Input

-             144:             TypeVector 6(int) 2

-             145:             TypePointer Input 144(ivec2)

-         146(i2):    145(ptr) Variable Input

-             155:             TypePointer Input 6(int)

-         156(i1):    155(ptr) Variable Input

-             164:      6(int) Constant 4

-             165:      6(int) Constant 5

-             171:             TypeVector 12(int) 3

-             172:             TypePointer Input 171(ivec3)

-         173(u3):    172(ptr) Variable Input

-             181:             TypePointer Input 102(ivec3)

-         182(i3):    181(ptr) Variable Input

-             246:             TypePointer Input 19(fvec4)

-         247(v4):    246(ptr) Variable Input

-268(gl_VertexID):    155(ptr) Variable Input

-269(gl_InstanceID):    155(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-       30(u2out):     29(ptr) Variable Function

-       51(u1out):     50(ptr) Variable Function

-     71(u4outHi):     70(ptr) Variable Function

-    72(u4outLow):     70(ptr) Variable Function

-     87(i4outHi):     86(ptr) Variable Function

-    88(i4outLow):     86(ptr) Variable Function

-      104(i3out):    103(ptr) Variable Function

-      124(i1out):    123(ptr) Variable Function

-                              Store 9(iout) 11

-                              Store 15(uout) 17

-                              Store 21(fout) 23

-              27:   24(ivec2) Load 26(u2)

-              28:   24(ivec2) Load 26(u2)

-              32: 31(ResType) IAddCarry 27 28

-              33:   24(ivec2) CompositeExtract 32 1

-                              Store 30(u2out) 33

-              34:   24(ivec2) CompositeExtract 32 0

-              35:   13(ivec4) Load 15(uout)

-              36:   24(ivec2) VectorShuffle 35 35 0 1

-              37:   24(ivec2) IAdd 36 34

-              38:   13(ivec4) Load 15(uout)

-              39:   13(ivec4) VectorShuffle 38 37 4 5 2 3

-                              Store 15(uout) 39

-              40:   24(ivec2) Load 30(u2out)

-              41:   13(ivec4) Load 15(uout)

-              42:   24(ivec2) VectorShuffle 41 41 0 1

-              43:   24(ivec2) IAdd 42 40

-              44:   13(ivec4) Load 15(uout)

-              45:   13(ivec4) VectorShuffle 44 43 4 5 2 3

-                              Store 15(uout) 45

-              48:     12(int) Load 47(u1)

-              49:     12(int) Load 47(u1)

-              53: 52(ResType) ISubBorrow 48 49

-              54:     12(int) CompositeExtract 53 1

-                              Store 51(u1out) 54

-              55:     12(int) CompositeExtract 53 0

-              57:     56(ptr) AccessChain 15(uout) 16

-              58:     12(int) Load 57

-              59:     12(int) IAdd 58 55

-              60:     56(ptr) AccessChain 15(uout) 16

-                              Store 60 59

-              61:     12(int) Load 51(u1out)

-              62:     56(ptr) AccessChain 15(uout) 16

-              63:     12(int) Load 62

-              64:     12(int) IAdd 63 61

-              65:     56(ptr) AccessChain 15(uout) 16

-                              Store 65 64

-              68:   13(ivec4) Load 67(u4)

-              69:   13(ivec4) Load 67(u4)

-              74: 73(ResType) UMulExtended 68 69

-              75:   13(ivec4) CompositeExtract 74 0

-                              Store 72(u4outLow) 75

-              76:   13(ivec4) CompositeExtract 74 1

-                              Store 71(u4outHi) 76

-              77:   13(ivec4) Load 71(u4outHi)

-              78:   13(ivec4) Load 72(u4outLow)

-              79:   13(ivec4) IAdd 77 78

-              80:   13(ivec4) Load 15(uout)

-              81:   13(ivec4) IAdd 80 79

-                              Store 15(uout) 81

-              84:    7(ivec4) Load 83(i4)

-              85:    7(ivec4) Load 83(i4)

-              90: 89(ResType) SMulExtended 84 85

-              91:    7(ivec4) CompositeExtract 90 0

-                              Store 88(i4outLow) 91

-              92:    7(ivec4) CompositeExtract 90 1

-                              Store 87(i4outHi) 92

-              93:    7(ivec4) Load 88(i4outLow)

-              94:    7(ivec4) Load 87(i4outHi)

-              95:    7(ivec4) IAdd 93 94

-              96:    7(ivec4) Load 9(iout)

-              97:    7(ivec4) IAdd 96 95

-                              Store 9(iout) 97

-             101:   98(fvec3) Load 100(v3)

-             106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101

-             107:  102(ivec3) CompositeExtract 106 1

-                              Store 104(i3out) 107

-             108:   98(fvec3) CompositeExtract 106 0

-             109:   19(fvec4) Load 21(fout)

-             110:   98(fvec3) VectorShuffle 109 109 0 1 2

-             111:   98(fvec3) FAdd 110 108

-             112:   19(fvec4) Load 21(fout)

-             113:   19(fvec4) VectorShuffle 112 111 4 5 6 3

-                              Store 21(fout) 113

-             114:  102(ivec3) Load 104(i3out)

-             115:    7(ivec4) Load 9(iout)

-             116:  102(ivec3) VectorShuffle 115 115 0 1 2

-             117:  102(ivec3) IAdd 116 114

-             118:    7(ivec4) Load 9(iout)

-             119:    7(ivec4) VectorShuffle 118 117 4 5 6 3

-                              Store 9(iout) 119

-             122:   18(float) Load 121(v1)

-             126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122

-             127:      6(int) CompositeExtract 126 1

-                              Store 124(i1out) 127

-             128:   18(float) CompositeExtract 126 0

-             130:    129(ptr) AccessChain 21(fout) 16

-             131:   18(float) Load 130

-             132:   18(float) FAdd 131 128

-             133:    129(ptr) AccessChain 21(fout) 16

-                              Store 133 132

-             134:      6(int) Load 124(i1out)

-             136:    135(ptr) AccessChain 9(iout) 16

-             137:      6(int) Load 136

-             138:      6(int) IAdd 137 134

-             139:    135(ptr) AccessChain 9(iout) 16

-                              Store 139 138

-             143:  140(fvec2) Load 142(v2)

-             147:  144(ivec2) Load 146(i2)

-             148:  140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147

-             149:   19(fvec4) Load 21(fout)

-             150:  140(fvec2) VectorShuffle 149 149 0 1

-             151:  140(fvec2) FAdd 150 148

-             152:   19(fvec4) Load 21(fout)

-             153:   19(fvec4) VectorShuffle 152 151 4 5 2 3

-                              Store 21(fout) 153

-             154:   18(float) Load 121(v1)

-             157:      6(int) Load 156(i1)

-             158:   18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157

-             159:    129(ptr) AccessChain 21(fout) 16

-             160:   18(float) Load 159

-             161:   18(float) FAdd 160 158

-             162:    129(ptr) AccessChain 21(fout) 16

-                              Store 162 161

-             163:      6(int) Load 156(i1)

-             166:      6(int) BitFieldSExtract 163 164 165

-             167:    135(ptr) AccessChain 9(iout) 16

-             168:      6(int) Load 167

-             169:      6(int) IAdd 168 166

-             170:    135(ptr) AccessChain 9(iout) 16

-                              Store 170 169

-             174:  171(ivec3) Load 173(u3)

-             175:  171(ivec3) BitFieldUExtract 174 164 165

-             176:   13(ivec4) Load 15(uout)

-             177:  171(ivec3) VectorShuffle 176 176 0 1 2

-             178:  171(ivec3) IAdd 177 175

-             179:   13(ivec4) Load 15(uout)

-             180:   13(ivec4) VectorShuffle 179 178 4 5 6 3

-                              Store 15(uout) 180

-             183:  102(ivec3) Load 182(i3)

-             184:  102(ivec3) Load 182(i3)

-             185:  102(ivec3) BitFieldInsert 183 184 164 165

-             186:    7(ivec4) Load 9(iout)

-             187:  102(ivec3) VectorShuffle 186 186 0 1 2

-             188:  102(ivec3) IAdd 187 185

-             189:    7(ivec4) Load 9(iout)

-             190:    7(ivec4) VectorShuffle 189 188 4 5 6 3

-                              Store 9(iout) 190

-             191:     12(int) Load 47(u1)

-             192:     12(int) Load 47(u1)

-             193:     12(int) BitFieldInsert 191 192 164 165

-             194:     56(ptr) AccessChain 15(uout) 16

-             195:     12(int) Load 194

-             196:     12(int) IAdd 195 193

-             197:     56(ptr) AccessChain 15(uout) 16

-                              Store 197 196

-             198:  144(ivec2) Load 146(i2)

-             199:  144(ivec2) BitReverse 198

-             200:    7(ivec4) Load 9(iout)

-             201:  144(ivec2) VectorShuffle 200 200 0 1

-             202:  144(ivec2) IAdd 201 199

-             203:    7(ivec4) Load 9(iout)

-             204:    7(ivec4) VectorShuffle 203 202 4 5 2 3

-                              Store 9(iout) 204

-             205:   13(ivec4) Load 67(u4)

-             206:   13(ivec4) BitReverse 205

-             207:   13(ivec4) Load 15(uout)

-             208:   13(ivec4) IAdd 207 206

-                              Store 15(uout) 208

-             209:      6(int) Load 156(i1)

-             210:      6(int) BitCount 209

-             211:    135(ptr) AccessChain 9(iout) 16

-             212:      6(int) Load 211

-             213:      6(int) IAdd 212 210

-             214:    135(ptr) AccessChain 9(iout) 16

-                              Store 214 213

-             215:  171(ivec3) Load 173(u3)

-             216:  102(ivec3) BitCount 215

-             217:    7(ivec4) Load 9(iout)

-             218:  102(ivec3) VectorShuffle 217 217 0 1 2

-             219:  102(ivec3) IAdd 218 216

-             220:    7(ivec4) Load 9(iout)

-             221:    7(ivec4) VectorShuffle 220 219 4 5 6 3

-                              Store 9(iout) 221

-             222:  144(ivec2) Load 146(i2)

-             223:  144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222

-             224:    7(ivec4) Load 9(iout)

-             225:  144(ivec2) VectorShuffle 224 224 0 1

-             226:  144(ivec2) IAdd 225 223

-             227:    7(ivec4) Load 9(iout)

-             228:    7(ivec4) VectorShuffle 227 226 4 5 2 3

-                              Store 9(iout) 228

-             229:   13(ivec4) Load 67(u4)

-             230:    7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229

-             231:    7(ivec4) Load 9(iout)

-             232:    7(ivec4) IAdd 231 230

-                              Store 9(iout) 232

-             233:      6(int) Load 156(i1)

-             234:      6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233

-             235:    135(ptr) AccessChain 9(iout) 16

-             236:      6(int) Load 235

-             237:      6(int) IAdd 236 234

-             238:    135(ptr) AccessChain 9(iout) 16

-                              Store 238 237

-             239:   24(ivec2) Load 26(u2)

-             240:  144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239

-             241:    7(ivec4) Load 9(iout)

-             242:  144(ivec2) VectorShuffle 241 241 0 1

-             243:  144(ivec2) IAdd 242 240

-             244:    7(ivec4) Load 9(iout)

-             245:    7(ivec4) VectorShuffle 244 243 4 5 2 3

-                              Store 9(iout) 245

-             248:   19(fvec4) Load 247(v4)

-             249:     12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248

-             250:     56(ptr) AccessChain 15(uout) 16

-             251:     12(int) Load 250

-             252:     12(int) IAdd 251 249

-             253:     56(ptr) AccessChain 15(uout) 16

-                              Store 253 252

-             254:   19(fvec4) Load 247(v4)

-             255:     12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254

-             256:     56(ptr) AccessChain 15(uout) 16

-             257:     12(int) Load 256

-             258:     12(int) IAdd 257 255

-             259:     56(ptr) AccessChain 15(uout) 16

-                              Store 259 258

-             260:     12(int) Load 47(u1)

-             261:   19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260

-             262:   19(fvec4) Load 21(fout)

-             263:   19(fvec4) FAdd 262 261

-                              Store 21(fout) 263

-             264:     12(int) Load 47(u1)

-             265:   19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264

-             266:   19(fvec4) Load 21(fout)

-             267:   19(fvec4) FAdd 266 265

-                              Store 21(fout) 267

-                              Return

-                              FunctionEnd

+spv.intOps.vert
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 270
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 47 26 173 67 121 142 100 247 156 146 182 83 15 9 21 268 269
+                              Source ESSL 310
+                              Name 4  "main"
+                              Name 9  "iout"
+                              Name 15  "uout"
+                              Name 21  "fout"
+                              Name 26  "u2"
+                              Name 30  "u2out"
+                              Name 31  "ResType"
+                              Name 47  "u1"
+                              Name 51  "u1out"
+                              Name 52  "ResType"
+                              Name 67  "u4"
+                              Name 71  "u4outHi"
+                              Name 72  "u4outLow"
+                              Name 73  "ResType"
+                              Name 83  "i4"
+                              Name 87  "i4outHi"
+                              Name 88  "i4outLow"
+                              Name 89  "ResType"
+                              Name 100  "v3"
+                              Name 104  "i3out"
+                              Name 105  "ResType"
+                              Name 121  "v1"
+                              Name 124  "i1out"
+                              Name 125  "ResType"
+                              Name 142  "v2"
+                              Name 146  "i2"
+                              Name 156  "i1"
+                              Name 173  "u3"
+                              Name 182  "i3"
+                              Name 247  "v4"
+                              Name 268  "gl_VertexID"
+                              Name 269  "gl_InstanceID"
+                              Decorate 268(gl_VertexID) BuiltIn VertexId
+                              Decorate 269(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeVector 6(int) 4
+               8:             TypePointer Output 7(ivec4)
+         9(iout):      8(ptr) Variable Output
+              10:      6(int) Constant 0
+              11:    7(ivec4) ConstantComposite 10 10 10 10
+              12:             TypeInt 32 0
+              13:             TypeVector 12(int) 4
+              14:             TypePointer Output 13(ivec4)
+        15(uout):     14(ptr) Variable Output
+              16:     12(int) Constant 0
+              17:   13(ivec4) ConstantComposite 16 16 16 16
+              18:             TypeFloat 32
+              19:             TypeVector 18(float) 4
+              20:             TypePointer Output 19(fvec4)
+        21(fout):     20(ptr) Variable Output
+              22:   18(float) Constant 0
+              23:   19(fvec4) ConstantComposite 22 22 22 22
+              24:             TypeVector 12(int) 2
+              25:             TypePointer Input 24(ivec2)
+          26(u2):     25(ptr) Variable Input
+              29:             TypePointer Function 24(ivec2)
+     31(ResType):             TypeStruct 24(ivec2) 24(ivec2)
+              46:             TypePointer Input 12(int)
+          47(u1):     46(ptr) Variable Input
+              50:             TypePointer Function 12(int)
+     52(ResType):             TypeStruct 12(int) 12(int)
+              56:             TypePointer Output 12(int)
+              66:             TypePointer Input 13(ivec4)
+          67(u4):     66(ptr) Variable Input
+              70:             TypePointer Function 13(ivec4)
+     73(ResType):             TypeStruct 13(ivec4) 13(ivec4)
+              82:             TypePointer Input 7(ivec4)
+          83(i4):     82(ptr) Variable Input
+              86:             TypePointer Function 7(ivec4)
+     89(ResType):             TypeStruct 7(ivec4) 7(ivec4)
+              98:             TypeVector 18(float) 3
+              99:             TypePointer Input 98(fvec3)
+         100(v3):     99(ptr) Variable Input
+             102:             TypeVector 6(int) 3
+             103:             TypePointer Function 102(ivec3)
+    105(ResType):             TypeStruct 98(fvec3) 102(ivec3)
+             120:             TypePointer Input 18(float)
+         121(v1):    120(ptr) Variable Input
+             123:             TypePointer Function 6(int)
+    125(ResType):             TypeStruct 18(float) 6(int)
+             129:             TypePointer Output 18(float)
+             135:             TypePointer Output 6(int)
+             140:             TypeVector 18(float) 2
+             141:             TypePointer Input 140(fvec2)
+         142(v2):    141(ptr) Variable Input
+             144:             TypeVector 6(int) 2
+             145:             TypePointer Input 144(ivec2)
+         146(i2):    145(ptr) Variable Input
+             155:             TypePointer Input 6(int)
+         156(i1):    155(ptr) Variable Input
+             164:      6(int) Constant 4
+             165:      6(int) Constant 5
+             171:             TypeVector 12(int) 3
+             172:             TypePointer Input 171(ivec3)
+         173(u3):    172(ptr) Variable Input
+             181:             TypePointer Input 102(ivec3)
+         182(i3):    181(ptr) Variable Input
+             246:             TypePointer Input 19(fvec4)
+         247(v4):    246(ptr) Variable Input
+268(gl_VertexID):    155(ptr) Variable Input
+269(gl_InstanceID):    155(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+       30(u2out):     29(ptr) Variable Function
+       51(u1out):     50(ptr) Variable Function
+     71(u4outHi):     70(ptr) Variable Function
+    72(u4outLow):     70(ptr) Variable Function
+     87(i4outHi):     86(ptr) Variable Function
+    88(i4outLow):     86(ptr) Variable Function
+      104(i3out):    103(ptr) Variable Function
+      124(i1out):    123(ptr) Variable Function
+                              Store 9(iout) 11
+                              Store 15(uout) 17
+                              Store 21(fout) 23
+              27:   24(ivec2) Load 26(u2)
+              28:   24(ivec2) Load 26(u2)
+              32: 31(ResType) IAddCarry 27 28
+              33:   24(ivec2) CompositeExtract 32 1
+                              Store 30(u2out) 33
+              34:   24(ivec2) CompositeExtract 32 0
+              35:   13(ivec4) Load 15(uout)
+              36:   24(ivec2) VectorShuffle 35 35 0 1
+              37:   24(ivec2) IAdd 36 34
+              38:   13(ivec4) Load 15(uout)
+              39:   13(ivec4) VectorShuffle 38 37 4 5 2 3
+                              Store 15(uout) 39
+              40:   24(ivec2) Load 30(u2out)
+              41:   13(ivec4) Load 15(uout)
+              42:   24(ivec2) VectorShuffle 41 41 0 1
+              43:   24(ivec2) IAdd 42 40
+              44:   13(ivec4) Load 15(uout)
+              45:   13(ivec4) VectorShuffle 44 43 4 5 2 3
+                              Store 15(uout) 45
+              48:     12(int) Load 47(u1)
+              49:     12(int) Load 47(u1)
+              53: 52(ResType) ISubBorrow 48 49
+              54:     12(int) CompositeExtract 53 1
+                              Store 51(u1out) 54
+              55:     12(int) CompositeExtract 53 0
+              57:     56(ptr) AccessChain 15(uout) 16
+              58:     12(int) Load 57
+              59:     12(int) IAdd 58 55
+              60:     56(ptr) AccessChain 15(uout) 16
+                              Store 60 59
+              61:     12(int) Load 51(u1out)
+              62:     56(ptr) AccessChain 15(uout) 16
+              63:     12(int) Load 62
+              64:     12(int) IAdd 63 61
+              65:     56(ptr) AccessChain 15(uout) 16
+                              Store 65 64
+              68:   13(ivec4) Load 67(u4)
+              69:   13(ivec4) Load 67(u4)
+              74: 73(ResType) UMulExtended 68 69
+              75:   13(ivec4) CompositeExtract 74 0
+                              Store 72(u4outLow) 75
+              76:   13(ivec4) CompositeExtract 74 1
+                              Store 71(u4outHi) 76
+              77:   13(ivec4) Load 71(u4outHi)
+              78:   13(ivec4) Load 72(u4outLow)
+              79:   13(ivec4) IAdd 77 78
+              80:   13(ivec4) Load 15(uout)
+              81:   13(ivec4) IAdd 80 79
+                              Store 15(uout) 81
+              84:    7(ivec4) Load 83(i4)
+              85:    7(ivec4) Load 83(i4)
+              90: 89(ResType) SMulExtended 84 85
+              91:    7(ivec4) CompositeExtract 90 0
+                              Store 88(i4outLow) 91
+              92:    7(ivec4) CompositeExtract 90 1
+                              Store 87(i4outHi) 92
+              93:    7(ivec4) Load 88(i4outLow)
+              94:    7(ivec4) Load 87(i4outHi)
+              95:    7(ivec4) IAdd 93 94
+              96:    7(ivec4) Load 9(iout)
+              97:    7(ivec4) IAdd 96 95
+                              Store 9(iout) 97
+             101:   98(fvec3) Load 100(v3)
+             106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101
+             107:  102(ivec3) CompositeExtract 106 1
+                              Store 104(i3out) 107
+             108:   98(fvec3) CompositeExtract 106 0
+             109:   19(fvec4) Load 21(fout)
+             110:   98(fvec3) VectorShuffle 109 109 0 1 2
+             111:   98(fvec3) FAdd 110 108
+             112:   19(fvec4) Load 21(fout)
+             113:   19(fvec4) VectorShuffle 112 111 4 5 6 3
+                              Store 21(fout) 113
+             114:  102(ivec3) Load 104(i3out)
+             115:    7(ivec4) Load 9(iout)
+             116:  102(ivec3) VectorShuffle 115 115 0 1 2
+             117:  102(ivec3) IAdd 116 114
+             118:    7(ivec4) Load 9(iout)
+             119:    7(ivec4) VectorShuffle 118 117 4 5 6 3
+                              Store 9(iout) 119
+             122:   18(float) Load 121(v1)
+             126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122
+             127:      6(int) CompositeExtract 126 1
+                              Store 124(i1out) 127
+             128:   18(float) CompositeExtract 126 0
+             130:    129(ptr) AccessChain 21(fout) 16
+             131:   18(float) Load 130
+             132:   18(float) FAdd 131 128
+             133:    129(ptr) AccessChain 21(fout) 16
+                              Store 133 132
+             134:      6(int) Load 124(i1out)
+             136:    135(ptr) AccessChain 9(iout) 16
+             137:      6(int) Load 136
+             138:      6(int) IAdd 137 134
+             139:    135(ptr) AccessChain 9(iout) 16
+                              Store 139 138
+             143:  140(fvec2) Load 142(v2)
+             147:  144(ivec2) Load 146(i2)
+             148:  140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
+             149:   19(fvec4) Load 21(fout)
+             150:  140(fvec2) VectorShuffle 149 149 0 1
+             151:  140(fvec2) FAdd 150 148
+             152:   19(fvec4) Load 21(fout)
+             153:   19(fvec4) VectorShuffle 152 151 4 5 2 3
+                              Store 21(fout) 153
+             154:   18(float) Load 121(v1)
+             157:      6(int) Load 156(i1)
+             158:   18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
+             159:    129(ptr) AccessChain 21(fout) 16
+             160:   18(float) Load 159
+             161:   18(float) FAdd 160 158
+             162:    129(ptr) AccessChain 21(fout) 16
+                              Store 162 161
+             163:      6(int) Load 156(i1)
+             166:      6(int) BitFieldSExtract 163 164 165
+             167:    135(ptr) AccessChain 9(iout) 16
+             168:      6(int) Load 167
+             169:      6(int) IAdd 168 166
+             170:    135(ptr) AccessChain 9(iout) 16
+                              Store 170 169
+             174:  171(ivec3) Load 173(u3)
+             175:  171(ivec3) BitFieldUExtract 174 164 165
+             176:   13(ivec4) Load 15(uout)
+             177:  171(ivec3) VectorShuffle 176 176 0 1 2
+             178:  171(ivec3) IAdd 177 175
+             179:   13(ivec4) Load 15(uout)
+             180:   13(ivec4) VectorShuffle 179 178 4 5 6 3
+                              Store 15(uout) 180
+             183:  102(ivec3) Load 182(i3)
+             184:  102(ivec3) Load 182(i3)
+             185:  102(ivec3) BitFieldInsert 183 184 164 165
+             186:    7(ivec4) Load 9(iout)
+             187:  102(ivec3) VectorShuffle 186 186 0 1 2
+             188:  102(ivec3) IAdd 187 185
+             189:    7(ivec4) Load 9(iout)
+             190:    7(ivec4) VectorShuffle 189 188 4 5 6 3
+                              Store 9(iout) 190
+             191:     12(int) Load 47(u1)
+             192:     12(int) Load 47(u1)
+             193:     12(int) BitFieldInsert 191 192 164 165
+             194:     56(ptr) AccessChain 15(uout) 16
+             195:     12(int) Load 194
+             196:     12(int) IAdd 195 193
+             197:     56(ptr) AccessChain 15(uout) 16
+                              Store 197 196
+             198:  144(ivec2) Load 146(i2)
+             199:  144(ivec2) BitReverse 198
+             200:    7(ivec4) Load 9(iout)
+             201:  144(ivec2) VectorShuffle 200 200 0 1
+             202:  144(ivec2) IAdd 201 199
+             203:    7(ivec4) Load 9(iout)
+             204:    7(ivec4) VectorShuffle 203 202 4 5 2 3
+                              Store 9(iout) 204
+             205:   13(ivec4) Load 67(u4)
+             206:   13(ivec4) BitReverse 205
+             207:   13(ivec4) Load 15(uout)
+             208:   13(ivec4) IAdd 207 206
+                              Store 15(uout) 208
+             209:      6(int) Load 156(i1)
+             210:      6(int) BitCount 209
+             211:    135(ptr) AccessChain 9(iout) 16
+             212:      6(int) Load 211
+             213:      6(int) IAdd 212 210
+             214:    135(ptr) AccessChain 9(iout) 16
+                              Store 214 213
+             215:  171(ivec3) Load 173(u3)
+             216:  102(ivec3) BitCount 215
+             217:    7(ivec4) Load 9(iout)
+             218:  102(ivec3) VectorShuffle 217 217 0 1 2
+             219:  102(ivec3) IAdd 218 216
+             220:    7(ivec4) Load 9(iout)
+             221:    7(ivec4) VectorShuffle 220 219 4 5 6 3
+                              Store 9(iout) 221
+             222:  144(ivec2) Load 146(i2)
+             223:  144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
+             224:    7(ivec4) Load 9(iout)
+             225:  144(ivec2) VectorShuffle 224 224 0 1
+             226:  144(ivec2) IAdd 225 223
+             227:    7(ivec4) Load 9(iout)
+             228:    7(ivec4) VectorShuffle 227 226 4 5 2 3
+                              Store 9(iout) 228
+             229:   13(ivec4) Load 67(u4)
+             230:    7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
+             231:    7(ivec4) Load 9(iout)
+             232:    7(ivec4) IAdd 231 230
+                              Store 9(iout) 232
+             233:      6(int) Load 156(i1)
+             234:      6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
+             235:    135(ptr) AccessChain 9(iout) 16
+             236:      6(int) Load 235
+             237:      6(int) IAdd 236 234
+             238:    135(ptr) AccessChain 9(iout) 16
+                              Store 238 237
+             239:   24(ivec2) Load 26(u2)
+             240:  144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
+             241:    7(ivec4) Load 9(iout)
+             242:  144(ivec2) VectorShuffle 241 241 0 1
+             243:  144(ivec2) IAdd 242 240
+             244:    7(ivec4) Load 9(iout)
+             245:    7(ivec4) VectorShuffle 244 243 4 5 2 3
+                              Store 9(iout) 245
+             248:   19(fvec4) Load 247(v4)
+             249:     12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
+             250:     56(ptr) AccessChain 15(uout) 16
+             251:     12(int) Load 250
+             252:     12(int) IAdd 251 249
+             253:     56(ptr) AccessChain 15(uout) 16
+                              Store 253 252
+             254:   19(fvec4) Load 247(v4)
+             255:     12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
+             256:     56(ptr) AccessChain 15(uout) 16
+             257:     12(int) Load 256
+             258:     12(int) IAdd 257 255
+             259:     56(ptr) AccessChain 15(uout) 16
+                              Store 259 258
+             260:     12(int) Load 47(u1)
+             261:   19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
+             262:   19(fvec4) Load 21(fout)
+             263:   19(fvec4) FAdd 262 261
+                              Store 21(fout) 263
+             264:     12(int) Load 47(u1)
+             265:   19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
+             266:   19(fvec4) Load 21(fout)
+             267:   19(fvec4) FAdd 266 265
+                              Store 21(fout) 267
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out
index d23891b..ef701f0 100644
--- a/Test/baseResults/spv.interpOps.frag.out
+++ b/Test/baseResults/spv.interpOps.frag.out
@@ -1,141 +1,141 @@
-spv.interpOps.frag

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 101

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 13 24 33 41 99

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 450

-                              Name 4  "main"

-                              Name 9  "f4"

-                              Name 13  "if1"

-                              Name 24  "if2"

-                              Name 33  "if3"

-                              Name 41  "if4"

-                              Name 47  "samp"

-                              Name 73  "offset"

-                              Name 99  "fragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:    6(float) Constant 0

-              11:    7(fvec4) ConstantComposite 10 10 10 10

-              12:             TypePointer Input 6(float)

-         13(if1):     12(ptr) Variable Input

-              15:             TypeInt 32 0

-              16:     15(int) Constant 0

-              17:             TypePointer Function 6(float)

-              22:             TypeVector 6(float) 2

-              23:             TypePointer Input 22(fvec2)

-         24(if2):     23(ptr) Variable Input

-              31:             TypeVector 6(float) 3

-              32:             TypePointer Input 31(fvec3)

-         33(if3):     32(ptr) Variable Input

-              40:             TypePointer Input 7(fvec4)

-         41(if4):     40(ptr) Variable Input

-              45:             TypeInt 32 1

-              46:             TypePointer UniformConstant 45(int)

-        47(samp):     46(ptr) Variable UniformConstant

-              72:             TypePointer UniformConstant 22(fvec2)

-      73(offset):     72(ptr) Variable UniformConstant

-              98:             TypePointer Output 7(fvec4)

-   99(fragColor):     98(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-           9(f4):      8(ptr) Variable Function

-                              Store 9(f4) 11

-              14:    6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1)

-              18:     17(ptr) AccessChain 9(f4) 16

-              19:    6(float) Load 18

-              20:    6(float) FAdd 19 14

-              21:     17(ptr) AccessChain 9(f4) 16

-                              Store 21 20

-              25:   22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2)

-              26:    7(fvec4) Load 9(f4)

-              27:   22(fvec2) VectorShuffle 26 26 0 1

-              28:   22(fvec2) FAdd 27 25

-              29:    7(fvec4) Load 9(f4)

-              30:    7(fvec4) VectorShuffle 29 28 4 5 2 3

-                              Store 9(f4) 30

-              34:   31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3)

-              35:    7(fvec4) Load 9(f4)

-              36:   31(fvec3) VectorShuffle 35 35 0 1 2

-              37:   31(fvec3) FAdd 36 34

-              38:    7(fvec4) Load 9(f4)

-              39:    7(fvec4) VectorShuffle 38 37 4 5 6 3

-                              Store 9(f4) 39

-              42:    7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4)

-              43:    7(fvec4) Load 9(f4)

-              44:    7(fvec4) FAdd 43 42

-                              Store 9(f4) 44

-              48:     45(int) Load 47(samp)

-              49:    6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48

-              50:     17(ptr) AccessChain 9(f4) 16

-              51:    6(float) Load 50

-              52:    6(float) FAdd 51 49

-              53:     17(ptr) AccessChain 9(f4) 16

-                              Store 53 52

-              54:     45(int) Load 47(samp)

-              55:   22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54

-              56:    7(fvec4) Load 9(f4)

-              57:   22(fvec2) VectorShuffle 56 56 0 1

-              58:   22(fvec2) FAdd 57 55

-              59:    7(fvec4) Load 9(f4)

-              60:    7(fvec4) VectorShuffle 59 58 4 5 2 3

-                              Store 9(f4) 60

-              61:     45(int) Load 47(samp)

-              62:   31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61

-              63:    7(fvec4) Load 9(f4)

-              64:   31(fvec3) VectorShuffle 63 63 0 1 2

-              65:   31(fvec3) FAdd 64 62

-              66:    7(fvec4) Load 9(f4)

-              67:    7(fvec4) VectorShuffle 66 65 4 5 6 3

-                              Store 9(f4) 67

-              68:     45(int) Load 47(samp)

-              69:    7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68

-              70:    7(fvec4) Load 9(f4)

-              71:    7(fvec4) FAdd 70 69

-                              Store 9(f4) 71

-              74:   22(fvec2) Load 73(offset)

-              75:    6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 74

-              76:     17(ptr) AccessChain 9(f4) 16

-              77:    6(float) Load 76

-              78:    6(float) FAdd 77 75

-              79:     17(ptr) AccessChain 9(f4) 16

-                              Store 79 78

-              80:   22(fvec2) Load 73(offset)

-              81:   22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 80

-              82:    7(fvec4) Load 9(f4)

-              83:   22(fvec2) VectorShuffle 82 82 0 1

-              84:   22(fvec2) FAdd 83 81

-              85:    7(fvec4) Load 9(f4)

-              86:    7(fvec4) VectorShuffle 85 84 4 5 2 3

-                              Store 9(f4) 86

-              87:   22(fvec2) Load 73(offset)

-              88:   31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 87

-              89:    7(fvec4) Load 9(f4)

-              90:   31(fvec3) VectorShuffle 89 89 0 1 2

-              91:   31(fvec3) FAdd 90 88

-              92:    7(fvec4) Load 9(f4)

-              93:    7(fvec4) VectorShuffle 92 91 4 5 6 3

-                              Store 9(f4) 93

-              94:   22(fvec2) Load 73(offset)

-              95:    7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 94

-              96:    7(fvec4) Load 9(f4)

-              97:    7(fvec4) FAdd 96 95

-                              Store 9(f4) 97

-             100:    7(fvec4) Load 9(f4)

-                              Store 99(fragColor) 100

-                              Return

-                              FunctionEnd

+spv.interpOps.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 101
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 24 33 41 99
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 9  "f4"
+                              Name 13  "if1"
+                              Name 24  "if2"
+                              Name 33  "if3"
+                              Name 41  "if4"
+                              Name 47  "samp"
+                              Name 73  "offset"
+                              Name 99  "fragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:    6(float) Constant 0
+              11:    7(fvec4) ConstantComposite 10 10 10 10
+              12:             TypePointer Input 6(float)
+         13(if1):     12(ptr) Variable Input
+              15:             TypeInt 32 0
+              16:     15(int) Constant 0
+              17:             TypePointer Function 6(float)
+              22:             TypeVector 6(float) 2
+              23:             TypePointer Input 22(fvec2)
+         24(if2):     23(ptr) Variable Input
+              31:             TypeVector 6(float) 3
+              32:             TypePointer Input 31(fvec3)
+         33(if3):     32(ptr) Variable Input
+              40:             TypePointer Input 7(fvec4)
+         41(if4):     40(ptr) Variable Input
+              45:             TypeInt 32 1
+              46:             TypePointer UniformConstant 45(int)
+        47(samp):     46(ptr) Variable UniformConstant
+              72:             TypePointer UniformConstant 22(fvec2)
+      73(offset):     72(ptr) Variable UniformConstant
+              98:             TypePointer Output 7(fvec4)
+   99(fragColor):     98(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+           9(f4):      8(ptr) Variable Function
+                              Store 9(f4) 11
+              14:    6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1)
+              18:     17(ptr) AccessChain 9(f4) 16
+              19:    6(float) Load 18
+              20:    6(float) FAdd 19 14
+              21:     17(ptr) AccessChain 9(f4) 16
+                              Store 21 20
+              25:   22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2)
+              26:    7(fvec4) Load 9(f4)
+              27:   22(fvec2) VectorShuffle 26 26 0 1
+              28:   22(fvec2) FAdd 27 25
+              29:    7(fvec4) Load 9(f4)
+              30:    7(fvec4) VectorShuffle 29 28 4 5 2 3
+                              Store 9(f4) 30
+              34:   31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3)
+              35:    7(fvec4) Load 9(f4)
+              36:   31(fvec3) VectorShuffle 35 35 0 1 2
+              37:   31(fvec3) FAdd 36 34
+              38:    7(fvec4) Load 9(f4)
+              39:    7(fvec4) VectorShuffle 38 37 4 5 6 3
+                              Store 9(f4) 39
+              42:    7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4)
+              43:    7(fvec4) Load 9(f4)
+              44:    7(fvec4) FAdd 43 42
+                              Store 9(f4) 44
+              48:     45(int) Load 47(samp)
+              49:    6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48
+              50:     17(ptr) AccessChain 9(f4) 16
+              51:    6(float) Load 50
+              52:    6(float) FAdd 51 49
+              53:     17(ptr) AccessChain 9(f4) 16
+                              Store 53 52
+              54:     45(int) Load 47(samp)
+              55:   22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54
+              56:    7(fvec4) Load 9(f4)
+              57:   22(fvec2) VectorShuffle 56 56 0 1
+              58:   22(fvec2) FAdd 57 55
+              59:    7(fvec4) Load 9(f4)
+              60:    7(fvec4) VectorShuffle 59 58 4 5 2 3
+                              Store 9(f4) 60
+              61:     45(int) Load 47(samp)
+              62:   31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61
+              63:    7(fvec4) Load 9(f4)
+              64:   31(fvec3) VectorShuffle 63 63 0 1 2
+              65:   31(fvec3) FAdd 64 62
+              66:    7(fvec4) Load 9(f4)
+              67:    7(fvec4) VectorShuffle 66 65 4 5 6 3
+                              Store 9(f4) 67
+              68:     45(int) Load 47(samp)
+              69:    7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68
+              70:    7(fvec4) Load 9(f4)
+              71:    7(fvec4) FAdd 70 69
+                              Store 9(f4) 71
+              74:   22(fvec2) Load 73(offset)
+              75:    6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 74
+              76:     17(ptr) AccessChain 9(f4) 16
+              77:    6(float) Load 76
+              78:    6(float) FAdd 77 75
+              79:     17(ptr) AccessChain 9(f4) 16
+                              Store 79 78
+              80:   22(fvec2) Load 73(offset)
+              81:   22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 80
+              82:    7(fvec4) Load 9(f4)
+              83:   22(fvec2) VectorShuffle 82 82 0 1
+              84:   22(fvec2) FAdd 83 81
+              85:    7(fvec4) Load 9(f4)
+              86:    7(fvec4) VectorShuffle 85 84 4 5 2 3
+                              Store 9(f4) 86
+              87:   22(fvec2) Load 73(offset)
+              88:   31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 87
+              89:    7(fvec4) Load 9(f4)
+              90:   31(fvec3) VectorShuffle 89 89 0 1 2
+              91:   31(fvec3) FAdd 90 88
+              92:    7(fvec4) Load 9(f4)
+              93:    7(fvec4) VectorShuffle 92 91 4 5 6 3
+                              Store 9(f4) 93
+              94:   22(fvec2) Load 73(offset)
+              95:    7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 94
+              96:    7(fvec4) Load 9(f4)
+              97:    7(fvec4) FAdd 96 95
+                              Store 9(f4) 97
+             100:    7(fvec4) Load 9(f4)
+                              Store 99(fragColor) 100
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out
index af6d3fe..da5c122 100755
--- a/Test/baseResults/spv.length.frag.out
+++ b/Test/baseResults/spv.length.frag.out
@@ -1,55 +1,55 @@
-spv.length.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 33

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 14

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 120

-                              Name 4  "main"

-                              Name 9  "t"

-                              Name 14  "v"

-                              Name 26  "gl_FragColor"

-                              Name 32  "u"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 2

-               8:             TypePointer Function 7(fvec2)

-              10:             TypeInt 32 0

-              11:     10(int) Constant 2

-              12:             TypeArray 7(fvec2) 11

-              13:             TypePointer Input 12

-           14(v):     13(ptr) Variable Input

-              15:             TypeInt 32 1

-              16:     15(int) Constant 0

-              17:             TypePointer Input 7(fvec2)

-              20:     15(int) Constant 1

-              24:             TypeVector 6(float) 4

-              25:             TypePointer Output 24(fvec4)

-26(gl_FragColor):     25(ptr) Variable Output

-              27:    6(float) Constant 1106247680

-              28:   24(fvec4) ConstantComposite 27 27 27 27

-              29:     10(int) Constant 3

-              30:             TypeArray 24(fvec4) 29

-              31:             TypePointer UniformConstant 30

-           32(u):     31(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-            9(t):      8(ptr) Variable Function

-              18:     17(ptr) AccessChain 14(v) 16

-              19:    7(fvec2) Load 18

-              21:     17(ptr) AccessChain 14(v) 20

-              22:    7(fvec2) Load 21

-              23:    7(fvec2) FAdd 19 22

-                              Store 9(t) 23

-                              Store 26(gl_FragColor) 28

-                              Return

-                              FunctionEnd

+spv.length.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 33
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 14
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 120
+                              Name 4  "main"
+                              Name 9  "t"
+                              Name 14  "v"
+                              Name 26  "gl_FragColor"
+                              Name 32  "u"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 2
+               8:             TypePointer Function 7(fvec2)
+              10:             TypeInt 32 0
+              11:     10(int) Constant 2
+              12:             TypeArray 7(fvec2) 11
+              13:             TypePointer Input 12
+           14(v):     13(ptr) Variable Input
+              15:             TypeInt 32 1
+              16:     15(int) Constant 0
+              17:             TypePointer Input 7(fvec2)
+              20:     15(int) Constant 1
+              24:             TypeVector 6(float) 4
+              25:             TypePointer Output 24(fvec4)
+26(gl_FragColor):     25(ptr) Variable Output
+              27:    6(float) Constant 1106247680
+              28:   24(fvec4) ConstantComposite 27 27 27 27
+              29:     10(int) Constant 3
+              30:             TypeArray 24(fvec4) 29
+              31:             TypePointer UniformConstant 30
+           32(u):     31(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+            9(t):      8(ptr) Variable Function
+              18:     17(ptr) AccessChain 14(v) 16
+              19:    7(fvec2) Load 18
+              21:     17(ptr) AccessChain 14(v) 20
+              22:    7(fvec2) Load 21
+              23:    7(fvec2) FAdd 19 22
+                              Store 9(t) 23
+                              Store 26(gl_FragColor) 28
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out
index 721b5a8..5fafd41 100755
--- a/Test/baseResults/spv.localAggregates.frag.out
+++ b/Test/baseResults/spv.localAggregates.frag.out
@@ -1,215 +1,215 @@
-spv.localAggregates.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:5: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 136

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 40 96

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "s1"

-                              MemberName 8(s1) 0  "i"

-                              MemberName 8(s1) 1  "f"

-                              Name 10  "s2"

-                              MemberName 10(s2) 0  "i"

-                              MemberName 10(s2) 1  "f"

-                              MemberName 10(s2) 2  "s1_1"

-                              MemberName 10(s2) 3  "bleh"

-                              Name 12  "locals2"

-                              Name 13  "s3"

-                              MemberName 13(s3) 0  "s2_1"

-                              MemberName 13(s3) 1  "i"

-                              MemberName 13(s3) 2  "f"

-                              MemberName 13(s3) 3  "s1_1"

-                              Name 15  "foo3"

-                              Name 36  "localFArray"

-                              Name 40  "coord"

-                              Name 49  "localIArray"

-                              Name 68  "x"

-                              Name 70  "localArray"

-                              Name 75  "i"

-                              Name 82  "a"

-                              Name 88  "condition"

-                              Name 96  "color"

-                              Name 106  "gl_FragColor"

-                              Name 126  "samp2D"

-                              Name 132  "foo"

-                              Name 133  "foo2"

-                              Name 135  "uFloatArray"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypeFloat 32

-           8(s1):             TypeStruct 6(int) 7(float)

-               9:             TypeVector 7(float) 4

-          10(s2):             TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)

-              11:             TypePointer Function 10(s2)

-          13(s3):             TypeStruct 10(s2) 6(int) 7(float) 8(s1)

-              14:             TypePointer UniformConstant 13(s3)

-        15(foo3):     14(ptr) Variable UniformConstant

-              16:      6(int) Constant 0

-              17:             TypePointer UniformConstant 10(s2)

-              20:             TypePointer UniformConstant 6(int)

-              23:             TypeBool

-              27:      6(int) Constant 2

-              28:      6(int) Constant 1

-              29:    7(float) Constant 1065353216

-              30:             TypePointer Function 7(float)

-              32:             TypeInt 32 0

-              33:     32(int) Constant 16

-              34:             TypeArray 7(float) 33

-              35:             TypePointer Function 34

-              37:      6(int) Constant 4

-              38:             TypeVector 7(float) 2

-              39:             TypePointer Input 38(fvec2)

-       40(coord):     39(ptr) Variable Input

-              41:     32(int) Constant 0

-              42:             TypePointer Input 7(float)

-              46:     32(int) Constant 8

-              47:             TypeArray 6(int) 46

-              48:             TypePointer Function 47

-              52:             TypePointer Function 6(int)

-              69:      6(int) Constant 5

-              80:      6(int) Constant 16

-              84:    7(float) Constant 0

-   88(condition):     20(ptr) Variable UniformConstant

-              94:      6(int) Constant 3

-              95:             TypePointer Input 9(fvec4)

-       96(color):     95(ptr) Variable Input

-              98:             TypePointer Function 9(fvec4)

-             100:     32(int) Constant 1

-             103:     32(int) Constant 2

-             105:             TypePointer Output 9(fvec4)

-106(gl_FragColor):    105(ptr) Variable Output

-             123:             TypeImage 7(float) 2D sampled format:Unknown

-             124:             TypeSampledImage 123

-             125:             TypePointer UniformConstant 124

-     126(samp2D):    125(ptr) Variable UniformConstant

-             131:             TypePointer UniformConstant 8(s1)

-        132(foo):    131(ptr) Variable UniformConstant

-       133(foo2):     17(ptr) Variable UniformConstant

-             134:             TypePointer UniformConstant 34

-135(uFloatArray):    134(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-     12(locals2):     11(ptr) Variable Function

- 36(localFArray):     35(ptr) Variable Function

- 49(localIArray):     48(ptr) Variable Function

-           68(x):     52(ptr) Variable Function

-  70(localArray):     35(ptr) Variable Function

-           75(i):     52(ptr) Variable Function

-           82(a):     35(ptr) Variable Function

-              18:     17(ptr) AccessChain 15(foo3) 16

-              19:      10(s2) Load 18

-                              Store 12(locals2) 19

-              21:     20(ptr) AccessChain 15(foo3) 16 16

-              22:      6(int) Load 21

-              24:    23(bool) SGreaterThan 22 16

-                              SelectionMerge 26 None

-                              BranchConditional 24 25 54

-              25:               Label

-              31:     30(ptr)   AccessChain 12(locals2) 27 28

-                                Store 31 29

-              43:     42(ptr)   AccessChain 40(coord) 41

-              44:    7(float)   Load 43

-              45:     30(ptr)   AccessChain 36(localFArray) 37

-                                Store 45 44

-              50:     20(ptr)   AccessChain 15(foo3) 16 16

-              51:      6(int)   Load 50

-              53:     52(ptr)   AccessChain 49(localIArray) 27

-                                Store 53 51

-                                Branch 26

-              54:               Label

-              55:     42(ptr)   AccessChain 40(coord) 41

-              56:    7(float)   Load 55

-              57:     30(ptr)   AccessChain 12(locals2) 27 28

-                                Store 57 56

-              58:     30(ptr)   AccessChain 36(localFArray) 37

-                                Store 58 29

-              59:     52(ptr)   AccessChain 49(localIArray) 27

-                                Store 59 16

-                                Branch 26

-              26:             Label

-              60:     52(ptr) AccessChain 49(localIArray) 27

-              61:      6(int) Load 60

-              62:    23(bool) IEqual 61 16

-                              SelectionMerge 64 None

-                              BranchConditional 62 63 64

-              63:               Label

-              65:     30(ptr)   AccessChain 36(localFArray) 37

-              66:    7(float)   Load 65

-              67:    7(float)   FAdd 66 29

-                                Store 65 67

-                                Branch 64

-              64:             Label

-                              Store 68(x) 69

-              71:      6(int) Load 68(x)

-              72:     42(ptr) AccessChain 40(coord) 41

-              73:    7(float) Load 72

-              74:     30(ptr) AccessChain 70(localArray) 71

-                              Store 74 73

-                              Store 75(i) 16

-                              Branch 76

-              76:             Label

-              79:      6(int) Load 75(i)

-              81:    23(bool) SLessThan 79 80

-                              LoopMerge 77 76 None

-                              BranchConditional 81 78 77

-              78:               Label

-              83:      6(int)   Load 75(i)

-              85:     30(ptr)   AccessChain 82(a) 83

-                                Store 85 84

-              86:      6(int)   Load 75(i)

-              87:      6(int)   IAdd 86 28

-                                Store 75(i) 87

-                                Branch 76

-              77:             Label

-              89:      6(int) Load 88(condition)

-              90:    23(bool) IEqual 89 28

-                              SelectionMerge 92 None

-                              BranchConditional 90 91 92

-              91:               Label

-              93:          34   Load 70(localArray)

-                                Store 82(a) 93

-                                Branch 92

-              92:             Label

-              97:    9(fvec4) Load 96(color)

-              99:     98(ptr) AccessChain 12(locals2) 94

-                              Store 99 97

-             101:     42(ptr) AccessChain 40(coord) 100

-             102:    7(float) Load 101

-             104:     30(ptr) AccessChain 12(locals2) 94 103

-                              Store 104 102

-             107:     98(ptr) AccessChain 12(locals2) 94

-             108:    9(fvec4) Load 107

-             109:     30(ptr) AccessChain 36(localFArray) 37

-             110:    7(float) Load 109

-             111:     30(ptr) AccessChain 12(locals2) 27 28

-             112:    7(float) Load 111

-             113:    7(float) FAdd 110 112

-             114:      6(int) Load 68(x)

-             115:     30(ptr) AccessChain 70(localArray) 114

-             116:    7(float) Load 115

-             117:    7(float) FAdd 113 116

-             118:      6(int) Load 68(x)

-             119:     30(ptr) AccessChain 82(a) 118

-             120:    7(float) Load 119

-             121:    7(float) FAdd 117 120

-             122:    9(fvec4) VectorTimesScalar 108 121

-             127:         124 Load 126(samp2D)

-             128:   38(fvec2) Load 40(coord)

-             129:    9(fvec4) ImageSampleImplicitLod 127 128

-             130:    9(fvec4) FMul 122 129

-                              Store 106(gl_FragColor) 130

-                              Return

-                              FunctionEnd

+spv.localAggregates.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:5: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 136
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 40 96
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "s1"
+                              MemberName 8(s1) 0  "i"
+                              MemberName 8(s1) 1  "f"
+                              Name 10  "s2"
+                              MemberName 10(s2) 0  "i"
+                              MemberName 10(s2) 1  "f"
+                              MemberName 10(s2) 2  "s1_1"
+                              MemberName 10(s2) 3  "bleh"
+                              Name 12  "locals2"
+                              Name 13  "s3"
+                              MemberName 13(s3) 0  "s2_1"
+                              MemberName 13(s3) 1  "i"
+                              MemberName 13(s3) 2  "f"
+                              MemberName 13(s3) 3  "s1_1"
+                              Name 15  "foo3"
+                              Name 36  "localFArray"
+                              Name 40  "coord"
+                              Name 49  "localIArray"
+                              Name 68  "x"
+                              Name 70  "localArray"
+                              Name 75  "i"
+                              Name 82  "a"
+                              Name 88  "condition"
+                              Name 96  "color"
+                              Name 106  "gl_FragColor"
+                              Name 126  "samp2D"
+                              Name 132  "foo"
+                              Name 133  "foo2"
+                              Name 135  "uFloatArray"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeFloat 32
+           8(s1):             TypeStruct 6(int) 7(float)
+               9:             TypeVector 7(float) 4
+          10(s2):             TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
+              11:             TypePointer Function 10(s2)
+          13(s3):             TypeStruct 10(s2) 6(int) 7(float) 8(s1)
+              14:             TypePointer UniformConstant 13(s3)
+        15(foo3):     14(ptr) Variable UniformConstant
+              16:      6(int) Constant 0
+              17:             TypePointer UniformConstant 10(s2)
+              20:             TypePointer UniformConstant 6(int)
+              23:             TypeBool
+              27:      6(int) Constant 2
+              28:      6(int) Constant 1
+              29:    7(float) Constant 1065353216
+              30:             TypePointer Function 7(float)
+              32:             TypeInt 32 0
+              33:     32(int) Constant 16
+              34:             TypeArray 7(float) 33
+              35:             TypePointer Function 34
+              37:      6(int) Constant 4
+              38:             TypeVector 7(float) 2
+              39:             TypePointer Input 38(fvec2)
+       40(coord):     39(ptr) Variable Input
+              41:     32(int) Constant 0
+              42:             TypePointer Input 7(float)
+              46:     32(int) Constant 8
+              47:             TypeArray 6(int) 46
+              48:             TypePointer Function 47
+              52:             TypePointer Function 6(int)
+              69:      6(int) Constant 5
+              80:      6(int) Constant 16
+              84:    7(float) Constant 0
+   88(condition):     20(ptr) Variable UniformConstant
+              94:      6(int) Constant 3
+              95:             TypePointer Input 9(fvec4)
+       96(color):     95(ptr) Variable Input
+              98:             TypePointer Function 9(fvec4)
+             100:     32(int) Constant 1
+             103:     32(int) Constant 2
+             105:             TypePointer Output 9(fvec4)
+106(gl_FragColor):    105(ptr) Variable Output
+             123:             TypeImage 7(float) 2D sampled format:Unknown
+             124:             TypeSampledImage 123
+             125:             TypePointer UniformConstant 124
+     126(samp2D):    125(ptr) Variable UniformConstant
+             131:             TypePointer UniformConstant 8(s1)
+        132(foo):    131(ptr) Variable UniformConstant
+       133(foo2):     17(ptr) Variable UniformConstant
+             134:             TypePointer UniformConstant 34
+135(uFloatArray):    134(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+     12(locals2):     11(ptr) Variable Function
+ 36(localFArray):     35(ptr) Variable Function
+ 49(localIArray):     48(ptr) Variable Function
+           68(x):     52(ptr) Variable Function
+  70(localArray):     35(ptr) Variable Function
+           75(i):     52(ptr) Variable Function
+           82(a):     35(ptr) Variable Function
+              18:     17(ptr) AccessChain 15(foo3) 16
+              19:      10(s2) Load 18
+                              Store 12(locals2) 19
+              21:     20(ptr) AccessChain 15(foo3) 16 16
+              22:      6(int) Load 21
+              24:    23(bool) SGreaterThan 22 16
+                              SelectionMerge 26 None
+                              BranchConditional 24 25 54
+              25:               Label
+              31:     30(ptr)   AccessChain 12(locals2) 27 28
+                                Store 31 29
+              43:     42(ptr)   AccessChain 40(coord) 41
+              44:    7(float)   Load 43
+              45:     30(ptr)   AccessChain 36(localFArray) 37
+                                Store 45 44
+              50:     20(ptr)   AccessChain 15(foo3) 16 16
+              51:      6(int)   Load 50
+              53:     52(ptr)   AccessChain 49(localIArray) 27
+                                Store 53 51
+                                Branch 26
+              54:               Label
+              55:     42(ptr)   AccessChain 40(coord) 41
+              56:    7(float)   Load 55
+              57:     30(ptr)   AccessChain 12(locals2) 27 28
+                                Store 57 56
+              58:     30(ptr)   AccessChain 36(localFArray) 37
+                                Store 58 29
+              59:     52(ptr)   AccessChain 49(localIArray) 27
+                                Store 59 16
+                                Branch 26
+              26:             Label
+              60:     52(ptr) AccessChain 49(localIArray) 27
+              61:      6(int) Load 60
+              62:    23(bool) IEqual 61 16
+                              SelectionMerge 64 None
+                              BranchConditional 62 63 64
+              63:               Label
+              65:     30(ptr)   AccessChain 36(localFArray) 37
+              66:    7(float)   Load 65
+              67:    7(float)   FAdd 66 29
+                                Store 65 67
+                                Branch 64
+              64:             Label
+                              Store 68(x) 69
+              71:      6(int) Load 68(x)
+              72:     42(ptr) AccessChain 40(coord) 41
+              73:    7(float) Load 72
+              74:     30(ptr) AccessChain 70(localArray) 71
+                              Store 74 73
+                              Store 75(i) 16
+                              Branch 76
+              76:             Label
+              79:      6(int) Load 75(i)
+              81:    23(bool) SLessThan 79 80
+                              LoopMerge 77 76 None
+                              BranchConditional 81 78 77
+              78:               Label
+              83:      6(int)   Load 75(i)
+              85:     30(ptr)   AccessChain 82(a) 83
+                                Store 85 84
+              86:      6(int)   Load 75(i)
+              87:      6(int)   IAdd 86 28
+                                Store 75(i) 87
+                                Branch 76
+              77:             Label
+              89:      6(int) Load 88(condition)
+              90:    23(bool) IEqual 89 28
+                              SelectionMerge 92 None
+                              BranchConditional 90 91 92
+              91:               Label
+              93:          34   Load 70(localArray)
+                                Store 82(a) 93
+                                Branch 92
+              92:             Label
+              97:    9(fvec4) Load 96(color)
+              99:     98(ptr) AccessChain 12(locals2) 94
+                              Store 99 97
+             101:     42(ptr) AccessChain 40(coord) 100
+             102:    7(float) Load 101
+             104:     30(ptr) AccessChain 12(locals2) 94 103
+                              Store 104 102
+             107:     98(ptr) AccessChain 12(locals2) 94
+             108:    9(fvec4) Load 107
+             109:     30(ptr) AccessChain 36(localFArray) 37
+             110:    7(float) Load 109
+             111:     30(ptr) AccessChain 12(locals2) 27 28
+             112:    7(float) Load 111
+             113:    7(float) FAdd 110 112
+             114:      6(int) Load 68(x)
+             115:     30(ptr) AccessChain 70(localArray) 114
+             116:    7(float) Load 115
+             117:    7(float) FAdd 113 116
+             118:      6(int) Load 68(x)
+             119:     30(ptr) AccessChain 82(a) 118
+             120:    7(float) Load 119
+             121:    7(float) FAdd 117 120
+             122:    9(fvec4) VectorTimesScalar 108 121
+             127:         124 Load 126(samp2D)
+             128:   38(fvec2) Load 40(coord)
+             129:    9(fvec4) ImageSampleImplicitLod 127 128
+             130:    9(fvec4) FMul 122 129
+                              Store 106(gl_FragColor) 130
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out
index 5602e08..7c9ecaf 100755
--- a/Test/baseResults/spv.loops.frag.out
+++ b/Test/baseResults/spv.loops.frag.out
@@ -1,1098 +1,1098 @@
-spv.loops.frag

-WARNING: 0:14: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 718

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 11

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 50  "d"

-                              Name 54  "bigColor"

-                              Name 66  "bigColor1_1"

-                              Name 97  "d2"

-                              Name 105  "d3"

-                              Name 109  "bigColor1_2"

-                              Name 120  "bigColor1_3"

-                              Name 126  "d4"

-                              Name 137  "i"

-                              Name 144  "Count"

-                              Name 147  "bigColor2"

-                              Name 165  "bigColor3"

-                              Name 170  "i"

-                              Name 184  "i"

-                              Name 218  "i"

-                              Name 239  "i"

-                              Name 264  "i"

-                              Name 298  "bigColor4"

-                              Name 334  "d5"

-                              Name 338  "bigColor5"

-                              Name 355  "d6"

-                              Name 367  "bigColor6"

-                              Name 401  "d7"

-                              Name 434  "bigColor7"

-                              Name 457  "d8"

-                              Name 497  "d9"

-                              Name 527  "d10"

-                              Name 535  "d11"

-                              Name 545  "d12"

-                              Name 569  "bigColor8"

-                              Name 596  "gl_FragColor"

-                              Name 603  "d14"

-                              Name 608  "d15"

-                              Name 626  "d16"

-                              Name 664  "d17"

-                              Name 670  "d18"

-                              Name 701  "d13"

-                              Name 702  "d19"

-                              Name 703  "d20"

-                              Name 704  "d21"

-                              Name 705  "d22"

-                              Name 706  "d23"

-                              Name 707  "d24"

-                              Name 708  "d25"

-                              Name 709  "d26"

-                              Name 710  "d27"

-                              Name 711  "d28"

-                              Name 712  "d29"

-                              Name 713  "d30"

-                              Name 714  "d31"

-                              Name 715  "d32"

-                              Name 716  "d33"

-                              Name 717  "d34"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              16:             TypeBool

-              17:    16(bool) ConstantTrue

-              18:             TypeInt 32 0

-              19:     18(int) Constant 0

-              20:             TypePointer Function 6(float)

-              23:    6(float) Constant 1051260355

-              27:    7(fvec4) ConstantComposite 23 23 23 23

-              33:    6(float) Constant 1059648963

-              37:    7(fvec4) ConstantComposite 33 33 33 33

-              49:             TypePointer UniformConstant 6(float)

-           50(d):     49(ptr) Variable UniformConstant

-              53:             TypePointer UniformConstant 7(fvec4)

-    54(bigColor):     53(ptr) Variable UniformConstant

-              61:     18(int) Constant 2

- 66(bigColor1_1):     53(ptr) Variable UniformConstant

-              70:     18(int) Constant 3

-              86:    6(float) Constant 1109917696

-              89:    6(float) Constant 1065353216

-          97(d2):     49(ptr) Variable UniformConstant

-             102:     18(int) Constant 1

-         105(d3):     49(ptr) Variable UniformConstant

-109(bigColor1_2):     53(ptr) Variable UniformConstant

-120(bigColor1_3):     53(ptr) Variable UniformConstant

-         126(d4):     49(ptr) Variable UniformConstant

-             135:             TypeInt 32 1

-             136:             TypePointer Function 135(int)

-             138:    135(int) Constant 0

-             143:             TypePointer UniformConstant 135(int)

-      144(Count):    143(ptr) Variable UniformConstant

-  147(bigColor2):     53(ptr) Variable UniformConstant

-             152:    135(int) Constant 1

-  165(bigColor3):     53(ptr) Variable UniformConstant

-             169:    16(bool) ConstantFalse

-             175:    135(int) Constant 42

-             189:    135(int) Constant 100

-             193:    6(float) Constant 1101004800

-             223:    135(int) Constant 120

-  298(bigColor4):     53(ptr) Variable UniformConstant

-         334(d5):     49(ptr) Variable UniformConstant

-  338(bigColor5):     53(ptr) Variable UniformConstant

-         355(d6):     49(ptr) Variable UniformConstant

-  367(bigColor6):     53(ptr) Variable UniformConstant

-         401(d7):     49(ptr) Variable UniformConstant

-             429:    6(float) Constant 0

-  434(bigColor7):     53(ptr) Variable UniformConstant

-         457(d8):     49(ptr) Variable UniformConstant

-             477:    6(float) Constant 1073741824

-         497(d9):     49(ptr) Variable UniformConstant

-             513:    6(float) Constant 1084227584

-        527(d10):     49(ptr) Variable UniformConstant

-        535(d11):     49(ptr) Variable UniformConstant

-        545(d12):     49(ptr) Variable UniformConstant

-             567:    6(float) Constant 1092616192

-  569(bigColor8):     53(ptr) Variable UniformConstant

-             595:             TypePointer Output 7(fvec4)

-596(gl_FragColor):    595(ptr) Variable Output

-        603(d14):     49(ptr) Variable UniformConstant

-        608(d15):     49(ptr) Variable UniformConstant

-        626(d16):     49(ptr) Variable UniformConstant

-        664(d17):     49(ptr) Variable UniformConstant

-        670(d18):     49(ptr) Variable UniformConstant

-        701(d13):     49(ptr) Variable UniformConstant

-        702(d19):     49(ptr) Variable UniformConstant

-        703(d20):     49(ptr) Variable UniformConstant

-        704(d21):     49(ptr) Variable UniformConstant

-        705(d22):     49(ptr) Variable UniformConstant

-        706(d23):     49(ptr) Variable UniformConstant

-        707(d24):     49(ptr) Variable UniformConstant

-        708(d25):     49(ptr) Variable UniformConstant

-        709(d26):     49(ptr) Variable UniformConstant

-        710(d27):     49(ptr) Variable UniformConstant

-        711(d28):     49(ptr) Variable UniformConstant

-        712(d29):     49(ptr) Variable UniformConstant

-        713(d30):     49(ptr) Variable UniformConstant

-        714(d31):     49(ptr) Variable UniformConstant

-        715(d32):     49(ptr) Variable UniformConstant

-        716(d33):     49(ptr) Variable UniformConstant

-        717(d34):     49(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-          137(i):    136(ptr) Variable Function

-          170(i):    136(ptr) Variable Function

-          184(i):    136(ptr) Variable Function

-          218(i):    136(ptr) Variable Function

-          239(i):    136(ptr) Variable Function

-          264(i):    136(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-                              Branch 13

-              13:             Label

-                              LoopMerge 14 13 None

-                              BranchConditional 17 15 14

-              15:               Label

-              21:     20(ptr)   AccessChain 9(color) 19

-              22:    6(float)   Load 21

-              24:    16(bool)   FOrdLessThan 22 23

-                                SelectionMerge 26 None

-                                BranchConditional 24 25 26

-              25:                 Label

-              28:    7(fvec4)     Load 9(color)

-              29:    7(fvec4)     FAdd 28 27

-                                  Store 9(color) 29

-                                  Branch 14

-              26:               Label

-              31:     20(ptr)   AccessChain 9(color) 19

-              32:    6(float)   Load 31

-              34:    16(bool)   FOrdLessThan 32 33

-                                SelectionMerge 36 None

-                                BranchConditional 34 35 36

-              35:                 Label

-              38:    7(fvec4)     Load 9(color)

-              39:    7(fvec4)     FAdd 38 37

-                                  Store 9(color) 39

-                                  Branch 14

-              36:               Label

-              41:    7(fvec4)   Load 9(color)

-              42:    7(fvec4)   FAdd 41 27

-                                Store 9(color) 42

-                                Branch 14

-              14:             Label

-                              Branch 44

-              44:             Label

-              47:     20(ptr) AccessChain 9(color) 19

-              48:    6(float) Load 47

-              51:    6(float) Load 50(d)

-              52:    16(bool) FOrdLessThan 48 51

-                              LoopMerge 45 44 None

-                              BranchConditional 52 46 45

-              46:               Label

-              55:    7(fvec4)   Load 54(bigColor)

-              56:    7(fvec4)   Load 9(color)

-              57:    7(fvec4)   FAdd 56 55

-                                Store 9(color) 57

-                                Branch 44

-              45:             Label

-                              Branch 58

-              58:             Label

-              62:     20(ptr) AccessChain 9(color) 61

-              63:    6(float) Load 62

-              64:    6(float) Load 50(d)

-              65:    16(bool) FOrdLessThan 63 64

-                              LoopMerge 59 58 None

-                              BranchConditional 65 60 59

-              60:               Label

-              67:    7(fvec4)   Load 66(bigColor1_1)

-              68:    7(fvec4)   Load 9(color)

-              69:    7(fvec4)   FAdd 68 67

-                                Store 9(color) 69

-              71:     20(ptr)   AccessChain 9(color) 70

-              72:    6(float)   Load 71

-              73:    6(float)   Load 50(d)

-              74:    16(bool)   FOrdLessThan 72 73

-                                SelectionMerge 76 None

-                                BranchConditional 74 75 76

-              75:                 Label

-                                  Branch 58

-              76:               Label

-              78:    7(fvec4)   Load 66(bigColor1_1)

-              79:    7(fvec4)   Load 9(color)

-              80:    7(fvec4)   FAdd 79 78

-                                Store 9(color) 80

-                                Branch 58

-              59:             Label

-                              Branch 81

-              81:             Label

-              84:     20(ptr) AccessChain 9(color) 19

-              85:    6(float) Load 84

-              87:    16(bool) FOrdLessThan 85 86

-                              LoopMerge 82 81 None

-                              BranchConditional 87 83 82

-              83:               Label

-              88:    7(fvec4)   Load 9(color)

-              90:    7(fvec4)   CompositeConstruct 89 89 89 89

-              91:    7(fvec4)   FAdd 88 90

-                                Store 9(color) 91

-                                Branch 81

-              82:             Label

-                              Branch 92

-              92:             Label

-              95:     20(ptr) AccessChain 9(color) 70

-              96:    6(float) Load 95

-              98:    6(float) Load 97(d2)

-              99:    16(bool) FOrdLessThan 96 98

-                              SelectionMerge 101 None

-                              BranchConditional 99 100 101

-             100:               Label

-             103:     20(ptr)   AccessChain 9(color) 102

-             104:    6(float)   Load 103

-             106:    6(float)   Load 105(d3)

-             107:    16(bool)   FOrdLessThan 104 106

-                                Branch 101

-             101:             Label

-             108:    16(bool) Phi 99 92 107 100

-                              LoopMerge 93 92 None

-                              BranchConditional 108 94 93

-              94:               Label

-             110:    7(fvec4)   Load 109(bigColor1_2)

-             111:    7(fvec4)   Load 9(color)

-             112:    7(fvec4)   FAdd 111 110

-                                Store 9(color) 112

-                                Branch 92

-              93:             Label

-                              Branch 113

-             113:             Label

-             116:     20(ptr) AccessChain 9(color) 61

-             117:    6(float) Load 116

-             118:    6(float) Load 105(d3)

-             119:    16(bool) FOrdLessThan 117 118

-                              LoopMerge 114 113 None

-                              BranchConditional 119 115 114

-             115:               Label

-             121:    7(fvec4)   Load 120(bigColor1_3)

-             122:    7(fvec4)   Load 9(color)

-             123:    7(fvec4)   FAdd 122 121

-                                Store 9(color) 123

-             124:     20(ptr)   AccessChain 9(color) 102

-             125:    6(float)   Load 124

-             127:    6(float)   Load 126(d4)

-             128:    16(bool)   FOrdLessThan 125 127

-                                SelectionMerge 130 None

-                                BranchConditional 128 129 130

-             129:                 Label

-                                  Branch 114

-             130:               Label

-             132:    7(fvec4)   Load 120(bigColor1_3)

-             133:    7(fvec4)   Load 9(color)

-             134:    7(fvec4)   FAdd 133 132

-                                Store 9(color) 134

-                                Branch 113

-             114:             Label

-                              Store 137(i) 138

-                              Branch 139

-             139:             Label

-             142:    135(int) Load 137(i)

-             145:    135(int) Load 144(Count)

-             146:    16(bool) SLessThan 142 145

-                              LoopMerge 140 139 None

-                              BranchConditional 146 141 140

-             141:               Label

-             148:    7(fvec4)   Load 147(bigColor2)

-             149:    7(fvec4)   Load 9(color)

-             150:    7(fvec4)   FAdd 149 148

-                                Store 9(color) 150

-             151:    135(int)   Load 137(i)

-             153:    135(int)   IAdd 151 152

-                                Store 137(i) 153

-                                Branch 139

-             140:             Label

-                              Branch 154

-             154:             Label

-             157:    16(bool) Phi 17 140 169 156

-                              LoopMerge 155 154 None

-                              Branch 158

-             158:             Label

-                              SelectionMerge 156 None

-                              BranchConditional 157 156 159

-             159:               Label

-             160:     20(ptr)   AccessChain 9(color) 19

-             161:    6(float)   Load 160

-             162:    6(float)   Load 97(d2)

-             163:    16(bool)   FOrdLessThan 161 162

-                                SelectionMerge 164 None

-                                BranchConditional 163 164 155

-             164:               Label

-                                Branch 156

-             156:             Label

-             166:    7(fvec4) Load 165(bigColor3)

-             167:    7(fvec4) Load 9(color)

-             168:    7(fvec4) FAdd 167 166

-                              Store 9(color) 168

-                              Branch 154

-             155:             Label

-                              Store 170(i) 138

-                              Branch 171

-             171:             Label

-             174:    135(int) Load 170(i)

-             176:    16(bool) SLessThan 174 175

-                              LoopMerge 172 171 None

-                              BranchConditional 176 173 172

-             173:               Label

-             177:    6(float)   Load 105(d3)

-             178:     20(ptr)   AccessChain 9(color) 61

-             179:    6(float)   Load 178

-             180:    6(float)   FAdd 179 177

-             181:     20(ptr)   AccessChain 9(color) 61

-                                Store 181 180

-             182:    135(int)   Load 170(i)

-             183:    135(int)   IAdd 182 152

-                                Store 170(i) 183

-                                Branch 171

-             172:             Label

-                              Store 184(i) 138

-                              Branch 185

-             185:             Label

-             188:    135(int) Load 184(i)

-             190:    16(bool) SLessThan 188 189

-                              LoopMerge 186 185 None

-                              BranchConditional 190 187 186

-             187:               Label

-             191:     20(ptr)   AccessChain 9(color) 61

-             192:    6(float)   Load 191

-             194:    16(bool)   FOrdLessThan 192 193

-                                SelectionMerge 196 None

-                                BranchConditional 194 195 200

-             195:                 Label

-             197:     20(ptr)     AccessChain 9(color) 19

-             198:    6(float)     Load 197

-             199:    6(float)     FAdd 198 89

-                                  Store 197 199

-                                  Branch 196

-             200:                 Label

-             201:     20(ptr)     AccessChain 9(color) 102

-             202:    6(float)     Load 201

-             203:    6(float)     FAdd 202 89

-                                  Store 201 203

-                                  Branch 196

-             196:               Label

-             204:     20(ptr)   AccessChain 9(color) 70

-             205:    6(float)   Load 204

-             206:    16(bool)   FOrdLessThan 205 193

-                                SelectionMerge 208 None

-                                BranchConditional 206 207 208

-             207:                 Label

-             209:     20(ptr)     AccessChain 9(color) 61

-             210:    6(float)     Load 209

-             211:     20(ptr)     AccessChain 9(color) 102

-             212:    6(float)     Load 211

-             213:    16(bool)     FOrdGreaterThan 210 212

-                                  SelectionMerge 215 None

-                                  BranchConditional 213 214 215

-             214:                   Label

-                                    Branch 215

-             215:                 Label

-                                  Branch 208

-             208:               Label

-             216:    135(int)   Load 184(i)

-             217:    135(int)   IAdd 216 152

-                                Store 184(i) 217

-                                Branch 185

-             186:             Label

-                              Store 218(i) 138

-                              Branch 219

-             219:             Label

-             222:    135(int) Load 218(i)

-             224:    16(bool) SLessThan 222 223

-                              LoopMerge 220 219 None

-                              BranchConditional 224 221 220

-             221:               Label

-             225:     20(ptr)   AccessChain 9(color) 61

-             226:    6(float)   Load 225

-             227:    16(bool)   FOrdLessThan 226 193

-                                SelectionMerge 229 None

-                                BranchConditional 227 228 233

-             228:                 Label

-             230:     20(ptr)     AccessChain 9(color) 19

-             231:    6(float)     Load 230

-             232:    6(float)     FAdd 231 89

-                                  Store 230 232

-                                  Branch 229

-             233:                 Label

-             234:     20(ptr)     AccessChain 9(color) 102

-             235:    6(float)     Load 234

-             236:    6(float)     FAdd 235 89

-                                  Store 234 236

-                                  Branch 229

-             229:               Label

-             237:    135(int)   Load 218(i)

-             238:    135(int)   IAdd 237 152

-                                Store 218(i) 238

-                                Branch 219

-             220:             Label

-                              Store 239(i) 138

-                              Branch 240

-             240:             Label

-             243:    135(int) Load 239(i)

-             244:    16(bool) SLessThan 243 175

-                              LoopMerge 241 240 None

-                              BranchConditional 244 242 241

-             242:               Label

-             245:    6(float)   Load 105(d3)

-             246:     20(ptr)   AccessChain 9(color) 61

-             247:    6(float)   Load 246

-             248:    6(float)   FAdd 247 245

-             249:     20(ptr)   AccessChain 9(color) 61

-                                Store 249 248

-             250:     20(ptr)   AccessChain 9(color) 19

-             251:    6(float)   Load 250

-             252:    6(float)   Load 126(d4)

-             253:    16(bool)   FOrdLessThan 251 252

-                                SelectionMerge 255 None

-                                BranchConditional 253 254 255

-             254:                 Label

-             256:    135(int)     Load 239(i)

-             257:    135(int)     IAdd 256 152

-                                  Store 239(i) 257

-                                  Branch 240

-             255:               Label

-             259:     20(ptr)   AccessChain 9(color) 70

-             260:    6(float)   Load 259

-             261:    6(float)   FAdd 260 89

-                                Store 259 261

-             262:    135(int)   Load 239(i)

-             263:    135(int)   IAdd 262 152

-                                Store 239(i) 263

-                                Branch 240

-             241:             Label

-                              Store 264(i) 138

-                              Branch 265

-             265:             Label

-             268:    135(int) Load 264(i)

-             269:    16(bool) SLessThan 268 175

-                              LoopMerge 266 265 None

-                              BranchConditional 269 267 266

-             267:               Label

-             270:    6(float)   Load 105(d3)

-             271:     20(ptr)   AccessChain 9(color) 61

-             272:    6(float)   Load 271

-             273:    6(float)   FAdd 272 270

-             274:     20(ptr)   AccessChain 9(color) 61

-                                Store 274 273

-             275:     20(ptr)   AccessChain 9(color) 19

-             276:    6(float)   Load 275

-             277:    6(float)   Load 126(d4)

-             278:    16(bool)   FOrdLessThan 276 277

-                                SelectionMerge 280 None

-                                BranchConditional 278 279 280

-             279:                 Label

-                                  Branch 266

-             280:               Label

-             282:     20(ptr)   AccessChain 9(color) 70

-             283:    6(float)   Load 282

-             284:    6(float)   FAdd 283 89

-                                Store 282 284

-             285:    135(int)   Load 264(i)

-             286:    135(int)   IAdd 285 152

-                                Store 264(i) 286

-                                Branch 265

-             266:             Label

-                              Branch 287

-             287:             Label

-             290:    16(bool) Phi 17 266 169 306 169 314

-                              LoopMerge 288 287 None

-                              Branch 291

-             291:             Label

-                              SelectionMerge 289 None

-                              BranchConditional 290 289 292

-             292:               Label

-             293:     20(ptr)   AccessChain 9(color) 61

-             294:    6(float)   Load 293

-             295:    6(float)   Load 126(d4)

-             296:    16(bool)   FOrdLessThan 294 295

-                                SelectionMerge 297 None

-                                BranchConditional 296 297 288

-             297:               Label

-                                Branch 289

-             289:             Label

-             299:    7(fvec4) Load 298(bigColor4)

-             300:    7(fvec4) Load 9(color)

-             301:    7(fvec4) FAdd 300 299

-                              Store 9(color) 301

-             302:     20(ptr) AccessChain 9(color) 19

-             303:    6(float) Load 302

-             304:    6(float) Load 126(d4)

-             305:    16(bool) FOrdLessThan 303 304

-                              SelectionMerge 307 None

-                              BranchConditional 305 306 307

-             306:               Label

-                                Branch 287

-             307:             Label

-             309:     20(ptr) AccessChain 9(color) 102

-             310:    6(float) Load 309

-             311:    6(float) Load 126(d4)

-             312:    16(bool) FOrdLessThan 310 311

-                              SelectionMerge 314 None

-                              BranchConditional 312 313 320

-             313:               Label

-             315:    6(float)   Load 126(d4)

-             316:     20(ptr)   AccessChain 9(color) 102

-             317:    6(float)   Load 316

-             318:    6(float)   FAdd 317 315

-             319:     20(ptr)   AccessChain 9(color) 102

-                                Store 319 318

-                                Branch 314

-             320:               Label

-             321:    6(float)   Load 126(d4)

-             322:     20(ptr)   AccessChain 9(color) 19

-             323:    6(float)   Load 322

-             324:    6(float)   FAdd 323 321

-             325:     20(ptr)   AccessChain 9(color) 19

-                                Store 325 324

-                                Branch 314

-             314:             Label

-                              Branch 287

-             288:             Label

-                              Branch 326

-             326:             Label

-             329:    16(bool) Phi 17 288 169 347

-                              LoopMerge 327 326 None

-                              Branch 330

-             330:             Label

-                              SelectionMerge 328 None

-                              BranchConditional 329 328 331

-             331:               Label

-             332:     20(ptr)   AccessChain 9(color) 19

-             333:    6(float)   Load 332

-             335:    6(float)   Load 334(d5)

-             336:    16(bool)   FOrdLessThan 333 335

-                                SelectionMerge 337 None

-                                BranchConditional 336 337 327

-             337:               Label

-                                Branch 328

-             328:             Label

-             339:    7(fvec4) Load 338(bigColor5)

-             340:    7(fvec4) Load 9(color)

-             341:    7(fvec4) FAdd 340 339

-                              Store 9(color) 341

-             342:     20(ptr) AccessChain 9(color) 102

-             343:    6(float) Load 342

-             344:    6(float) Load 334(d5)

-             345:    16(bool) FOrdLessThan 343 344

-                              SelectionMerge 347 None

-                              BranchConditional 345 346 347

-             346:               Label

-             348:    6(float)   Load 334(d5)

-             349:     20(ptr)   AccessChain 9(color) 102

-             350:    6(float)   Load 349

-             351:    6(float)   FAdd 350 348

-             352:     20(ptr)   AccessChain 9(color) 102

-                                Store 352 351

-                                Branch 347

-             347:             Label

-                              Branch 326

-             327:             Label

-             353:     20(ptr) AccessChain 9(color) 19

-             354:    6(float) Load 353

-             356:    6(float) Load 355(d6)

-             357:    16(bool) FOrdLessThan 354 356

-                              SelectionMerge 359 None

-                              BranchConditional 357 358 371

-             358:               Label

-                                Branch 360

-             360:               Label

-             363:     20(ptr)   AccessChain 9(color) 102

-             364:    6(float)   Load 363

-             365:    6(float)   Load 355(d6)

-             366:    16(bool)   FOrdLessThan 364 365

-                                LoopMerge 361 360 None

-                                BranchConditional 366 362 361

-             362:                 Label

-             368:    7(fvec4)     Load 367(bigColor6)

-             369:    7(fvec4)     Load 9(color)

-             370:    7(fvec4)     FAdd 369 368

-                                  Store 9(color) 370

-                                  Branch 360

-             361:               Label

-                                Branch 359

-             371:               Label

-                                Branch 372

-             372:               Label

-             375:     20(ptr)   AccessChain 9(color) 61

-             376:    6(float)   Load 375

-             377:    6(float)   Load 355(d6)

-             378:    16(bool)   FOrdLessThan 376 377

-                                LoopMerge 373 372 None

-                                BranchConditional 378 374 373

-             374:                 Label

-             379:     49(ptr)     AccessChain 367(bigColor6) 61

-             380:    6(float)     Load 379

-             381:     20(ptr)     AccessChain 9(color) 61

-             382:    6(float)     Load 381

-             383:    6(float)     FAdd 382 380

-             384:     20(ptr)     AccessChain 9(color) 61

-                                  Store 384 383

-                                  Branch 372

-             373:               Label

-                                Branch 359

-             359:             Label

-             385:     20(ptr) AccessChain 9(color) 19

-             386:    6(float) Load 385

-             387:    6(float) Load 355(d6)

-             388:    16(bool) FOrdLessThan 386 387

-                              SelectionMerge 390 None

-                              BranchConditional 388 389 407

-             389:               Label

-                                Branch 391

-             391:               Label

-             394:     20(ptr)   AccessChain 9(color) 102

-             395:    6(float)   Load 394

-             396:    6(float)   Load 355(d6)

-             397:    16(bool)   FOrdLessThan 395 396

-                                LoopMerge 392 391 None

-                                BranchConditional 397 393 392

-             393:                 Label

-             398:    7(fvec4)     Load 367(bigColor6)

-             399:    7(fvec4)     Load 9(color)

-             400:    7(fvec4)     FAdd 399 398

-                                  Store 9(color) 400

-             402:    6(float)     Load 401(d7)

-             403:    16(bool)     FOrdLessThan 402 89

-                                  SelectionMerge 405 None

-                                  BranchConditional 403 404 405

-             404:                   Label

-                                    Branch 392

-             405:                 Label

-                                  Branch 391

-             392:               Label

-                                Branch 390

-             407:               Label

-                                Branch 408

-             408:               Label

-             411:     20(ptr)   AccessChain 9(color) 61

-             412:    6(float)   Load 411

-             413:    6(float)   Load 355(d6)

-             414:    16(bool)   FOrdLessThan 412 413

-                                LoopMerge 409 408 None

-                                BranchConditional 414 410 409

-             410:                 Label

-             415:     49(ptr)     AccessChain 367(bigColor6) 61

-             416:    6(float)     Load 415

-             417:     20(ptr)     AccessChain 9(color) 61

-             418:    6(float)     Load 417

-             419:    6(float)     FAdd 418 416

-             420:     20(ptr)     AccessChain 9(color) 61

-                                  Store 420 419

-                                  Branch 408

-             409:               Label

-                                Branch 390

-             390:             Label

-                              Branch 421

-             421:             Label

-             424:    16(bool) Phi 17 390 169 441

-                              LoopMerge 422 421 None

-                              Branch 425

-             425:             Label

-                              SelectionMerge 423 None

-                              BranchConditional 424 423 426

-             426:               Label

-                                SelectionMerge 427 None

-                                BranchConditional 17 427 422

-             427:               Label

-                                Branch 423

-             423:             Label

-             428:    6(float) Load 401(d7)

-             430:    16(bool) FOrdLessThan 428 429

-                              SelectionMerge 432 None

-                              BranchConditional 430 431 432

-             431:               Label

-                                Branch 422

-             432:             Label

-             435:    7(fvec4) Load 434(bigColor7)

-             436:    7(fvec4) Load 9(color)

-             437:    7(fvec4) FAdd 436 435

-                              Store 9(color) 437

-             438:    6(float) Load 401(d7)

-             439:    16(bool) FOrdLessThan 438 89

-                              SelectionMerge 441 None

-                              BranchConditional 439 440 441

-             440:               Label

-             442:     20(ptr)   AccessChain 9(color) 61

-             443:    6(float)   Load 442

-             444:    6(float)   FAdd 443 89

-                                Store 442 444

-                                Branch 422

-             441:             Label

-             446:    7(fvec4) Load 11(BaseColor)

-             447:    7(fvec4) Load 9(color)

-             448:    7(fvec4) FAdd 447 446

-                              Store 9(color) 448

-                              Branch 421

-             422:             Label

-                              Branch 449

-             449:             Label

-             452:    16(bool) Phi 17 422 169 472

-                              LoopMerge 450 449 None

-                              Branch 453

-             453:             Label

-                              SelectionMerge 451 None

-                              BranchConditional 452 451 454

-             454:               Label

-             455:     20(ptr)   AccessChain 9(color) 61

-             456:    6(float)   Load 455

-             458:    6(float)   Load 457(d8)

-             459:    16(bool)   FOrdLessThan 456 458

-                                SelectionMerge 460 None

-                                BranchConditional 459 460 450

-             460:               Label

-                                Branch 451

-             451:             Label

-             461:    6(float) Load 457(d8)

-             462:    16(bool) FOrdLessThan 461 429

-                              SelectionMerge 464 None

-                              BranchConditional 462 463 464

-             463:               Label

-                                Branch 450

-             464:             Label

-             466:    7(fvec4) Load 434(bigColor7)

-             467:    7(fvec4) Load 9(color)

-             468:    7(fvec4) FAdd 467 466

-                              Store 9(color) 468

-             469:    6(float) Load 457(d8)

-             470:    16(bool) FOrdLessThan 469 89

-                              SelectionMerge 472 None

-                              BranchConditional 470 471 472

-             471:               Label

-             473:     20(ptr)   AccessChain 9(color) 61

-             474:    6(float)   Load 473

-             475:    6(float)   FAdd 474 89

-                                Store 473 475

-             476:    6(float)   Load 457(d8)

-             478:    16(bool)   FOrdLessThan 476 477

-                                SelectionMerge 480 None

-                                BranchConditional 478 479 484

-             479:                 Label

-             481:     20(ptr)     AccessChain 9(color) 102

-             482:    6(float)     Load 481

-             483:    6(float)     FAdd 482 89

-                                  Store 481 483

-                                  Branch 480

-             484:                 Label

-             485:     20(ptr)     AccessChain 9(color) 19

-             486:    6(float)     Load 485

-             487:    6(float)     FAdd 486 89

-                                  Store 485 487

-                                  Branch 480

-             480:               Label

-                                Branch 450

-             472:             Label

-             489:    7(fvec4) Load 11(BaseColor)

-             490:    7(fvec4) Load 9(color)

-             491:    7(fvec4) FAdd 490 489

-                              Store 9(color) 491

-                              Branch 449

-             450:             Label

-                              Branch 492

-             492:             Label

-             495:     20(ptr) AccessChain 9(color) 70

-             496:    6(float) Load 495

-             498:    6(float) Load 497(d9)

-             499:    16(bool) FOrdLessThan 496 498

-                              LoopMerge 493 492 None

-                              BranchConditional 499 494 493

-             494:               Label

-             500:    6(float)   Load 497(d9)

-             501:    6(float)   Load 457(d8)

-             502:    16(bool)   FOrdGreaterThan 500 501

-                                SelectionMerge 504 None

-                                BranchConditional 502 503 504

-             503:                 Label

-             505:     20(ptr)     AccessChain 9(color) 19

-             506:    6(float)     Load 505

-             507:    6(float)     Load 401(d7)

-             508:    16(bool)     FOrdLessThanEqual 506 507

-                                  SelectionMerge 510 None

-                                  BranchConditional 508 509 510

-             509:                   Label

-             511:     20(ptr)       AccessChain 9(color) 61

-             512:    6(float)       Load 511

-             514:    16(bool)       FOrdEqual 512 513

-                                    SelectionMerge 516 None

-                                    BranchConditional 514 515 520

-             515:                     Label

-             517:     20(ptr)         AccessChain 9(color) 70

-             518:    6(float)         Load 517

-             519:    6(float)         FAdd 518 89

-                                      Store 517 519

-                                      Branch 516

-             520:                     Label

-                                      Branch 493

-             516:                   Label

-                                    Branch 510

-             510:                 Label

-                                  Branch 504

-             504:               Label

-                                Branch 492

-             493:             Label

-                              Branch 522

-             522:             Label

-             525:     20(ptr) AccessChain 9(color) 61

-             526:    6(float) Load 525

-             528:    6(float) Load 527(d10)

-             529:    16(bool) FOrdLessThan 526 528

-                              LoopMerge 523 522 None

-                              BranchConditional 529 524 523

-             524:               Label

-             530:     20(ptr)   AccessChain 9(color) 102

-             531:    6(float)   Load 530

-             532:    6(float)   FAdd 531 89

-                                Store 530 532

-             533:     20(ptr)   AccessChain 9(color) 102

-             534:    6(float)   Load 533

-             536:    6(float)   Load 535(d11)

-             537:    16(bool)   FOrdLessThan 534 536

-                                SelectionMerge 539 None

-                                BranchConditional 537 538 539

-             538:                 Label

-             540:     20(ptr)     AccessChain 9(color) 61

-             541:    6(float)     Load 540

-             542:    6(float)     FAdd 541 89

-                                  Store 540 542

-             543:     20(ptr)     AccessChain 9(color) 70

-             544:    6(float)     Load 543

-             546:    6(float)     Load 545(d12)

-             547:    16(bool)     FOrdLessThan 544 546

-                                  SelectionMerge 549 None

-                                  BranchConditional 547 548 553

-             548:                   Label

-             550:     20(ptr)       AccessChain 9(color) 70

-             551:    6(float)       Load 550

-             552:    6(float)       FAdd 551 89

-                                    Store 550 552

-                                    Branch 549

-             553:                   Label

-             554:     20(ptr)       AccessChain 9(color) 19

-             555:    6(float)       Load 554

-             556:    6(float)       FAdd 555 89

-                                    Store 554 556

-                                    Branch 549

-             549:                 Label

-                                  Branch 522

-             539:               Label

-             558:    7(fvec4)   Load 9(color)

-             559:    7(fvec4)   CompositeConstruct 89 89 89 89

-             560:    7(fvec4)   FAdd 558 559

-                                Store 9(color) 560

-                                Branch 523

-             523:             Label

-                              Branch 562

-             562:             Label

-             565:     20(ptr) AccessChain 9(color) 19

-             566:    6(float) Load 565

-             568:    16(bool) FOrdLessThan 566 567

-                              LoopMerge 563 562 None

-                              BranchConditional 568 564 563

-             564:               Label

-             570:    7(fvec4)   Load 569(bigColor8)

-             571:    7(fvec4)   Load 9(color)

-             572:    7(fvec4)   FAdd 571 570

-                                Store 9(color) 572

-             573:     20(ptr)   AccessChain 9(color) 61

-             574:    6(float)   Load 573

-             575:    6(float)   Load 457(d8)

-             576:    16(bool)   FOrdLessThan 574 575

-                                SelectionMerge 578 None

-                                BranchConditional 576 577 578

-             577:                 Label

-             579:     20(ptr)     AccessChain 9(color) 70

-             580:    6(float)     Load 579

-             581:    6(float)     Load 355(d6)

-             582:    16(bool)     FOrdLessThan 580 581

-                                  SelectionMerge 584 None

-                                  BranchConditional 582 583 584

-             583:                   Label

-                                    Branch 562

-             584:                 Label

-                                  Branch 578

-             578:               Label

-             586:     49(ptr)   AccessChain 569(bigColor8) 19

-             587:    6(float)   Load 586

-             588:     20(ptr)   AccessChain 9(color) 102

-             589:    6(float)   Load 588

-             590:    6(float)   FAdd 589 587

-             591:     20(ptr)   AccessChain 9(color) 102

-                                Store 591 590

-                                Branch 562

-             563:             Label

-             592:    7(fvec4) Load 9(color)

-             593:    7(fvec4) CompositeConstruct 89 89 89 89

-             594:    7(fvec4) FAdd 592 593

-                              Store 9(color) 594

-             597:    7(fvec4) Load 9(color)

-                              Store 596(gl_FragColor) 597

-                              Branch 598

-             598:             Label

-             601:     20(ptr) AccessChain 9(color) 19

-             602:    6(float) Load 601

-             604:    6(float) Load 603(d14)

-             605:    16(bool) FOrdLessThan 602 604

-                              LoopMerge 599 598 None

-                              BranchConditional 605 600 599

-             600:               Label

-             606:     20(ptr)   AccessChain 9(color) 102

-             607:    6(float)   Load 606

-             609:    6(float)   Load 608(d15)

-             610:    16(bool)   FOrdLessThan 607 609

-                                SelectionMerge 612 None

-                                BranchConditional 610 611 614

-             611:                 Label

-                                  Return

-             614:                 Label

-             615:    7(fvec4)     Load 9(color)

-             616:    7(fvec4)     CompositeConstruct 89 89 89 89

-             617:    7(fvec4)     FAdd 615 616

-                                  Store 9(color) 617

-                                  Branch 612

-             612:               Label

-                                Branch 598

-             599:             Label

-             618:    7(fvec4) Load 9(color)

-             619:    7(fvec4) CompositeConstruct 89 89 89 89

-             620:    7(fvec4) FAdd 618 619

-                              Store 9(color) 620

-                              Branch 621

-             621:             Label

-             624:     20(ptr) AccessChain 9(color) 70

-             625:    6(float) Load 624

-             627:    6(float) Load 626(d16)

-             628:    16(bool) FOrdLessThan 625 627

-                              LoopMerge 622 621 None

-                              BranchConditional 628 623 622

-             623:               Label

-             629:     20(ptr)   AccessChain 9(color) 70

-             630:    6(float)   Load 629

-             631:    6(float)   FAdd 630 89

-                                Store 629 631

-                                Branch 621

-             622:             Label

-                              Branch 632

-             632:             Label

-             635:     20(ptr) AccessChain 9(color) 70

-             636:    6(float) Load 635

-             637:    6(float) Load 97(d2)

-             638:    16(bool) FOrdLessThan 636 637

-                              SelectionMerge 640 None

-                              BranchConditional 638 639 640

-             639:               Label

-             641:     20(ptr)   AccessChain 9(color) 102

-             642:    6(float)   Load 641

-             643:    6(float)   Load 105(d3)

-             644:    16(bool)   FOrdLessThan 642 643

-                                Branch 640

-             640:             Label

-             645:    16(bool) Phi 638 632 644 639

-                              LoopMerge 633 632 None

-                              BranchConditional 645 634 633

-             634:               Label

-             646:    7(fvec4)   Load 109(bigColor1_2)

-             647:    7(fvec4)   Load 9(color)

-             648:    7(fvec4)   FAdd 647 646

-                                Store 9(color) 648

-             649:     20(ptr)   AccessChain 9(color) 61

-             650:    6(float)   Load 649

-             651:    6(float)   Load 105(d3)

-             652:    16(bool)   FOrdLessThan 650 651

-                                SelectionMerge 654 None

-                                BranchConditional 652 653 654

-             653:                 Label

-                                  Return

-             654:               Label

-                                Branch 632

-             633:             Label

-                              Branch 656

-             656:             Label

-             659:    16(bool) Phi 17 633 169 674

-                              LoopMerge 657 656 None

-                              Branch 660

-             660:             Label

-                              SelectionMerge 658 None

-                              BranchConditional 659 658 661

-             661:               Label

-             662:     20(ptr)   AccessChain 9(color) 19

-             663:    6(float)   Load 662

-             665:    6(float)   Load 664(d17)

-             666:    16(bool)   FOrdLessThan 663 665

-                                SelectionMerge 667 None

-                                BranchConditional 666 667 657

-             667:               Label

-                                Branch 658

-             658:             Label

-             668:     20(ptr) AccessChain 9(color) 102

-             669:    6(float) Load 668

-             671:    6(float) Load 670(d18)

-             672:    16(bool) FOrdLessThan 669 671

-                              SelectionMerge 674 None

-                              BranchConditional 672 673 674

-             673:               Label

-                                Return

-             674:             Label

-             676:    7(fvec4) Load 9(color)

-             677:    7(fvec4) CompositeConstruct 89 89 89 89

-             678:    7(fvec4) FAdd 676 677

-                              Store 9(color) 678

-                              Branch 656

-             657:             Label

-                              Branch 679

-             679:             Label

-             682:     20(ptr) AccessChain 9(color) 102

-             683:    6(float) Load 682

-             684:    6(float) Load 626(d16)

-             685:    16(bool) FOrdLessThan 683 684

-                              LoopMerge 680 679 None

-                              BranchConditional 685 681 680

-             681:               Label

-             686:     20(ptr)   AccessChain 9(color) 70

-             687:    6(float)   Load 686

-             688:    6(float)   Load 626(d16)

-             689:    16(bool)   FOrdLessThan 687 688

-                                SelectionMerge 691 None

-                                BranchConditional 689 690 693

-             690:                 Label

-                                  Kill

-             693:                 Label

-             694:    7(fvec4)     Load 9(color)

-             695:    7(fvec4)     CompositeConstruct 89 89 89 89

-             696:    7(fvec4)     FAdd 694 695

-                                  Store 9(color) 696

-                                  Branch 691

-             691:               Label

-                                Branch 679

-             680:             Label

-             697:    7(fvec4) Load 9(color)

-             698:    7(fvec4) CompositeConstruct 89 89 89 89

-             699:    7(fvec4) FAdd 697 698

-                              Store 9(color) 699

-             700:    7(fvec4) Load 9(color)

-                              Store 596(gl_FragColor) 700

-                              Return

-                              FunctionEnd

+spv.loops.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 718
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 11
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 50  "d"
+                              Name 54  "bigColor"
+                              Name 66  "bigColor1_1"
+                              Name 97  "d2"
+                              Name 105  "d3"
+                              Name 109  "bigColor1_2"
+                              Name 120  "bigColor1_3"
+                              Name 126  "d4"
+                              Name 137  "i"
+                              Name 144  "Count"
+                              Name 147  "bigColor2"
+                              Name 165  "bigColor3"
+                              Name 170  "i"
+                              Name 184  "i"
+                              Name 218  "i"
+                              Name 239  "i"
+                              Name 264  "i"
+                              Name 298  "bigColor4"
+                              Name 334  "d5"
+                              Name 338  "bigColor5"
+                              Name 355  "d6"
+                              Name 367  "bigColor6"
+                              Name 401  "d7"
+                              Name 434  "bigColor7"
+                              Name 457  "d8"
+                              Name 497  "d9"
+                              Name 527  "d10"
+                              Name 535  "d11"
+                              Name 545  "d12"
+                              Name 569  "bigColor8"
+                              Name 596  "gl_FragColor"
+                              Name 603  "d14"
+                              Name 608  "d15"
+                              Name 626  "d16"
+                              Name 664  "d17"
+                              Name 670  "d18"
+                              Name 701  "d13"
+                              Name 702  "d19"
+                              Name 703  "d20"
+                              Name 704  "d21"
+                              Name 705  "d22"
+                              Name 706  "d23"
+                              Name 707  "d24"
+                              Name 708  "d25"
+                              Name 709  "d26"
+                              Name 710  "d27"
+                              Name 711  "d28"
+                              Name 712  "d29"
+                              Name 713  "d30"
+                              Name 714  "d31"
+                              Name 715  "d32"
+                              Name 716  "d33"
+                              Name 717  "d34"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              16:             TypeBool
+              17:    16(bool) ConstantTrue
+              18:             TypeInt 32 0
+              19:     18(int) Constant 0
+              20:             TypePointer Function 6(float)
+              23:    6(float) Constant 1051260355
+              27:    7(fvec4) ConstantComposite 23 23 23 23
+              33:    6(float) Constant 1059648963
+              37:    7(fvec4) ConstantComposite 33 33 33 33
+              49:             TypePointer UniformConstant 6(float)
+           50(d):     49(ptr) Variable UniformConstant
+              53:             TypePointer UniformConstant 7(fvec4)
+    54(bigColor):     53(ptr) Variable UniformConstant
+              61:     18(int) Constant 2
+ 66(bigColor1_1):     53(ptr) Variable UniformConstant
+              70:     18(int) Constant 3
+              86:    6(float) Constant 1109917696
+              89:    6(float) Constant 1065353216
+          97(d2):     49(ptr) Variable UniformConstant
+             102:     18(int) Constant 1
+         105(d3):     49(ptr) Variable UniformConstant
+109(bigColor1_2):     53(ptr) Variable UniformConstant
+120(bigColor1_3):     53(ptr) Variable UniformConstant
+         126(d4):     49(ptr) Variable UniformConstant
+             135:             TypeInt 32 1
+             136:             TypePointer Function 135(int)
+             138:    135(int) Constant 0
+             143:             TypePointer UniformConstant 135(int)
+      144(Count):    143(ptr) Variable UniformConstant
+  147(bigColor2):     53(ptr) Variable UniformConstant
+             152:    135(int) Constant 1
+  165(bigColor3):     53(ptr) Variable UniformConstant
+             169:    16(bool) ConstantFalse
+             175:    135(int) Constant 42
+             189:    135(int) Constant 100
+             193:    6(float) Constant 1101004800
+             223:    135(int) Constant 120
+  298(bigColor4):     53(ptr) Variable UniformConstant
+         334(d5):     49(ptr) Variable UniformConstant
+  338(bigColor5):     53(ptr) Variable UniformConstant
+         355(d6):     49(ptr) Variable UniformConstant
+  367(bigColor6):     53(ptr) Variable UniformConstant
+         401(d7):     49(ptr) Variable UniformConstant
+             429:    6(float) Constant 0
+  434(bigColor7):     53(ptr) Variable UniformConstant
+         457(d8):     49(ptr) Variable UniformConstant
+             477:    6(float) Constant 1073741824
+         497(d9):     49(ptr) Variable UniformConstant
+             513:    6(float) Constant 1084227584
+        527(d10):     49(ptr) Variable UniformConstant
+        535(d11):     49(ptr) Variable UniformConstant
+        545(d12):     49(ptr) Variable UniformConstant
+             567:    6(float) Constant 1092616192
+  569(bigColor8):     53(ptr) Variable UniformConstant
+             595:             TypePointer Output 7(fvec4)
+596(gl_FragColor):    595(ptr) Variable Output
+        603(d14):     49(ptr) Variable UniformConstant
+        608(d15):     49(ptr) Variable UniformConstant
+        626(d16):     49(ptr) Variable UniformConstant
+        664(d17):     49(ptr) Variable UniformConstant
+        670(d18):     49(ptr) Variable UniformConstant
+        701(d13):     49(ptr) Variable UniformConstant
+        702(d19):     49(ptr) Variable UniformConstant
+        703(d20):     49(ptr) Variable UniformConstant
+        704(d21):     49(ptr) Variable UniformConstant
+        705(d22):     49(ptr) Variable UniformConstant
+        706(d23):     49(ptr) Variable UniformConstant
+        707(d24):     49(ptr) Variable UniformConstant
+        708(d25):     49(ptr) Variable UniformConstant
+        709(d26):     49(ptr) Variable UniformConstant
+        710(d27):     49(ptr) Variable UniformConstant
+        711(d28):     49(ptr) Variable UniformConstant
+        712(d29):     49(ptr) Variable UniformConstant
+        713(d30):     49(ptr) Variable UniformConstant
+        714(d31):     49(ptr) Variable UniformConstant
+        715(d32):     49(ptr) Variable UniformConstant
+        716(d33):     49(ptr) Variable UniformConstant
+        717(d34):     49(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+          137(i):    136(ptr) Variable Function
+          170(i):    136(ptr) Variable Function
+          184(i):    136(ptr) Variable Function
+          218(i):    136(ptr) Variable Function
+          239(i):    136(ptr) Variable Function
+          264(i):    136(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+                              Branch 13
+              13:             Label
+                              LoopMerge 14 13 None
+                              BranchConditional 17 15 14
+              15:               Label
+              21:     20(ptr)   AccessChain 9(color) 19
+              22:    6(float)   Load 21
+              24:    16(bool)   FOrdLessThan 22 23
+                                SelectionMerge 26 None
+                                BranchConditional 24 25 26
+              25:                 Label
+              28:    7(fvec4)     Load 9(color)
+              29:    7(fvec4)     FAdd 28 27
+                                  Store 9(color) 29
+                                  Branch 14
+              26:               Label
+              31:     20(ptr)   AccessChain 9(color) 19
+              32:    6(float)   Load 31
+              34:    16(bool)   FOrdLessThan 32 33
+                                SelectionMerge 36 None
+                                BranchConditional 34 35 36
+              35:                 Label
+              38:    7(fvec4)     Load 9(color)
+              39:    7(fvec4)     FAdd 38 37
+                                  Store 9(color) 39
+                                  Branch 14
+              36:               Label
+              41:    7(fvec4)   Load 9(color)
+              42:    7(fvec4)   FAdd 41 27
+                                Store 9(color) 42
+                                Branch 14
+              14:             Label
+                              Branch 44
+              44:             Label
+              47:     20(ptr) AccessChain 9(color) 19
+              48:    6(float) Load 47
+              51:    6(float) Load 50(d)
+              52:    16(bool) FOrdLessThan 48 51
+                              LoopMerge 45 44 None
+                              BranchConditional 52 46 45
+              46:               Label
+              55:    7(fvec4)   Load 54(bigColor)
+              56:    7(fvec4)   Load 9(color)
+              57:    7(fvec4)   FAdd 56 55
+                                Store 9(color) 57
+                                Branch 44
+              45:             Label
+                              Branch 58
+              58:             Label
+              62:     20(ptr) AccessChain 9(color) 61
+              63:    6(float) Load 62
+              64:    6(float) Load 50(d)
+              65:    16(bool) FOrdLessThan 63 64
+                              LoopMerge 59 58 None
+                              BranchConditional 65 60 59
+              60:               Label
+              67:    7(fvec4)   Load 66(bigColor1_1)
+              68:    7(fvec4)   Load 9(color)
+              69:    7(fvec4)   FAdd 68 67
+                                Store 9(color) 69
+              71:     20(ptr)   AccessChain 9(color) 70
+              72:    6(float)   Load 71
+              73:    6(float)   Load 50(d)
+              74:    16(bool)   FOrdLessThan 72 73
+                                SelectionMerge 76 None
+                                BranchConditional 74 75 76
+              75:                 Label
+                                  Branch 58
+              76:               Label
+              78:    7(fvec4)   Load 66(bigColor1_1)
+              79:    7(fvec4)   Load 9(color)
+              80:    7(fvec4)   FAdd 79 78
+                                Store 9(color) 80
+                                Branch 58
+              59:             Label
+                              Branch 81
+              81:             Label
+              84:     20(ptr) AccessChain 9(color) 19
+              85:    6(float) Load 84
+              87:    16(bool) FOrdLessThan 85 86
+                              LoopMerge 82 81 None
+                              BranchConditional 87 83 82
+              83:               Label
+              88:    7(fvec4)   Load 9(color)
+              90:    7(fvec4)   CompositeConstruct 89 89 89 89
+              91:    7(fvec4)   FAdd 88 90
+                                Store 9(color) 91
+                                Branch 81
+              82:             Label
+                              Branch 92
+              92:             Label
+              95:     20(ptr) AccessChain 9(color) 70
+              96:    6(float) Load 95
+              98:    6(float) Load 97(d2)
+              99:    16(bool) FOrdLessThan 96 98
+                              SelectionMerge 101 None
+                              BranchConditional 99 100 101
+             100:               Label
+             103:     20(ptr)   AccessChain 9(color) 102
+             104:    6(float)   Load 103
+             106:    6(float)   Load 105(d3)
+             107:    16(bool)   FOrdLessThan 104 106
+                                Branch 101
+             101:             Label
+             108:    16(bool) Phi 99 92 107 100
+                              LoopMerge 93 92 None
+                              BranchConditional 108 94 93
+              94:               Label
+             110:    7(fvec4)   Load 109(bigColor1_2)
+             111:    7(fvec4)   Load 9(color)
+             112:    7(fvec4)   FAdd 111 110
+                                Store 9(color) 112
+                                Branch 92
+              93:             Label
+                              Branch 113
+             113:             Label
+             116:     20(ptr) AccessChain 9(color) 61
+             117:    6(float) Load 116
+             118:    6(float) Load 105(d3)
+             119:    16(bool) FOrdLessThan 117 118
+                              LoopMerge 114 113 None
+                              BranchConditional 119 115 114
+             115:               Label
+             121:    7(fvec4)   Load 120(bigColor1_3)
+             122:    7(fvec4)   Load 9(color)
+             123:    7(fvec4)   FAdd 122 121
+                                Store 9(color) 123
+             124:     20(ptr)   AccessChain 9(color) 102
+             125:    6(float)   Load 124
+             127:    6(float)   Load 126(d4)
+             128:    16(bool)   FOrdLessThan 125 127
+                                SelectionMerge 130 None
+                                BranchConditional 128 129 130
+             129:                 Label
+                                  Branch 114
+             130:               Label
+             132:    7(fvec4)   Load 120(bigColor1_3)
+             133:    7(fvec4)   Load 9(color)
+             134:    7(fvec4)   FAdd 133 132
+                                Store 9(color) 134
+                                Branch 113
+             114:             Label
+                              Store 137(i) 138
+                              Branch 139
+             139:             Label
+             142:    135(int) Load 137(i)
+             145:    135(int) Load 144(Count)
+             146:    16(bool) SLessThan 142 145
+                              LoopMerge 140 139 None
+                              BranchConditional 146 141 140
+             141:               Label
+             148:    7(fvec4)   Load 147(bigColor2)
+             149:    7(fvec4)   Load 9(color)
+             150:    7(fvec4)   FAdd 149 148
+                                Store 9(color) 150
+             151:    135(int)   Load 137(i)
+             153:    135(int)   IAdd 151 152
+                                Store 137(i) 153
+                                Branch 139
+             140:             Label
+                              Branch 154
+             154:             Label
+             157:    16(bool) Phi 17 140 169 156
+                              LoopMerge 155 154 None
+                              Branch 158
+             158:             Label
+                              SelectionMerge 156 None
+                              BranchConditional 157 156 159
+             159:               Label
+             160:     20(ptr)   AccessChain 9(color) 19
+             161:    6(float)   Load 160
+             162:    6(float)   Load 97(d2)
+             163:    16(bool)   FOrdLessThan 161 162
+                                SelectionMerge 164 None
+                                BranchConditional 163 164 155
+             164:               Label
+                                Branch 156
+             156:             Label
+             166:    7(fvec4) Load 165(bigColor3)
+             167:    7(fvec4) Load 9(color)
+             168:    7(fvec4) FAdd 167 166
+                              Store 9(color) 168
+                              Branch 154
+             155:             Label
+                              Store 170(i) 138
+                              Branch 171
+             171:             Label
+             174:    135(int) Load 170(i)
+             176:    16(bool) SLessThan 174 175
+                              LoopMerge 172 171 None
+                              BranchConditional 176 173 172
+             173:               Label
+             177:    6(float)   Load 105(d3)
+             178:     20(ptr)   AccessChain 9(color) 61
+             179:    6(float)   Load 178
+             180:    6(float)   FAdd 179 177
+             181:     20(ptr)   AccessChain 9(color) 61
+                                Store 181 180
+             182:    135(int)   Load 170(i)
+             183:    135(int)   IAdd 182 152
+                                Store 170(i) 183
+                                Branch 171
+             172:             Label
+                              Store 184(i) 138
+                              Branch 185
+             185:             Label
+             188:    135(int) Load 184(i)
+             190:    16(bool) SLessThan 188 189
+                              LoopMerge 186 185 None
+                              BranchConditional 190 187 186
+             187:               Label
+             191:     20(ptr)   AccessChain 9(color) 61
+             192:    6(float)   Load 191
+             194:    16(bool)   FOrdLessThan 192 193
+                                SelectionMerge 196 None
+                                BranchConditional 194 195 200
+             195:                 Label
+             197:     20(ptr)     AccessChain 9(color) 19
+             198:    6(float)     Load 197
+             199:    6(float)     FAdd 198 89
+                                  Store 197 199
+                                  Branch 196
+             200:                 Label
+             201:     20(ptr)     AccessChain 9(color) 102
+             202:    6(float)     Load 201
+             203:    6(float)     FAdd 202 89
+                                  Store 201 203
+                                  Branch 196
+             196:               Label
+             204:     20(ptr)   AccessChain 9(color) 70
+             205:    6(float)   Load 204
+             206:    16(bool)   FOrdLessThan 205 193
+                                SelectionMerge 208 None
+                                BranchConditional 206 207 208
+             207:                 Label
+             209:     20(ptr)     AccessChain 9(color) 61
+             210:    6(float)     Load 209
+             211:     20(ptr)     AccessChain 9(color) 102
+             212:    6(float)     Load 211
+             213:    16(bool)     FOrdGreaterThan 210 212
+                                  SelectionMerge 215 None
+                                  BranchConditional 213 214 215
+             214:                   Label
+                                    Branch 215
+             215:                 Label
+                                  Branch 208
+             208:               Label
+             216:    135(int)   Load 184(i)
+             217:    135(int)   IAdd 216 152
+                                Store 184(i) 217
+                                Branch 185
+             186:             Label
+                              Store 218(i) 138
+                              Branch 219
+             219:             Label
+             222:    135(int) Load 218(i)
+             224:    16(bool) SLessThan 222 223
+                              LoopMerge 220 219 None
+                              BranchConditional 224 221 220
+             221:               Label
+             225:     20(ptr)   AccessChain 9(color) 61
+             226:    6(float)   Load 225
+             227:    16(bool)   FOrdLessThan 226 193
+                                SelectionMerge 229 None
+                                BranchConditional 227 228 233
+             228:                 Label
+             230:     20(ptr)     AccessChain 9(color) 19
+             231:    6(float)     Load 230
+             232:    6(float)     FAdd 231 89
+                                  Store 230 232
+                                  Branch 229
+             233:                 Label
+             234:     20(ptr)     AccessChain 9(color) 102
+             235:    6(float)     Load 234
+             236:    6(float)     FAdd 235 89
+                                  Store 234 236
+                                  Branch 229
+             229:               Label
+             237:    135(int)   Load 218(i)
+             238:    135(int)   IAdd 237 152
+                                Store 218(i) 238
+                                Branch 219
+             220:             Label
+                              Store 239(i) 138
+                              Branch 240
+             240:             Label
+             243:    135(int) Load 239(i)
+             244:    16(bool) SLessThan 243 175
+                              LoopMerge 241 240 None
+                              BranchConditional 244 242 241
+             242:               Label
+             245:    6(float)   Load 105(d3)
+             246:     20(ptr)   AccessChain 9(color) 61
+             247:    6(float)   Load 246
+             248:    6(float)   FAdd 247 245
+             249:     20(ptr)   AccessChain 9(color) 61
+                                Store 249 248
+             250:     20(ptr)   AccessChain 9(color) 19
+             251:    6(float)   Load 250
+             252:    6(float)   Load 126(d4)
+             253:    16(bool)   FOrdLessThan 251 252
+                                SelectionMerge 255 None
+                                BranchConditional 253 254 255
+             254:                 Label
+             256:    135(int)     Load 239(i)
+             257:    135(int)     IAdd 256 152
+                                  Store 239(i) 257
+                                  Branch 240
+             255:               Label
+             259:     20(ptr)   AccessChain 9(color) 70
+             260:    6(float)   Load 259
+             261:    6(float)   FAdd 260 89
+                                Store 259 261
+             262:    135(int)   Load 239(i)
+             263:    135(int)   IAdd 262 152
+                                Store 239(i) 263
+                                Branch 240
+             241:             Label
+                              Store 264(i) 138
+                              Branch 265
+             265:             Label
+             268:    135(int) Load 264(i)
+             269:    16(bool) SLessThan 268 175
+                              LoopMerge 266 265 None
+                              BranchConditional 269 267 266
+             267:               Label
+             270:    6(float)   Load 105(d3)
+             271:     20(ptr)   AccessChain 9(color) 61
+             272:    6(float)   Load 271
+             273:    6(float)   FAdd 272 270
+             274:     20(ptr)   AccessChain 9(color) 61
+                                Store 274 273
+             275:     20(ptr)   AccessChain 9(color) 19
+             276:    6(float)   Load 275
+             277:    6(float)   Load 126(d4)
+             278:    16(bool)   FOrdLessThan 276 277
+                                SelectionMerge 280 None
+                                BranchConditional 278 279 280
+             279:                 Label
+                                  Branch 266
+             280:               Label
+             282:     20(ptr)   AccessChain 9(color) 70
+             283:    6(float)   Load 282
+             284:    6(float)   FAdd 283 89
+                                Store 282 284
+             285:    135(int)   Load 264(i)
+             286:    135(int)   IAdd 285 152
+                                Store 264(i) 286
+                                Branch 265
+             266:             Label
+                              Branch 287
+             287:             Label
+             290:    16(bool) Phi 17 266 169 306 169 314
+                              LoopMerge 288 287 None
+                              Branch 291
+             291:             Label
+                              SelectionMerge 289 None
+                              BranchConditional 290 289 292
+             292:               Label
+             293:     20(ptr)   AccessChain 9(color) 61
+             294:    6(float)   Load 293
+             295:    6(float)   Load 126(d4)
+             296:    16(bool)   FOrdLessThan 294 295
+                                SelectionMerge 297 None
+                                BranchConditional 296 297 288
+             297:               Label
+                                Branch 289
+             289:             Label
+             299:    7(fvec4) Load 298(bigColor4)
+             300:    7(fvec4) Load 9(color)
+             301:    7(fvec4) FAdd 300 299
+                              Store 9(color) 301
+             302:     20(ptr) AccessChain 9(color) 19
+             303:    6(float) Load 302
+             304:    6(float) Load 126(d4)
+             305:    16(bool) FOrdLessThan 303 304
+                              SelectionMerge 307 None
+                              BranchConditional 305 306 307
+             306:               Label
+                                Branch 287
+             307:             Label
+             309:     20(ptr) AccessChain 9(color) 102
+             310:    6(float) Load 309
+             311:    6(float) Load 126(d4)
+             312:    16(bool) FOrdLessThan 310 311
+                              SelectionMerge 314 None
+                              BranchConditional 312 313 320
+             313:               Label
+             315:    6(float)   Load 126(d4)
+             316:     20(ptr)   AccessChain 9(color) 102
+             317:    6(float)   Load 316
+             318:    6(float)   FAdd 317 315
+             319:     20(ptr)   AccessChain 9(color) 102
+                                Store 319 318
+                                Branch 314
+             320:               Label
+             321:    6(float)   Load 126(d4)
+             322:     20(ptr)   AccessChain 9(color) 19
+             323:    6(float)   Load 322
+             324:    6(float)   FAdd 323 321
+             325:     20(ptr)   AccessChain 9(color) 19
+                                Store 325 324
+                                Branch 314
+             314:             Label
+                              Branch 287
+             288:             Label
+                              Branch 326
+             326:             Label
+             329:    16(bool) Phi 17 288 169 347
+                              LoopMerge 327 326 None
+                              Branch 330
+             330:             Label
+                              SelectionMerge 328 None
+                              BranchConditional 329 328 331
+             331:               Label
+             332:     20(ptr)   AccessChain 9(color) 19
+             333:    6(float)   Load 332
+             335:    6(float)   Load 334(d5)
+             336:    16(bool)   FOrdLessThan 333 335
+                                SelectionMerge 337 None
+                                BranchConditional 336 337 327
+             337:               Label
+                                Branch 328
+             328:             Label
+             339:    7(fvec4) Load 338(bigColor5)
+             340:    7(fvec4) Load 9(color)
+             341:    7(fvec4) FAdd 340 339
+                              Store 9(color) 341
+             342:     20(ptr) AccessChain 9(color) 102
+             343:    6(float) Load 342
+             344:    6(float) Load 334(d5)
+             345:    16(bool) FOrdLessThan 343 344
+                              SelectionMerge 347 None
+                              BranchConditional 345 346 347
+             346:               Label
+             348:    6(float)   Load 334(d5)
+             349:     20(ptr)   AccessChain 9(color) 102
+             350:    6(float)   Load 349
+             351:    6(float)   FAdd 350 348
+             352:     20(ptr)   AccessChain 9(color) 102
+                                Store 352 351
+                                Branch 347
+             347:             Label
+                              Branch 326
+             327:             Label
+             353:     20(ptr) AccessChain 9(color) 19
+             354:    6(float) Load 353
+             356:    6(float) Load 355(d6)
+             357:    16(bool) FOrdLessThan 354 356
+                              SelectionMerge 359 None
+                              BranchConditional 357 358 371
+             358:               Label
+                                Branch 360
+             360:               Label
+             363:     20(ptr)   AccessChain 9(color) 102
+             364:    6(float)   Load 363
+             365:    6(float)   Load 355(d6)
+             366:    16(bool)   FOrdLessThan 364 365
+                                LoopMerge 361 360 None
+                                BranchConditional 366 362 361
+             362:                 Label
+             368:    7(fvec4)     Load 367(bigColor6)
+             369:    7(fvec4)     Load 9(color)
+             370:    7(fvec4)     FAdd 369 368
+                                  Store 9(color) 370
+                                  Branch 360
+             361:               Label
+                                Branch 359
+             371:               Label
+                                Branch 372
+             372:               Label
+             375:     20(ptr)   AccessChain 9(color) 61
+             376:    6(float)   Load 375
+             377:    6(float)   Load 355(d6)
+             378:    16(bool)   FOrdLessThan 376 377
+                                LoopMerge 373 372 None
+                                BranchConditional 378 374 373
+             374:                 Label
+             379:     49(ptr)     AccessChain 367(bigColor6) 61
+             380:    6(float)     Load 379
+             381:     20(ptr)     AccessChain 9(color) 61
+             382:    6(float)     Load 381
+             383:    6(float)     FAdd 382 380
+             384:     20(ptr)     AccessChain 9(color) 61
+                                  Store 384 383
+                                  Branch 372
+             373:               Label
+                                Branch 359
+             359:             Label
+             385:     20(ptr) AccessChain 9(color) 19
+             386:    6(float) Load 385
+             387:    6(float) Load 355(d6)
+             388:    16(bool) FOrdLessThan 386 387
+                              SelectionMerge 390 None
+                              BranchConditional 388 389 407
+             389:               Label
+                                Branch 391
+             391:               Label
+             394:     20(ptr)   AccessChain 9(color) 102
+             395:    6(float)   Load 394
+             396:    6(float)   Load 355(d6)
+             397:    16(bool)   FOrdLessThan 395 396
+                                LoopMerge 392 391 None
+                                BranchConditional 397 393 392
+             393:                 Label
+             398:    7(fvec4)     Load 367(bigColor6)
+             399:    7(fvec4)     Load 9(color)
+             400:    7(fvec4)     FAdd 399 398
+                                  Store 9(color) 400
+             402:    6(float)     Load 401(d7)
+             403:    16(bool)     FOrdLessThan 402 89
+                                  SelectionMerge 405 None
+                                  BranchConditional 403 404 405
+             404:                   Label
+                                    Branch 392
+             405:                 Label
+                                  Branch 391
+             392:               Label
+                                Branch 390
+             407:               Label
+                                Branch 408
+             408:               Label
+             411:     20(ptr)   AccessChain 9(color) 61
+             412:    6(float)   Load 411
+             413:    6(float)   Load 355(d6)
+             414:    16(bool)   FOrdLessThan 412 413
+                                LoopMerge 409 408 None
+                                BranchConditional 414 410 409
+             410:                 Label
+             415:     49(ptr)     AccessChain 367(bigColor6) 61
+             416:    6(float)     Load 415
+             417:     20(ptr)     AccessChain 9(color) 61
+             418:    6(float)     Load 417
+             419:    6(float)     FAdd 418 416
+             420:     20(ptr)     AccessChain 9(color) 61
+                                  Store 420 419
+                                  Branch 408
+             409:               Label
+                                Branch 390
+             390:             Label
+                              Branch 421
+             421:             Label
+             424:    16(bool) Phi 17 390 169 441
+                              LoopMerge 422 421 None
+                              Branch 425
+             425:             Label
+                              SelectionMerge 423 None
+                              BranchConditional 424 423 426
+             426:               Label
+                                SelectionMerge 427 None
+                                BranchConditional 17 427 422
+             427:               Label
+                                Branch 423
+             423:             Label
+             428:    6(float) Load 401(d7)
+             430:    16(bool) FOrdLessThan 428 429
+                              SelectionMerge 432 None
+                              BranchConditional 430 431 432
+             431:               Label
+                                Branch 422
+             432:             Label
+             435:    7(fvec4) Load 434(bigColor7)
+             436:    7(fvec4) Load 9(color)
+             437:    7(fvec4) FAdd 436 435
+                              Store 9(color) 437
+             438:    6(float) Load 401(d7)
+             439:    16(bool) FOrdLessThan 438 89
+                              SelectionMerge 441 None
+                              BranchConditional 439 440 441
+             440:               Label
+             442:     20(ptr)   AccessChain 9(color) 61
+             443:    6(float)   Load 442
+             444:    6(float)   FAdd 443 89
+                                Store 442 444
+                                Branch 422
+             441:             Label
+             446:    7(fvec4) Load 11(BaseColor)
+             447:    7(fvec4) Load 9(color)
+             448:    7(fvec4) FAdd 447 446
+                              Store 9(color) 448
+                              Branch 421
+             422:             Label
+                              Branch 449
+             449:             Label
+             452:    16(bool) Phi 17 422 169 472
+                              LoopMerge 450 449 None
+                              Branch 453
+             453:             Label
+                              SelectionMerge 451 None
+                              BranchConditional 452 451 454
+             454:               Label
+             455:     20(ptr)   AccessChain 9(color) 61
+             456:    6(float)   Load 455
+             458:    6(float)   Load 457(d8)
+             459:    16(bool)   FOrdLessThan 456 458
+                                SelectionMerge 460 None
+                                BranchConditional 459 460 450
+             460:               Label
+                                Branch 451
+             451:             Label
+             461:    6(float) Load 457(d8)
+             462:    16(bool) FOrdLessThan 461 429
+                              SelectionMerge 464 None
+                              BranchConditional 462 463 464
+             463:               Label
+                                Branch 450
+             464:             Label
+             466:    7(fvec4) Load 434(bigColor7)
+             467:    7(fvec4) Load 9(color)
+             468:    7(fvec4) FAdd 467 466
+                              Store 9(color) 468
+             469:    6(float) Load 457(d8)
+             470:    16(bool) FOrdLessThan 469 89
+                              SelectionMerge 472 None
+                              BranchConditional 470 471 472
+             471:               Label
+             473:     20(ptr)   AccessChain 9(color) 61
+             474:    6(float)   Load 473
+             475:    6(float)   FAdd 474 89
+                                Store 473 475
+             476:    6(float)   Load 457(d8)
+             478:    16(bool)   FOrdLessThan 476 477
+                                SelectionMerge 480 None
+                                BranchConditional 478 479 484
+             479:                 Label
+             481:     20(ptr)     AccessChain 9(color) 102
+             482:    6(float)     Load 481
+             483:    6(float)     FAdd 482 89
+                                  Store 481 483
+                                  Branch 480
+             484:                 Label
+             485:     20(ptr)     AccessChain 9(color) 19
+             486:    6(float)     Load 485
+             487:    6(float)     FAdd 486 89
+                                  Store 485 487
+                                  Branch 480
+             480:               Label
+                                Branch 450
+             472:             Label
+             489:    7(fvec4) Load 11(BaseColor)
+             490:    7(fvec4) Load 9(color)
+             491:    7(fvec4) FAdd 490 489
+                              Store 9(color) 491
+                              Branch 449
+             450:             Label
+                              Branch 492
+             492:             Label
+             495:     20(ptr) AccessChain 9(color) 70
+             496:    6(float) Load 495
+             498:    6(float) Load 497(d9)
+             499:    16(bool) FOrdLessThan 496 498
+                              LoopMerge 493 492 None
+                              BranchConditional 499 494 493
+             494:               Label
+             500:    6(float)   Load 497(d9)
+             501:    6(float)   Load 457(d8)
+             502:    16(bool)   FOrdGreaterThan 500 501
+                                SelectionMerge 504 None
+                                BranchConditional 502 503 504
+             503:                 Label
+             505:     20(ptr)     AccessChain 9(color) 19
+             506:    6(float)     Load 505
+             507:    6(float)     Load 401(d7)
+             508:    16(bool)     FOrdLessThanEqual 506 507
+                                  SelectionMerge 510 None
+                                  BranchConditional 508 509 510
+             509:                   Label
+             511:     20(ptr)       AccessChain 9(color) 61
+             512:    6(float)       Load 511
+             514:    16(bool)       FOrdEqual 512 513
+                                    SelectionMerge 516 None
+                                    BranchConditional 514 515 520
+             515:                     Label
+             517:     20(ptr)         AccessChain 9(color) 70
+             518:    6(float)         Load 517
+             519:    6(float)         FAdd 518 89
+                                      Store 517 519
+                                      Branch 516
+             520:                     Label
+                                      Branch 493
+             516:                   Label
+                                    Branch 510
+             510:                 Label
+                                  Branch 504
+             504:               Label
+                                Branch 492
+             493:             Label
+                              Branch 522
+             522:             Label
+             525:     20(ptr) AccessChain 9(color) 61
+             526:    6(float) Load 525
+             528:    6(float) Load 527(d10)
+             529:    16(bool) FOrdLessThan 526 528
+                              LoopMerge 523 522 None
+                              BranchConditional 529 524 523
+             524:               Label
+             530:     20(ptr)   AccessChain 9(color) 102
+             531:    6(float)   Load 530
+             532:    6(float)   FAdd 531 89
+                                Store 530 532
+             533:     20(ptr)   AccessChain 9(color) 102
+             534:    6(float)   Load 533
+             536:    6(float)   Load 535(d11)
+             537:    16(bool)   FOrdLessThan 534 536
+                                SelectionMerge 539 None
+                                BranchConditional 537 538 539
+             538:                 Label
+             540:     20(ptr)     AccessChain 9(color) 61
+             541:    6(float)     Load 540
+             542:    6(float)     FAdd 541 89
+                                  Store 540 542
+             543:     20(ptr)     AccessChain 9(color) 70
+             544:    6(float)     Load 543
+             546:    6(float)     Load 545(d12)
+             547:    16(bool)     FOrdLessThan 544 546
+                                  SelectionMerge 549 None
+                                  BranchConditional 547 548 553
+             548:                   Label
+             550:     20(ptr)       AccessChain 9(color) 70
+             551:    6(float)       Load 550
+             552:    6(float)       FAdd 551 89
+                                    Store 550 552
+                                    Branch 549
+             553:                   Label
+             554:     20(ptr)       AccessChain 9(color) 19
+             555:    6(float)       Load 554
+             556:    6(float)       FAdd 555 89
+                                    Store 554 556
+                                    Branch 549
+             549:                 Label
+                                  Branch 522
+             539:               Label
+             558:    7(fvec4)   Load 9(color)
+             559:    7(fvec4)   CompositeConstruct 89 89 89 89
+             560:    7(fvec4)   FAdd 558 559
+                                Store 9(color) 560
+                                Branch 523
+             523:             Label
+                              Branch 562
+             562:             Label
+             565:     20(ptr) AccessChain 9(color) 19
+             566:    6(float) Load 565
+             568:    16(bool) FOrdLessThan 566 567
+                              LoopMerge 563 562 None
+                              BranchConditional 568 564 563
+             564:               Label
+             570:    7(fvec4)   Load 569(bigColor8)
+             571:    7(fvec4)   Load 9(color)
+             572:    7(fvec4)   FAdd 571 570
+                                Store 9(color) 572
+             573:     20(ptr)   AccessChain 9(color) 61
+             574:    6(float)   Load 573
+             575:    6(float)   Load 457(d8)
+             576:    16(bool)   FOrdLessThan 574 575
+                                SelectionMerge 578 None
+                                BranchConditional 576 577 578
+             577:                 Label
+             579:     20(ptr)     AccessChain 9(color) 70
+             580:    6(float)     Load 579
+             581:    6(float)     Load 355(d6)
+             582:    16(bool)     FOrdLessThan 580 581
+                                  SelectionMerge 584 None
+                                  BranchConditional 582 583 584
+             583:                   Label
+                                    Branch 562
+             584:                 Label
+                                  Branch 578
+             578:               Label
+             586:     49(ptr)   AccessChain 569(bigColor8) 19
+             587:    6(float)   Load 586
+             588:     20(ptr)   AccessChain 9(color) 102
+             589:    6(float)   Load 588
+             590:    6(float)   FAdd 589 587
+             591:     20(ptr)   AccessChain 9(color) 102
+                                Store 591 590
+                                Branch 562
+             563:             Label
+             592:    7(fvec4) Load 9(color)
+             593:    7(fvec4) CompositeConstruct 89 89 89 89
+             594:    7(fvec4) FAdd 592 593
+                              Store 9(color) 594
+             597:    7(fvec4) Load 9(color)
+                              Store 596(gl_FragColor) 597
+                              Branch 598
+             598:             Label
+             601:     20(ptr) AccessChain 9(color) 19
+             602:    6(float) Load 601
+             604:    6(float) Load 603(d14)
+             605:    16(bool) FOrdLessThan 602 604
+                              LoopMerge 599 598 None
+                              BranchConditional 605 600 599
+             600:               Label
+             606:     20(ptr)   AccessChain 9(color) 102
+             607:    6(float)   Load 606
+             609:    6(float)   Load 608(d15)
+             610:    16(bool)   FOrdLessThan 607 609
+                                SelectionMerge 612 None
+                                BranchConditional 610 611 614
+             611:                 Label
+                                  Return
+             614:                 Label
+             615:    7(fvec4)     Load 9(color)
+             616:    7(fvec4)     CompositeConstruct 89 89 89 89
+             617:    7(fvec4)     FAdd 615 616
+                                  Store 9(color) 617
+                                  Branch 612
+             612:               Label
+                                Branch 598
+             599:             Label
+             618:    7(fvec4) Load 9(color)
+             619:    7(fvec4) CompositeConstruct 89 89 89 89
+             620:    7(fvec4) FAdd 618 619
+                              Store 9(color) 620
+                              Branch 621
+             621:             Label
+             624:     20(ptr) AccessChain 9(color) 70
+             625:    6(float) Load 624
+             627:    6(float) Load 626(d16)
+             628:    16(bool) FOrdLessThan 625 627
+                              LoopMerge 622 621 None
+                              BranchConditional 628 623 622
+             623:               Label
+             629:     20(ptr)   AccessChain 9(color) 70
+             630:    6(float)   Load 629
+             631:    6(float)   FAdd 630 89
+                                Store 629 631
+                                Branch 621
+             622:             Label
+                              Branch 632
+             632:             Label
+             635:     20(ptr) AccessChain 9(color) 70
+             636:    6(float) Load 635
+             637:    6(float) Load 97(d2)
+             638:    16(bool) FOrdLessThan 636 637
+                              SelectionMerge 640 None
+                              BranchConditional 638 639 640
+             639:               Label
+             641:     20(ptr)   AccessChain 9(color) 102
+             642:    6(float)   Load 641
+             643:    6(float)   Load 105(d3)
+             644:    16(bool)   FOrdLessThan 642 643
+                                Branch 640
+             640:             Label
+             645:    16(bool) Phi 638 632 644 639
+                              LoopMerge 633 632 None
+                              BranchConditional 645 634 633
+             634:               Label
+             646:    7(fvec4)   Load 109(bigColor1_2)
+             647:    7(fvec4)   Load 9(color)
+             648:    7(fvec4)   FAdd 647 646
+                                Store 9(color) 648
+             649:     20(ptr)   AccessChain 9(color) 61
+             650:    6(float)   Load 649
+             651:    6(float)   Load 105(d3)
+             652:    16(bool)   FOrdLessThan 650 651
+                                SelectionMerge 654 None
+                                BranchConditional 652 653 654
+             653:                 Label
+                                  Return
+             654:               Label
+                                Branch 632
+             633:             Label
+                              Branch 656
+             656:             Label
+             659:    16(bool) Phi 17 633 169 674
+                              LoopMerge 657 656 None
+                              Branch 660
+             660:             Label
+                              SelectionMerge 658 None
+                              BranchConditional 659 658 661
+             661:               Label
+             662:     20(ptr)   AccessChain 9(color) 19
+             663:    6(float)   Load 662
+             665:    6(float)   Load 664(d17)
+             666:    16(bool)   FOrdLessThan 663 665
+                                SelectionMerge 667 None
+                                BranchConditional 666 667 657
+             667:               Label
+                                Branch 658
+             658:             Label
+             668:     20(ptr) AccessChain 9(color) 102
+             669:    6(float) Load 668
+             671:    6(float) Load 670(d18)
+             672:    16(bool) FOrdLessThan 669 671
+                              SelectionMerge 674 None
+                              BranchConditional 672 673 674
+             673:               Label
+                                Return
+             674:             Label
+             676:    7(fvec4) Load 9(color)
+             677:    7(fvec4) CompositeConstruct 89 89 89 89
+             678:    7(fvec4) FAdd 676 677
+                              Store 9(color) 678
+                              Branch 656
+             657:             Label
+                              Branch 679
+             679:             Label
+             682:     20(ptr) AccessChain 9(color) 102
+             683:    6(float) Load 682
+             684:    6(float) Load 626(d16)
+             685:    16(bool) FOrdLessThan 683 684
+                              LoopMerge 680 679 None
+                              BranchConditional 685 681 680
+             681:               Label
+             686:     20(ptr)   AccessChain 9(color) 70
+             687:    6(float)   Load 686
+             688:    6(float)   Load 626(d16)
+             689:    16(bool)   FOrdLessThan 687 688
+                                SelectionMerge 691 None
+                                BranchConditional 689 690 693
+             690:                 Label
+                                  Kill
+             693:                 Label
+             694:    7(fvec4)     Load 9(color)
+             695:    7(fvec4)     CompositeConstruct 89 89 89 89
+             696:    7(fvec4)     FAdd 694 695
+                                  Store 9(color) 696
+                                  Branch 691
+             691:               Label
+                                Branch 679
+             680:             Label
+             697:    7(fvec4) Load 9(color)
+             698:    7(fvec4) CompositeConstruct 89 89 89 89
+             699:    7(fvec4) FAdd 697 698
+                              Store 9(color) 699
+             700:    7(fvec4) Load 9(color)
+                              Store 596(gl_FragColor) 700
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out
index 314a969..082095f 100755
--- a/Test/baseResults/spv.loopsArtificial.frag.out
+++ b/Test/baseResults/spv.loopsArtificial.frag.out
@@ -1,308 +1,308 @@
-spv.loopsArtificial.frag

-WARNING: 0:14: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 191

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 11

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 27  "d4"

-                              Name 32  "bigColor4"

-                              Name 84  "d13"

-                              Name 144  "gl_FragColor"

-                              Name 146  "bigColor"

-                              Name 147  "bigColor1_1"

-                              Name 148  "bigColor1_2"

-                              Name 149  "bigColor1_3"

-                              Name 150  "bigColor2"

-                              Name 151  "bigColor3"

-                              Name 152  "bigColor5"

-                              Name 153  "bigColor6"

-                              Name 154  "bigColor7"

-                              Name 155  "bigColor8"

-                              Name 156  "d"

-                              Name 157  "d2"

-                              Name 158  "d3"

-                              Name 159  "d5"

-                              Name 160  "d6"

-                              Name 161  "d7"

-                              Name 162  "d8"

-                              Name 163  "d9"

-                              Name 164  "d10"

-                              Name 165  "d11"

-                              Name 166  "d12"

-                              Name 167  "d14"

-                              Name 168  "d15"

-                              Name 169  "d16"

-                              Name 170  "d17"

-                              Name 171  "d18"

-                              Name 172  "d19"

-                              Name 173  "d20"

-                              Name 174  "d21"

-                              Name 175  "d22"

-                              Name 176  "d23"

-                              Name 177  "d24"

-                              Name 178  "d25"

-                              Name 179  "d26"

-                              Name 180  "d27"

-                              Name 181  "d28"

-                              Name 182  "d29"

-                              Name 183  "d30"

-                              Name 184  "d31"

-                              Name 185  "d32"

-                              Name 186  "d33"

-                              Name 187  "d34"

-                              Name 190  "Count"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              17:             TypeBool

-              18:    17(bool) ConstantTrue

-              21:             TypeInt 32 0

-              22:     21(int) Constant 2

-              23:             TypePointer Function 6(float)

-              26:             TypePointer UniformConstant 6(float)

-          27(d4):     26(ptr) Variable UniformConstant

-              31:             TypePointer UniformConstant 7(fvec4)

-   32(bigColor4):     31(ptr) Variable UniformConstant

-              36:     21(int) Constant 0

-              43:    6(float) Constant 1073741824

-              56:    6(float) Constant 1065353216

-              58:    17(bool) ConstantFalse

-              60:     21(int) Constant 1

-              81:     21(int) Constant 3

-         84(d13):     26(ptr) Variable UniformConstant

-             143:             TypePointer Output 7(fvec4)

-144(gl_FragColor):    143(ptr) Variable Output

-   146(bigColor):     31(ptr) Variable UniformConstant

-147(bigColor1_1):     31(ptr) Variable UniformConstant

-148(bigColor1_2):     31(ptr) Variable UniformConstant

-149(bigColor1_3):     31(ptr) Variable UniformConstant

-  150(bigColor2):     31(ptr) Variable UniformConstant

-  151(bigColor3):     31(ptr) Variable UniformConstant

-  152(bigColor5):     31(ptr) Variable UniformConstant

-  153(bigColor6):     31(ptr) Variable UniformConstant

-  154(bigColor7):     31(ptr) Variable UniformConstant

-  155(bigColor8):     31(ptr) Variable UniformConstant

-          156(d):     26(ptr) Variable UniformConstant

-         157(d2):     26(ptr) Variable UniformConstant

-         158(d3):     26(ptr) Variable UniformConstant

-         159(d5):     26(ptr) Variable UniformConstant

-         160(d6):     26(ptr) Variable UniformConstant

-         161(d7):     26(ptr) Variable UniformConstant

-         162(d8):     26(ptr) Variable UniformConstant

-         163(d9):     26(ptr) Variable UniformConstant

-        164(d10):     26(ptr) Variable UniformConstant

-        165(d11):     26(ptr) Variable UniformConstant

-        166(d12):     26(ptr) Variable UniformConstant

-        167(d14):     26(ptr) Variable UniformConstant

-        168(d15):     26(ptr) Variable UniformConstant

-        169(d16):     26(ptr) Variable UniformConstant

-        170(d17):     26(ptr) Variable UniformConstant

-        171(d18):     26(ptr) Variable UniformConstant

-        172(d19):     26(ptr) Variable UniformConstant

-        173(d20):     26(ptr) Variable UniformConstant

-        174(d21):     26(ptr) Variable UniformConstant

-        175(d22):     26(ptr) Variable UniformConstant

-        176(d23):     26(ptr) Variable UniformConstant

-        177(d24):     26(ptr) Variable UniformConstant

-        178(d25):     26(ptr) Variable UniformConstant

-        179(d26):     26(ptr) Variable UniformConstant

-        180(d27):     26(ptr) Variable UniformConstant

-        181(d28):     26(ptr) Variable UniformConstant

-        182(d29):     26(ptr) Variable UniformConstant

-        183(d30):     26(ptr) Variable UniformConstant

-        184(d31):     26(ptr) Variable UniformConstant

-        185(d32):     26(ptr) Variable UniformConstant

-        186(d33):     26(ptr) Variable UniformConstant

-        187(d34):     26(ptr) Variable UniformConstant

-             188:             TypeInt 32 1

-             189:             TypePointer UniformConstant 188(int)

-      190(Count):    189(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-                              Branch 13

-              13:             Label

-              16:    17(bool) Phi 18 5 58 52 58 66

-                              LoopMerge 14 13 None

-                              Branch 19

-              19:             Label

-                              SelectionMerge 15 None

-                              BranchConditional 16 15 20

-              20:               Label

-              24:     23(ptr)   AccessChain 9(color) 22

-              25:    6(float)   Load 24

-              28:    6(float)   Load 27(d4)

-              29:    17(bool)   FOrdLessThan 25 28

-                                SelectionMerge 30 None

-                                BranchConditional 29 30 14

-              30:               Label

-                                Branch 15

-              15:             Label

-              33:    7(fvec4) Load 32(bigColor4)

-              34:    7(fvec4) Load 9(color)

-              35:    7(fvec4) FAdd 34 33

-                              Store 9(color) 35

-              37:     23(ptr) AccessChain 9(color) 36

-              38:    6(float) Load 37

-              39:    6(float) Load 27(d4)

-              40:    17(bool) FOrdLessThan 38 39

-                              SelectionMerge 42 None

-                              BranchConditional 40 41 42

-              41:               Label

-              44:     23(ptr)   AccessChain 9(color) 22

-              45:    6(float)   Load 44

-              46:    6(float)   FAdd 45 43

-              47:     23(ptr)   AccessChain 9(color) 22

-                                Store 47 46

-              48:     23(ptr)   AccessChain 9(color) 22

-              49:    6(float)   Load 48

-              50:    6(float)   Load 27(d4)

-              51:    17(bool)   FOrdLessThan 49 50

-                                SelectionMerge 53 None

-                                BranchConditional 51 52 53

-              52:                 Label

-              54:     23(ptr)     AccessChain 9(color) 36

-              55:    6(float)     Load 54

-              57:    6(float)     FAdd 55 56

-                                  Store 54 57

-                                  Branch 13

-              53:               Label

-                                Branch 42

-              42:             Label

-              61:     23(ptr) AccessChain 9(color) 60

-              62:    6(float) Load 61

-              63:    6(float) Load 27(d4)

-              64:    17(bool) FOrdLessThan 62 63

-                              SelectionMerge 66 None

-                              BranchConditional 64 65 72

-              65:               Label

-              67:    6(float)   Load 27(d4)

-              68:     23(ptr)   AccessChain 9(color) 60

-              69:    6(float)   Load 68

-              70:    6(float)   FAdd 69 67

-              71:     23(ptr)   AccessChain 9(color) 60

-                                Store 71 70

-                                Branch 66

-              72:               Label

-              73:    6(float)   Load 27(d4)

-              74:     23(ptr)   AccessChain 9(color) 36

-              75:    6(float)   Load 74

-              76:    6(float)   FAdd 75 73

-              77:     23(ptr)   AccessChain 9(color) 36

-                                Store 77 76

-                                Branch 66

-              66:             Label

-                              Branch 13

-              14:             Label

-                              Branch 78

-              78:             Label

-              82:     23(ptr) AccessChain 9(color) 81

-              83:    6(float) Load 82

-              85:    6(float) Load 84(d13)

-              86:    17(bool) FOrdLessThan 83 85

-                              LoopMerge 79 78 None

-                              BranchConditional 86 80 79

-              80:               Label

-              87:     23(ptr)   AccessChain 9(color) 22

-              88:    6(float)   Load 87

-              89:    6(float)   Load 84(d13)

-              90:    17(bool)   FOrdLessThan 88 89

-                                SelectionMerge 92 None

-                                BranchConditional 90 91 96

-              91:                 Label

-              93:    7(fvec4)     Load 9(color)

-              94:    7(fvec4)     CompositeConstruct 56 56 56 56

-              95:    7(fvec4)     FAdd 93 94

-                                  Store 9(color) 95

-                                  Branch 92

-              96:                 Label

-              97:    7(fvec4)     Load 9(color)

-              98:    7(fvec4)     CompositeConstruct 56 56 56 56

-              99:    7(fvec4)     FSub 97 98

-                                  Store 9(color) 99

-                                  Branch 92

-              92:               Label

-             100:    7(fvec4)   Load 32(bigColor4)

-             101:    7(fvec4)   Load 9(color)

-             102:    7(fvec4)   FAdd 101 100

-                                Store 9(color) 102

-             103:     23(ptr)   AccessChain 9(color) 36

-             104:    6(float)   Load 103

-             105:    6(float)   Load 27(d4)

-             106:    17(bool)   FOrdLessThan 104 105

-                                SelectionMerge 108 None

-                                BranchConditional 106 107 108

-             107:                 Label

-             109:     23(ptr)     AccessChain 9(color) 22

-             110:    6(float)     Load 109

-             111:    6(float)     FAdd 110 43

-             112:     23(ptr)     AccessChain 9(color) 22

-                                  Store 112 111

-             113:     23(ptr)     AccessChain 9(color) 22

-             114:    6(float)     Load 113

-             115:    6(float)     Load 27(d4)

-             116:    17(bool)     FOrdLessThan 114 115

-                                  SelectionMerge 118 None

-                                  BranchConditional 116 117 118

-             117:                   Label

-             119:     23(ptr)       AccessChain 9(color) 36

-             120:    6(float)       Load 119

-             121:    6(float)       FAdd 120 56

-                                    Store 119 121

-                                    Branch 78

-             118:                 Label

-                                  Branch 108

-             108:               Label

-             123:     23(ptr)   AccessChain 9(color) 60

-             124:    6(float)   Load 123

-             125:    6(float)   Load 27(d4)

-             126:    17(bool)   FOrdLessThan 124 125

-                                SelectionMerge 128 None

-                                BranchConditional 126 127 134

-             127:                 Label

-             129:    6(float)     Load 27(d4)

-             130:     23(ptr)     AccessChain 9(color) 60

-             131:    6(float)     Load 130

-             132:    6(float)     FAdd 131 129

-             133:     23(ptr)     AccessChain 9(color) 60

-                                  Store 133 132

-                                  Branch 128

-             134:                 Label

-             135:    6(float)     Load 27(d4)

-             136:     23(ptr)     AccessChain 9(color) 36

-             137:    6(float)     Load 136

-             138:    6(float)     FAdd 137 135

-             139:     23(ptr)     AccessChain 9(color) 36

-                                  Store 139 138

-                                  Branch 128

-             128:               Label

-                                Branch 78

-              79:             Label

-             140:    7(fvec4) Load 9(color)

-             141:    7(fvec4) CompositeConstruct 56 56 56 56

-             142:    7(fvec4) FAdd 140 141

-                              Store 9(color) 142

-             145:    7(fvec4) Load 9(color)

-                              Store 144(gl_FragColor) 145

-                              Return

-                              FunctionEnd

+spv.loopsArtificial.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 191
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 11
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 27  "d4"
+                              Name 32  "bigColor4"
+                              Name 84  "d13"
+                              Name 144  "gl_FragColor"
+                              Name 146  "bigColor"
+                              Name 147  "bigColor1_1"
+                              Name 148  "bigColor1_2"
+                              Name 149  "bigColor1_3"
+                              Name 150  "bigColor2"
+                              Name 151  "bigColor3"
+                              Name 152  "bigColor5"
+                              Name 153  "bigColor6"
+                              Name 154  "bigColor7"
+                              Name 155  "bigColor8"
+                              Name 156  "d"
+                              Name 157  "d2"
+                              Name 158  "d3"
+                              Name 159  "d5"
+                              Name 160  "d6"
+                              Name 161  "d7"
+                              Name 162  "d8"
+                              Name 163  "d9"
+                              Name 164  "d10"
+                              Name 165  "d11"
+                              Name 166  "d12"
+                              Name 167  "d14"
+                              Name 168  "d15"
+                              Name 169  "d16"
+                              Name 170  "d17"
+                              Name 171  "d18"
+                              Name 172  "d19"
+                              Name 173  "d20"
+                              Name 174  "d21"
+                              Name 175  "d22"
+                              Name 176  "d23"
+                              Name 177  "d24"
+                              Name 178  "d25"
+                              Name 179  "d26"
+                              Name 180  "d27"
+                              Name 181  "d28"
+                              Name 182  "d29"
+                              Name 183  "d30"
+                              Name 184  "d31"
+                              Name 185  "d32"
+                              Name 186  "d33"
+                              Name 187  "d34"
+                              Name 190  "Count"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              17:             TypeBool
+              18:    17(bool) ConstantTrue
+              21:             TypeInt 32 0
+              22:     21(int) Constant 2
+              23:             TypePointer Function 6(float)
+              26:             TypePointer UniformConstant 6(float)
+          27(d4):     26(ptr) Variable UniformConstant
+              31:             TypePointer UniformConstant 7(fvec4)
+   32(bigColor4):     31(ptr) Variable UniformConstant
+              36:     21(int) Constant 0
+              43:    6(float) Constant 1073741824
+              56:    6(float) Constant 1065353216
+              58:    17(bool) ConstantFalse
+              60:     21(int) Constant 1
+              81:     21(int) Constant 3
+         84(d13):     26(ptr) Variable UniformConstant
+             143:             TypePointer Output 7(fvec4)
+144(gl_FragColor):    143(ptr) Variable Output
+   146(bigColor):     31(ptr) Variable UniformConstant
+147(bigColor1_1):     31(ptr) Variable UniformConstant
+148(bigColor1_2):     31(ptr) Variable UniformConstant
+149(bigColor1_3):     31(ptr) Variable UniformConstant
+  150(bigColor2):     31(ptr) Variable UniformConstant
+  151(bigColor3):     31(ptr) Variable UniformConstant
+  152(bigColor5):     31(ptr) Variable UniformConstant
+  153(bigColor6):     31(ptr) Variable UniformConstant
+  154(bigColor7):     31(ptr) Variable UniformConstant
+  155(bigColor8):     31(ptr) Variable UniformConstant
+          156(d):     26(ptr) Variable UniformConstant
+         157(d2):     26(ptr) Variable UniformConstant
+         158(d3):     26(ptr) Variable UniformConstant
+         159(d5):     26(ptr) Variable UniformConstant
+         160(d6):     26(ptr) Variable UniformConstant
+         161(d7):     26(ptr) Variable UniformConstant
+         162(d8):     26(ptr) Variable UniformConstant
+         163(d9):     26(ptr) Variable UniformConstant
+        164(d10):     26(ptr) Variable UniformConstant
+        165(d11):     26(ptr) Variable UniformConstant
+        166(d12):     26(ptr) Variable UniformConstant
+        167(d14):     26(ptr) Variable UniformConstant
+        168(d15):     26(ptr) Variable UniformConstant
+        169(d16):     26(ptr) Variable UniformConstant
+        170(d17):     26(ptr) Variable UniformConstant
+        171(d18):     26(ptr) Variable UniformConstant
+        172(d19):     26(ptr) Variable UniformConstant
+        173(d20):     26(ptr) Variable UniformConstant
+        174(d21):     26(ptr) Variable UniformConstant
+        175(d22):     26(ptr) Variable UniformConstant
+        176(d23):     26(ptr) Variable UniformConstant
+        177(d24):     26(ptr) Variable UniformConstant
+        178(d25):     26(ptr) Variable UniformConstant
+        179(d26):     26(ptr) Variable UniformConstant
+        180(d27):     26(ptr) Variable UniformConstant
+        181(d28):     26(ptr) Variable UniformConstant
+        182(d29):     26(ptr) Variable UniformConstant
+        183(d30):     26(ptr) Variable UniformConstant
+        184(d31):     26(ptr) Variable UniformConstant
+        185(d32):     26(ptr) Variable UniformConstant
+        186(d33):     26(ptr) Variable UniformConstant
+        187(d34):     26(ptr) Variable UniformConstant
+             188:             TypeInt 32 1
+             189:             TypePointer UniformConstant 188(int)
+      190(Count):    189(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+                              Branch 13
+              13:             Label
+              16:    17(bool) Phi 18 5 58 52 58 66
+                              LoopMerge 14 13 None
+                              Branch 19
+              19:             Label
+                              SelectionMerge 15 None
+                              BranchConditional 16 15 20
+              20:               Label
+              24:     23(ptr)   AccessChain 9(color) 22
+              25:    6(float)   Load 24
+              28:    6(float)   Load 27(d4)
+              29:    17(bool)   FOrdLessThan 25 28
+                                SelectionMerge 30 None
+                                BranchConditional 29 30 14
+              30:               Label
+                                Branch 15
+              15:             Label
+              33:    7(fvec4) Load 32(bigColor4)
+              34:    7(fvec4) Load 9(color)
+              35:    7(fvec4) FAdd 34 33
+                              Store 9(color) 35
+              37:     23(ptr) AccessChain 9(color) 36
+              38:    6(float) Load 37
+              39:    6(float) Load 27(d4)
+              40:    17(bool) FOrdLessThan 38 39
+                              SelectionMerge 42 None
+                              BranchConditional 40 41 42
+              41:               Label
+              44:     23(ptr)   AccessChain 9(color) 22
+              45:    6(float)   Load 44
+              46:    6(float)   FAdd 45 43
+              47:     23(ptr)   AccessChain 9(color) 22
+                                Store 47 46
+              48:     23(ptr)   AccessChain 9(color) 22
+              49:    6(float)   Load 48
+              50:    6(float)   Load 27(d4)
+              51:    17(bool)   FOrdLessThan 49 50
+                                SelectionMerge 53 None
+                                BranchConditional 51 52 53
+              52:                 Label
+              54:     23(ptr)     AccessChain 9(color) 36
+              55:    6(float)     Load 54
+              57:    6(float)     FAdd 55 56
+                                  Store 54 57
+                                  Branch 13
+              53:               Label
+                                Branch 42
+              42:             Label
+              61:     23(ptr) AccessChain 9(color) 60
+              62:    6(float) Load 61
+              63:    6(float) Load 27(d4)
+              64:    17(bool) FOrdLessThan 62 63
+                              SelectionMerge 66 None
+                              BranchConditional 64 65 72
+              65:               Label
+              67:    6(float)   Load 27(d4)
+              68:     23(ptr)   AccessChain 9(color) 60
+              69:    6(float)   Load 68
+              70:    6(float)   FAdd 69 67
+              71:     23(ptr)   AccessChain 9(color) 60
+                                Store 71 70
+                                Branch 66
+              72:               Label
+              73:    6(float)   Load 27(d4)
+              74:     23(ptr)   AccessChain 9(color) 36
+              75:    6(float)   Load 74
+              76:    6(float)   FAdd 75 73
+              77:     23(ptr)   AccessChain 9(color) 36
+                                Store 77 76
+                                Branch 66
+              66:             Label
+                              Branch 13
+              14:             Label
+                              Branch 78
+              78:             Label
+              82:     23(ptr) AccessChain 9(color) 81
+              83:    6(float) Load 82
+              85:    6(float) Load 84(d13)
+              86:    17(bool) FOrdLessThan 83 85
+                              LoopMerge 79 78 None
+                              BranchConditional 86 80 79
+              80:               Label
+              87:     23(ptr)   AccessChain 9(color) 22
+              88:    6(float)   Load 87
+              89:    6(float)   Load 84(d13)
+              90:    17(bool)   FOrdLessThan 88 89
+                                SelectionMerge 92 None
+                                BranchConditional 90 91 96
+              91:                 Label
+              93:    7(fvec4)     Load 9(color)
+              94:    7(fvec4)     CompositeConstruct 56 56 56 56
+              95:    7(fvec4)     FAdd 93 94
+                                  Store 9(color) 95
+                                  Branch 92
+              96:                 Label
+              97:    7(fvec4)     Load 9(color)
+              98:    7(fvec4)     CompositeConstruct 56 56 56 56
+              99:    7(fvec4)     FSub 97 98
+                                  Store 9(color) 99
+                                  Branch 92
+              92:               Label
+             100:    7(fvec4)   Load 32(bigColor4)
+             101:    7(fvec4)   Load 9(color)
+             102:    7(fvec4)   FAdd 101 100
+                                Store 9(color) 102
+             103:     23(ptr)   AccessChain 9(color) 36
+             104:    6(float)   Load 103
+             105:    6(float)   Load 27(d4)
+             106:    17(bool)   FOrdLessThan 104 105
+                                SelectionMerge 108 None
+                                BranchConditional 106 107 108
+             107:                 Label
+             109:     23(ptr)     AccessChain 9(color) 22
+             110:    6(float)     Load 109
+             111:    6(float)     FAdd 110 43
+             112:     23(ptr)     AccessChain 9(color) 22
+                                  Store 112 111
+             113:     23(ptr)     AccessChain 9(color) 22
+             114:    6(float)     Load 113
+             115:    6(float)     Load 27(d4)
+             116:    17(bool)     FOrdLessThan 114 115
+                                  SelectionMerge 118 None
+                                  BranchConditional 116 117 118
+             117:                   Label
+             119:     23(ptr)       AccessChain 9(color) 36
+             120:    6(float)       Load 119
+             121:    6(float)       FAdd 120 56
+                                    Store 119 121
+                                    Branch 78
+             118:                 Label
+                                  Branch 108
+             108:               Label
+             123:     23(ptr)   AccessChain 9(color) 60
+             124:    6(float)   Load 123
+             125:    6(float)   Load 27(d4)
+             126:    17(bool)   FOrdLessThan 124 125
+                                SelectionMerge 128 None
+                                BranchConditional 126 127 134
+             127:                 Label
+             129:    6(float)     Load 27(d4)
+             130:     23(ptr)     AccessChain 9(color) 60
+             131:    6(float)     Load 130
+             132:    6(float)     FAdd 131 129
+             133:     23(ptr)     AccessChain 9(color) 60
+                                  Store 133 132
+                                  Branch 128
+             134:                 Label
+             135:    6(float)     Load 27(d4)
+             136:     23(ptr)     AccessChain 9(color) 36
+             137:    6(float)     Load 136
+             138:    6(float)     FAdd 137 135
+             139:     23(ptr)     AccessChain 9(color) 36
+                                  Store 139 138
+                                  Branch 128
+             128:               Label
+                                Branch 78
+              79:             Label
+             140:    7(fvec4) Load 9(color)
+             141:    7(fvec4) CompositeConstruct 56 56 56 56
+             142:    7(fvec4) FAdd 140 141
+                              Store 9(color) 142
+             145:    7(fvec4) Load 9(color)
+                              Store 144(gl_FragColor) 145
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out
index cc4a422..6286e90 100755
--- a/Test/baseResults/spv.matFun.vert.out
+++ b/Test/baseResults/spv.matFun.vert.out
@@ -1,137 +1,137 @@
-spv.matFun.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 93

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 73 92

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 14  "xf(mf33;vf3;"

-                              Name 12  "m"

-                              Name 13  "v"

-                              Name 21  "Mat3(mf44;"

-                              Name 20  "m"

-                              Name 26  "mxv(mf44;vf3;"

-                              Name 24  "m4"

-                              Name 25  "v"

-                              Name 63  "param"

-                              Name 69  "gl_Position"

-                              Name 71  "m4"

-                              Name 73  "v3"

-                              Name 74  "param"

-                              Name 76  "param"

-                              Name 80  "m3"

-                              Name 81  "param"

-                              Name 83  "param"

-                              Name 92  "gl_VertexID"

-                              Decorate 69(gl_Position) BuiltIn Position

-                              Decorate 92(gl_VertexID) BuiltIn VertexId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 3

-               8:             TypeMatrix 7(fvec3) 3

-               9:             TypePointer Function 8

-              10:             TypePointer Function 7(fvec3)

-              11:             TypeFunction 7(fvec3) 9(ptr) 10(ptr)

-              16:             TypeVector 6(float) 4

-              17:             TypeMatrix 16(fvec4) 4

-              18:             TypePointer Function 17

-              19:             TypeFunction 8 18(ptr)

-              23:             TypeFunction 7(fvec3) 18(ptr) 10(ptr)

-              32:             TypeInt 32 1

-              33:     32(int) Constant 0

-              34:             TypePointer Function 16(fvec4)

-              38:     32(int) Constant 1

-              42:     32(int) Constant 2

-              46:    6(float) Constant 1065353216

-              47:    6(float) Constant 0

-              68:             TypePointer Output 16(fvec4)

- 69(gl_Position):     68(ptr) Variable Output

-              70:             TypePointer UniformConstant 17

-          71(m4):     70(ptr) Variable UniformConstant

-              72:             TypePointer Input 7(fvec3)

-          73(v3):     72(ptr) Variable Input

-              79:             TypePointer UniformConstant 8

-          80(m3):     79(ptr) Variable UniformConstant

-              91:             TypePointer Input 32(int)

- 92(gl_VertexID):     91(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-       74(param):     18(ptr) Variable Function

-       76(param):     10(ptr) Variable Function

-       81(param):      9(ptr) Variable Function

-       83(param):     10(ptr) Variable Function

-              75:          17 Load 71(m4)

-                              Store 74(param) 75

-              77:    7(fvec3) Load 73(v3)

-                              Store 76(param) 77

-              78:    7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 74(param) 76(param)

-              82:           8 Load 80(m3)

-                              Store 81(param) 82

-              84:    7(fvec3) Load 73(v3)

-                              Store 83(param) 84

-              85:    7(fvec3) FunctionCall 14(xf(mf33;vf3;) 81(param) 83(param)

-              86:    7(fvec3) FAdd 78 85

-              87:    6(float) CompositeExtract 86 0

-              88:    6(float) CompositeExtract 86 1

-              89:    6(float) CompositeExtract 86 2

-              90:   16(fvec4) CompositeConstruct 87 88 89 46

-                              Store 69(gl_Position) 90

-                              Return

-                              FunctionEnd

-14(xf(mf33;vf3;):    7(fvec3) Function None 11

-           12(m):      9(ptr) FunctionParameter

-           13(v):     10(ptr) FunctionParameter

-              15:             Label

-              28:    7(fvec3) Load 13(v)

-              29:           8 Load 12(m)

-              30:    7(fvec3) VectorTimesMatrix 28 29

-                              ReturnValue 30

-                              FunctionEnd

-  21(Mat3(mf44;):           8 Function None 19

-           20(m):     18(ptr) FunctionParameter

-              22:             Label

-              35:     34(ptr) AccessChain 20(m) 33

-              36:   16(fvec4) Load 35

-              37:    7(fvec3) VectorShuffle 36 36 0 1 2

-              39:     34(ptr) AccessChain 20(m) 38

-              40:   16(fvec4) Load 39

-              41:    7(fvec3) VectorShuffle 40 40 0 1 2

-              43:     34(ptr) AccessChain 20(m) 42

-              44:   16(fvec4) Load 43

-              45:    7(fvec3) VectorShuffle 44 44 0 1 2

-              48:    6(float) CompositeExtract 37 0

-              49:    6(float) CompositeExtract 37 1

-              50:    6(float) CompositeExtract 37 2

-              51:    6(float) CompositeExtract 41 0

-              52:    6(float) CompositeExtract 41 1

-              53:    6(float) CompositeExtract 41 2

-              54:    6(float) CompositeExtract 45 0

-              55:    6(float) CompositeExtract 45 1

-              56:    6(float) CompositeExtract 45 2

-              57:    7(fvec3) CompositeConstruct 48 49 50

-              58:    7(fvec3) CompositeConstruct 51 52 53

-              59:    7(fvec3) CompositeConstruct 54 55 56

-              60:           8 CompositeConstruct 57 58 59

-                              ReturnValue 60

-                              FunctionEnd

-26(mxv(mf44;vf3;):    7(fvec3) Function None 23

-          24(m4):     18(ptr) FunctionParameter

-           25(v):     10(ptr) FunctionParameter

-              27:             Label

-       63(param):     18(ptr) Variable Function

-              62:    7(fvec3) Load 25(v)

-              64:          17 Load 24(m4)

-                              Store 63(param) 64

-              65:           8 FunctionCall 21(Mat3(mf44;) 63(param)

-              66:    7(fvec3) VectorTimesMatrix 62 65

-                              ReturnValue 66

-                              FunctionEnd

+spv.matFun.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 93
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 73 92
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 14  "xf(mf33;vf3;"
+                              Name 12  "m"
+                              Name 13  "v"
+                              Name 21  "Mat3(mf44;"
+                              Name 20  "m"
+                              Name 26  "mxv(mf44;vf3;"
+                              Name 24  "m4"
+                              Name 25  "v"
+                              Name 63  "param"
+                              Name 69  "gl_Position"
+                              Name 71  "m4"
+                              Name 73  "v3"
+                              Name 74  "param"
+                              Name 76  "param"
+                              Name 80  "m3"
+                              Name 81  "param"
+                              Name 83  "param"
+                              Name 92  "gl_VertexID"
+                              Decorate 69(gl_Position) BuiltIn Position
+                              Decorate 92(gl_VertexID) BuiltIn VertexId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypeMatrix 7(fvec3) 3
+               9:             TypePointer Function 8
+              10:             TypePointer Function 7(fvec3)
+              11:             TypeFunction 7(fvec3) 9(ptr) 10(ptr)
+              16:             TypeVector 6(float) 4
+              17:             TypeMatrix 16(fvec4) 4
+              18:             TypePointer Function 17
+              19:             TypeFunction 8 18(ptr)
+              23:             TypeFunction 7(fvec3) 18(ptr) 10(ptr)
+              32:             TypeInt 32 1
+              33:     32(int) Constant 0
+              34:             TypePointer Function 16(fvec4)
+              38:     32(int) Constant 1
+              42:     32(int) Constant 2
+              46:    6(float) Constant 1065353216
+              47:    6(float) Constant 0
+              68:             TypePointer Output 16(fvec4)
+ 69(gl_Position):     68(ptr) Variable Output
+              70:             TypePointer UniformConstant 17
+          71(m4):     70(ptr) Variable UniformConstant
+              72:             TypePointer Input 7(fvec3)
+          73(v3):     72(ptr) Variable Input
+              79:             TypePointer UniformConstant 8
+          80(m3):     79(ptr) Variable UniformConstant
+              91:             TypePointer Input 32(int)
+ 92(gl_VertexID):     91(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+       74(param):     18(ptr) Variable Function
+       76(param):     10(ptr) Variable Function
+       81(param):      9(ptr) Variable Function
+       83(param):     10(ptr) Variable Function
+              75:          17 Load 71(m4)
+                              Store 74(param) 75
+              77:    7(fvec3) Load 73(v3)
+                              Store 76(param) 77
+              78:    7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 74(param) 76(param)
+              82:           8 Load 80(m3)
+                              Store 81(param) 82
+              84:    7(fvec3) Load 73(v3)
+                              Store 83(param) 84
+              85:    7(fvec3) FunctionCall 14(xf(mf33;vf3;) 81(param) 83(param)
+              86:    7(fvec3) FAdd 78 85
+              87:    6(float) CompositeExtract 86 0
+              88:    6(float) CompositeExtract 86 1
+              89:    6(float) CompositeExtract 86 2
+              90:   16(fvec4) CompositeConstruct 87 88 89 46
+                              Store 69(gl_Position) 90
+                              Return
+                              FunctionEnd
+14(xf(mf33;vf3;):    7(fvec3) Function None 11
+           12(m):      9(ptr) FunctionParameter
+           13(v):     10(ptr) FunctionParameter
+              15:             Label
+              28:    7(fvec3) Load 13(v)
+              29:           8 Load 12(m)
+              30:    7(fvec3) VectorTimesMatrix 28 29
+                              ReturnValue 30
+                              FunctionEnd
+  21(Mat3(mf44;):           8 Function None 19
+           20(m):     18(ptr) FunctionParameter
+              22:             Label
+              35:     34(ptr) AccessChain 20(m) 33
+              36:   16(fvec4) Load 35
+              37:    7(fvec3) VectorShuffle 36 36 0 1 2
+              39:     34(ptr) AccessChain 20(m) 38
+              40:   16(fvec4) Load 39
+              41:    7(fvec3) VectorShuffle 40 40 0 1 2
+              43:     34(ptr) AccessChain 20(m) 42
+              44:   16(fvec4) Load 43
+              45:    7(fvec3) VectorShuffle 44 44 0 1 2
+              48:    6(float) CompositeExtract 37 0
+              49:    6(float) CompositeExtract 37 1
+              50:    6(float) CompositeExtract 37 2
+              51:    6(float) CompositeExtract 41 0
+              52:    6(float) CompositeExtract 41 1
+              53:    6(float) CompositeExtract 41 2
+              54:    6(float) CompositeExtract 45 0
+              55:    6(float) CompositeExtract 45 1
+              56:    6(float) CompositeExtract 45 2
+              57:    7(fvec3) CompositeConstruct 48 49 50
+              58:    7(fvec3) CompositeConstruct 51 52 53
+              59:    7(fvec3) CompositeConstruct 54 55 56
+              60:           8 CompositeConstruct 57 58 59
+                              ReturnValue 60
+                              FunctionEnd
+26(mxv(mf44;vf3;):    7(fvec3) Function None 23
+          24(m4):     18(ptr) FunctionParameter
+           25(v):     10(ptr) FunctionParameter
+              27:             Label
+       63(param):     18(ptr) Variable Function
+              62:    7(fvec3) Load 25(v)
+              64:          17 Load 24(m4)
+                              Store 63(param) 64
+              65:           8 FunctionCall 21(Mat3(mf44;) 63(param)
+              66:    7(fvec3) VectorTimesMatrix 62 65
+                              ReturnValue 66
+                              FunctionEnd
diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out
index ef7f0b0..f879f97 100644
--- a/Test/baseResults/spv.matrix.frag.out
+++ b/Test/baseResults/spv.matrix.frag.out
@@ -1,10 +1,10 @@
-spv.matrix.frag

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-WARNING: 0:17: varying deprecated in version 130; may be removed in future release

-WARNING: 0:22: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-Missing functionality: Composite comparison of non-vectors

+spv.matrix.frag
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:17: varying deprecated in version 130; may be removed in future release
+WARNING: 0:22: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+Missing functionality: Composite comparison of non-vectors
diff --git a/Test/baseResults/spv.matrix2.frag.out b/Test/baseResults/spv.matrix2.frag.out
index 8e961fa..1772387 100644
--- a/Test/baseResults/spv.matrix2.frag.out
+++ b/Test/baseResults/spv.matrix2.frag.out
@@ -1,10 +1,10 @@
-spv.matrix2.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:13: varying deprecated in version 130; may be removed in future release

-WARNING: 0:15: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-Missing functionality: binary operation on matrix

+spv.matrix2.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:13: varying deprecated in version 130; may be removed in future release
+WARNING: 0:15: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+Missing functionality: binary operation on matrix
diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out
index 90bf7ab..2a5973e 100755
--- a/Test/baseResults/spv.newTexture.frag.out
+++ b/Test/baseResults/spv.newTexture.frag.out
@@ -1,360 +1,360 @@
-spv.newTexture.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 278

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 29 17 55 26 84 91 81 277 247

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 430

-                              Name 4  "main"

-                              Name 9  "v"

-                              Name 13  "s2D"

-                              Name 17  "c2D"

-                              Name 23  "sCubeArrayShadow"

-                              Name 26  "c4D"

-                              Name 29  "c1D"

-                              Name 42  "s3D"

-                              Name 51  "s2DArray"

-                              Name 55  "c3D"

-                              Name 64  "s2DShadow"

-                              Name 81  "ic3D"

-                              Name 84  "ic1D"

-                              Name 91  "ic2D"

-                              Name 100  "sr"

-                              Name 125  "sCube"

-                              Name 136  "s2DArrayShadow"

-                              Name 164  "iv"

-                              Name 168  "is2D"

-                              Name 203  "is3D"

-                              Name 215  "isCube"

-                              Name 227  "is2DArray"

-                              Name 237  "iv2"

-                              Name 241  "sCubeShadow"

-                              Name 247  "FragData"

-                              Name 259  "is2Dms"

-                              Name 263  "us2D"

-                              Name 267  "us3D"

-                              Name 271  "usCube"

-                              Name 275  "us2DArray"

-                              Name 277  "ic4D"

-                              Decorate 81(ic3D) Flat

-                              Decorate 84(ic1D) Flat

-                              Decorate 91(ic2D) Flat

-                              Decorate 277(ic4D) Flat

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypeImage 6(float) 2D sampled format:Unknown

-              11:             TypeSampledImage 10

-              12:             TypePointer UniformConstant 11

-         13(s2D):     12(ptr) Variable UniformConstant

-              15:             TypeVector 6(float) 2

-              16:             TypePointer Input 15(fvec2)

-         17(c2D):     16(ptr) Variable Input

-              20:             TypeImage 6(float) Cube depth array sampled format:Unknown

-              21:             TypeSampledImage 20

-              22:             TypePointer UniformConstant 21

-23(sCubeArrayShadow):     22(ptr) Variable UniformConstant

-              25:             TypePointer Input 7(fvec4)

-         26(c4D):     25(ptr) Variable Input

-              28:             TypePointer Input 6(float)

-         29(c1D):     28(ptr) Variable Input

-              32:             TypeInt 32 0

-              33:     32(int) Constant 1

-              34:             TypePointer Function 6(float)

-              39:             TypeImage 6(float) 3D sampled format:Unknown

-              40:             TypeSampledImage 39

-              41:             TypePointer UniformConstant 40

-         42(s3D):     41(ptr) Variable UniformConstant

-              48:             TypeImage 6(float) 2D array sampled format:Unknown

-              49:             TypeSampledImage 48

-              50:             TypePointer UniformConstant 49

-    51(s2DArray):     50(ptr) Variable UniformConstant

-              53:             TypeVector 6(float) 3

-              54:             TypePointer Input 53(fvec3)

-         55(c3D):     54(ptr) Variable Input

-              57:    6(float) Constant 1067030938

-              61:             TypeImage 6(float) 2D depth sampled format:Unknown

-              62:             TypeSampledImage 61

-              63:             TypePointer UniformConstant 62

-   64(s2DShadow):     63(ptr) Variable UniformConstant

-              67:             TypeInt 32 1

-              68:             TypeVector 67(int) 2

-              69:     67(int) Constant 3

-              70:   68(ivec2) ConstantComposite 69 69

-              79:             TypeVector 67(int) 3

-              80:             TypePointer Input 79(ivec3)

-        81(ic3D):     80(ptr) Variable Input

-              83:             TypePointer Input 67(int)

-        84(ic1D):     83(ptr) Variable Input

-              90:             TypePointer Input 68(ivec2)

-        91(ic2D):     90(ptr) Variable Input

-              93:     67(int) Constant 4

-              97:             TypeImage 6(float) Rect sampled format:Unknown

-              98:             TypeSampledImage 97

-              99:             TypePointer UniformConstant 98

-         100(sr):     99(ptr) Variable UniformConstant

-             103:   68(ivec2) ConstantComposite 93 93

-             122:             TypeImage 6(float) Cube sampled format:Unknown

-             123:             TypeSampledImage 122

-             124:             TypePointer UniformConstant 123

-      125(sCube):    124(ptr) Variable UniformConstant

-             133:             TypeImage 6(float) 2D depth array sampled format:Unknown

-             134:             TypeSampledImage 133

-             135:             TypePointer UniformConstant 134

-136(s2DArrayShadow):    135(ptr) Variable UniformConstant

-             143:     32(int) Constant 0

-             162:             TypeVector 67(int) 4

-             163:             TypePointer Function 162(ivec4)

-             165:             TypeImage 67(int) 2D sampled format:Unknown

-             166:             TypeSampledImage 165

-             167:             TypePointer UniformConstant 166

-       168(is2D):    167(ptr) Variable UniformConstant

-             200:             TypeImage 67(int) 3D sampled format:Unknown

-             201:             TypeSampledImage 200

-             202:             TypePointer UniformConstant 201

-       203(is3D):    202(ptr) Variable UniformConstant

-             206:    6(float) Constant 1082549862

-             212:             TypeImage 67(int) Cube sampled format:Unknown

-             213:             TypeSampledImage 212

-             214:             TypePointer UniformConstant 213

-     215(isCube):    214(ptr) Variable UniformConstant

-             224:             TypeImage 67(int) 2D array sampled format:Unknown

-             225:             TypeSampledImage 224

-             226:             TypePointer UniformConstant 225

-  227(is2DArray):    226(ptr) Variable UniformConstant

-             236:             TypePointer Function 68(ivec2)

-             238:             TypeImage 6(float) Cube depth sampled format:Unknown

-             239:             TypeSampledImage 238

-             240:             TypePointer UniformConstant 239

-241(sCubeShadow):    240(ptr) Variable UniformConstant

-             243:     67(int) Constant 2

-             246:             TypePointer Output 7(fvec4)

-   247(FragData):    246(ptr) Variable Output

-             251:    6(float) Constant 0

-             256:             TypeImage 67(int) 2D multi-sampled sampled format:Unknown

-             257:             TypeSampledImage 256

-             258:             TypePointer UniformConstant 257

-     259(is2Dms):    258(ptr) Variable UniformConstant

-             260:             TypeImage 32(int) 2D sampled format:Unknown

-             261:             TypeSampledImage 260

-             262:             TypePointer UniformConstant 261

-       263(us2D):    262(ptr) Variable UniformConstant

-             264:             TypeImage 32(int) 3D sampled format:Unknown

-             265:             TypeSampledImage 264

-             266:             TypePointer UniformConstant 265

-       267(us3D):    266(ptr) Variable UniformConstant

-             268:             TypeImage 32(int) Cube sampled format:Unknown

-             269:             TypeSampledImage 268

-             270:             TypePointer UniformConstant 269

-     271(usCube):    270(ptr) Variable UniformConstant

-             272:             TypeImage 32(int) 2D array sampled format:Unknown

-             273:             TypeSampledImage 272

-             274:             TypePointer UniformConstant 273

-  275(us2DArray):    274(ptr) Variable UniformConstant

-             276:             TypePointer Input 162(ivec4)

-       277(ic4D):    276(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            9(v):      8(ptr) Variable Function

-         164(iv):    163(ptr) Variable Function

-        237(iv2):    236(ptr) Variable Function

-              14:          11 Load 13(s2D)

-              18:   15(fvec2) Load 17(c2D)

-              19:    7(fvec4) ImageSampleImplicitLod 14 18

-                              Store 9(v) 19

-              24:          21 Load 23(sCubeArrayShadow)

-              27:    7(fvec4) Load 26(c4D)

-              30:    6(float) Load 29(c1D)

-              31:    6(float) ImageSampleDrefImplicitLod 24 27 30

-              35:     34(ptr) AccessChain 9(v) 33

-              36:    6(float) Load 35

-              37:    6(float) FAdd 36 31

-              38:     34(ptr) AccessChain 9(v) 33

-                              Store 38 37

-              43:          40 Load 42(s3D)

-              44:    7(fvec4) Load 26(c4D)

-              45:    7(fvec4) ImageSampleProjImplicitLod 43 44

-              46:    7(fvec4) Load 9(v)

-              47:    7(fvec4) FAdd 46 45

-                              Store 9(v) 47

-              52:          49 Load 51(s2DArray)

-              56:   53(fvec3) Load 55(c3D)

-              58:    7(fvec4) ImageSampleExplicitLod 52 56 Lod 57

-              59:    7(fvec4) Load 9(v)

-              60:    7(fvec4) FAdd 59 58

-                              Store 9(v) 60

-              65:          62 Load 64(s2DShadow)

-              66:   53(fvec3) Load 55(c3D)

-              71:    6(float) Load 29(c1D)

-              72:    6(float) CompositeExtract 66 2

-              73:    6(float) ImageSampleDrefImplicitLod 65 66 72 Bias ConstOffset 71 70

-              74:     34(ptr) AccessChain 9(v) 33

-              75:    6(float) Load 74

-              76:    6(float) FAdd 75 73

-              77:     34(ptr) AccessChain 9(v) 33

-                              Store 77 76

-              78:          40 Load 42(s3D)

-              82:   79(ivec3) Load 81(ic3D)

-              85:     67(int) Load 84(ic1D)

-              86:    7(fvec4) ImageFetch 78 82 Lod 85

-              87:    7(fvec4) Load 9(v)

-              88:    7(fvec4) FAdd 87 86

-                              Store 9(v) 88

-              89:          11 Load 13(s2D)

-              92:   68(ivec2) Load 91(ic2D)

-              94:    7(fvec4) ImageFetch 89 92 Lod ConstOffset 93 70

-              95:    7(fvec4) Load 9(v)

-              96:    7(fvec4) FAdd 95 94

-                              Store 9(v) 96

-             101:          98 Load 100(sr)

-             102:   68(ivec2) Load 91(ic2D)

-             104:    7(fvec4) ImageFetch 101 102 ConstOffset 103

-             105:    7(fvec4) Load 9(v)

-             106:    7(fvec4) FAdd 105 104

-                              Store 9(v) 106

-             107:          62 Load 64(s2DShadow)

-             108:   53(fvec3) Load 55(c3D)

-             109:    6(float) Load 29(c1D)

-             110:    6(float) CompositeExtract 108 2

-             111:    6(float) ImageSampleDrefExplicitLod 107 108 110 Lod ConstOffset 109 70

-             112:     34(ptr) AccessChain 9(v) 33

-             113:    6(float) Load 112

-             114:    6(float) FAdd 113 111

-             115:     34(ptr) AccessChain 9(v) 33

-                              Store 115 114

-             116:          11 Load 13(s2D)

-             117:   53(fvec3) Load 55(c3D)

-             118:    6(float) Load 29(c1D)

-             119:    7(fvec4) ImageSampleProjExplicitLod 116 117 Lod ConstOffset 118 70

-             120:    7(fvec4) Load 9(v)

-             121:    7(fvec4) FAdd 120 119

-                              Store 9(v) 121

-             126:         123 Load 125(sCube)

-             127:   53(fvec3) Load 55(c3D)

-             128:   53(fvec3) Load 55(c3D)

-             129:   53(fvec3) Load 55(c3D)

-             130:    7(fvec4) ImageSampleExplicitLod 126 127 Grad 128 129

-             131:    7(fvec4) Load 9(v)

-             132:    7(fvec4) FAdd 131 130

-                              Store 9(v) 132

-             137:         134 Load 136(s2DArrayShadow)

-             138:    7(fvec4) Load 26(c4D)

-             139:   15(fvec2) Load 17(c2D)

-             140:   15(fvec2) Load 17(c2D)

-             141:    6(float) CompositeExtract 138 3

-             142:    6(float) ImageSampleDrefExplicitLod 137 138 141 Grad ConstOffset 139 140 70

-             144:     34(ptr) AccessChain 9(v) 143

-             145:    6(float) Load 144

-             146:    6(float) FAdd 145 142

-             147:     34(ptr) AccessChain 9(v) 143

-                              Store 147 146

-             148:          40 Load 42(s3D)

-             149:    7(fvec4) Load 26(c4D)

-             150:   53(fvec3) Load 55(c3D)

-             151:   53(fvec3) Load 55(c3D)

-             152:    7(fvec4) ImageSampleProjExplicitLod 148 149 Grad 150 151

-             153:    7(fvec4) Load 9(v)

-             154:    7(fvec4) FAdd 153 152

-                              Store 9(v) 154

-             155:          11 Load 13(s2D)

-             156:   53(fvec3) Load 55(c3D)

-             157:   15(fvec2) Load 17(c2D)

-             158:   15(fvec2) Load 17(c2D)

-             159:    7(fvec4) ImageSampleProjExplicitLod 155 156 Grad ConstOffset 157 158 70

-             160:    7(fvec4) Load 9(v)

-             161:    7(fvec4) FAdd 160 159

-                              Store 9(v) 161

-             169:         166 Load 168(is2D)

-             170:   15(fvec2) Load 17(c2D)

-             171:  162(ivec4) ImageSampleImplicitLod 169 170

-                              Store 164(iv) 171

-             172:  162(ivec4) Load 164(iv)

-             173:    7(fvec4) ConvertSToF 172

-             174:    7(fvec4) Load 9(v)

-             175:    7(fvec4) FAdd 174 173

-                              Store 9(v) 175

-             176:         166 Load 168(is2D)

-             177:    7(fvec4) Load 26(c4D)

-             178:  162(ivec4) ImageSampleProjImplicitLod 176 177 ConstOffset 70

-                              Store 164(iv) 178

-             179:  162(ivec4) Load 164(iv)

-             180:    7(fvec4) ConvertSToF 179

-             181:    7(fvec4) Load 9(v)

-             182:    7(fvec4) FAdd 181 180

-                              Store 9(v) 182

-             183:         166 Load 168(is2D)

-             184:   53(fvec3) Load 55(c3D)

-             185:    6(float) Load 29(c1D)

-             186:  162(ivec4) ImageSampleProjExplicitLod 183 184 Lod 185

-                              Store 164(iv) 186

-             187:  162(ivec4) Load 164(iv)

-             188:    7(fvec4) ConvertSToF 187

-             189:    7(fvec4) Load 9(v)

-             190:    7(fvec4) FAdd 189 188

-                              Store 9(v) 190

-             191:         166 Load 168(is2D)

-             192:   53(fvec3) Load 55(c3D)

-             193:   15(fvec2) Load 17(c2D)

-             194:   15(fvec2) Load 17(c2D)

-             195:  162(ivec4) ImageSampleProjExplicitLod 191 192 Grad 193 194

-                              Store 164(iv) 195

-             196:  162(ivec4) Load 164(iv)

-             197:    7(fvec4) ConvertSToF 196

-             198:    7(fvec4) Load 9(v)

-             199:    7(fvec4) FAdd 198 197

-                              Store 9(v) 199

-             204:         201 Load 203(is3D)

-             205:   53(fvec3) Load 55(c3D)

-             207:  162(ivec4) ImageSampleImplicitLod 204 205 Bias 206

-                              Store 164(iv) 207

-             208:  162(ivec4) Load 164(iv)

-             209:    7(fvec4) ConvertSToF 208

-             210:    7(fvec4) Load 9(v)

-             211:    7(fvec4) FAdd 210 209

-                              Store 9(v) 211

-             216:         213 Load 215(isCube)

-             217:   53(fvec3) Load 55(c3D)

-             218:    6(float) Load 29(c1D)

-             219:  162(ivec4) ImageSampleExplicitLod 216 217 Lod 218

-                              Store 164(iv) 219

-             220:  162(ivec4) Load 164(iv)

-             221:    7(fvec4) ConvertSToF 220

-             222:    7(fvec4) Load 9(v)

-             223:    7(fvec4) FAdd 222 221

-                              Store 9(v) 223

-             228:         225 Load 227(is2DArray)

-             229:   79(ivec3) Load 81(ic3D)

-             230:     67(int) Load 84(ic1D)

-             231:  162(ivec4) ImageFetch 228 229 Lod 230

-                              Store 164(iv) 231

-             232:  162(ivec4) Load 164(iv)

-             233:    7(fvec4) ConvertSToF 232

-             234:    7(fvec4) Load 9(v)

-             235:    7(fvec4) FAdd 234 233

-                              Store 9(v) 235

-             242:         239 Load 241(sCubeShadow)

-             244:         238 Image 242

-             245:   68(ivec2) ImageQuerySizeLod 244 243

-                              Store 237(iv2) 245

-             248:    7(fvec4) Load 9(v)

-             249:   68(ivec2) Load 237(iv2)

-             250:   15(fvec2) ConvertSToF 249

-             252:    6(float) CompositeExtract 250 0

-             253:    6(float) CompositeExtract 250 1

-             254:    7(fvec4) CompositeConstruct 252 253 251 251

-             255:    7(fvec4) FAdd 248 254

-                              Store 247(FragData) 255

-                              Return

-                              FunctionEnd

+spv.newTexture.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 278
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 29 17 55 26 84 91 81 277 247
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 430
+                              Name 4  "main"
+                              Name 9  "v"
+                              Name 13  "s2D"
+                              Name 17  "c2D"
+                              Name 23  "sCubeArrayShadow"
+                              Name 26  "c4D"
+                              Name 29  "c1D"
+                              Name 42  "s3D"
+                              Name 51  "s2DArray"
+                              Name 55  "c3D"
+                              Name 64  "s2DShadow"
+                              Name 81  "ic3D"
+                              Name 84  "ic1D"
+                              Name 91  "ic2D"
+                              Name 100  "sr"
+                              Name 125  "sCube"
+                              Name 136  "s2DArrayShadow"
+                              Name 164  "iv"
+                              Name 168  "is2D"
+                              Name 203  "is3D"
+                              Name 215  "isCube"
+                              Name 227  "is2DArray"
+                              Name 237  "iv2"
+                              Name 241  "sCubeShadow"
+                              Name 247  "FragData"
+                              Name 259  "is2Dms"
+                              Name 263  "us2D"
+                              Name 267  "us3D"
+                              Name 271  "usCube"
+                              Name 275  "us2DArray"
+                              Name 277  "ic4D"
+                              Decorate 81(ic3D) Flat
+                              Decorate 84(ic1D) Flat
+                              Decorate 91(ic2D) Flat
+                              Decorate 277(ic4D) Flat
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypeImage 6(float) 2D sampled format:Unknown
+              11:             TypeSampledImage 10
+              12:             TypePointer UniformConstant 11
+         13(s2D):     12(ptr) Variable UniformConstant
+              15:             TypeVector 6(float) 2
+              16:             TypePointer Input 15(fvec2)
+         17(c2D):     16(ptr) Variable Input
+              20:             TypeImage 6(float) Cube depth array sampled format:Unknown
+              21:             TypeSampledImage 20
+              22:             TypePointer UniformConstant 21
+23(sCubeArrayShadow):     22(ptr) Variable UniformConstant
+              25:             TypePointer Input 7(fvec4)
+         26(c4D):     25(ptr) Variable Input
+              28:             TypePointer Input 6(float)
+         29(c1D):     28(ptr) Variable Input
+              32:             TypeInt 32 0
+              33:     32(int) Constant 1
+              34:             TypePointer Function 6(float)
+              39:             TypeImage 6(float) 3D sampled format:Unknown
+              40:             TypeSampledImage 39
+              41:             TypePointer UniformConstant 40
+         42(s3D):     41(ptr) Variable UniformConstant
+              48:             TypeImage 6(float) 2D array sampled format:Unknown
+              49:             TypeSampledImage 48
+              50:             TypePointer UniformConstant 49
+    51(s2DArray):     50(ptr) Variable UniformConstant
+              53:             TypeVector 6(float) 3
+              54:             TypePointer Input 53(fvec3)
+         55(c3D):     54(ptr) Variable Input
+              57:    6(float) Constant 1067030938
+              61:             TypeImage 6(float) 2D depth sampled format:Unknown
+              62:             TypeSampledImage 61
+              63:             TypePointer UniformConstant 62
+   64(s2DShadow):     63(ptr) Variable UniformConstant
+              67:             TypeInt 32 1
+              68:             TypeVector 67(int) 2
+              69:     67(int) Constant 3
+              70:   68(ivec2) ConstantComposite 69 69
+              79:             TypeVector 67(int) 3
+              80:             TypePointer Input 79(ivec3)
+        81(ic3D):     80(ptr) Variable Input
+              83:             TypePointer Input 67(int)
+        84(ic1D):     83(ptr) Variable Input
+              90:             TypePointer Input 68(ivec2)
+        91(ic2D):     90(ptr) Variable Input
+              93:     67(int) Constant 4
+              97:             TypeImage 6(float) Rect sampled format:Unknown
+              98:             TypeSampledImage 97
+              99:             TypePointer UniformConstant 98
+         100(sr):     99(ptr) Variable UniformConstant
+             103:   68(ivec2) ConstantComposite 93 93
+             122:             TypeImage 6(float) Cube sampled format:Unknown
+             123:             TypeSampledImage 122
+             124:             TypePointer UniformConstant 123
+      125(sCube):    124(ptr) Variable UniformConstant
+             133:             TypeImage 6(float) 2D depth array sampled format:Unknown
+             134:             TypeSampledImage 133
+             135:             TypePointer UniformConstant 134
+136(s2DArrayShadow):    135(ptr) Variable UniformConstant
+             143:     32(int) Constant 0
+             162:             TypeVector 67(int) 4
+             163:             TypePointer Function 162(ivec4)
+             165:             TypeImage 67(int) 2D sampled format:Unknown
+             166:             TypeSampledImage 165
+             167:             TypePointer UniformConstant 166
+       168(is2D):    167(ptr) Variable UniformConstant
+             200:             TypeImage 67(int) 3D sampled format:Unknown
+             201:             TypeSampledImage 200
+             202:             TypePointer UniformConstant 201
+       203(is3D):    202(ptr) Variable UniformConstant
+             206:    6(float) Constant 1082549862
+             212:             TypeImage 67(int) Cube sampled format:Unknown
+             213:             TypeSampledImage 212
+             214:             TypePointer UniformConstant 213
+     215(isCube):    214(ptr) Variable UniformConstant
+             224:             TypeImage 67(int) 2D array sampled format:Unknown
+             225:             TypeSampledImage 224
+             226:             TypePointer UniformConstant 225
+  227(is2DArray):    226(ptr) Variable UniformConstant
+             236:             TypePointer Function 68(ivec2)
+             238:             TypeImage 6(float) Cube depth sampled format:Unknown
+             239:             TypeSampledImage 238
+             240:             TypePointer UniformConstant 239
+241(sCubeShadow):    240(ptr) Variable UniformConstant
+             243:     67(int) Constant 2
+             246:             TypePointer Output 7(fvec4)
+   247(FragData):    246(ptr) Variable Output
+             251:    6(float) Constant 0
+             256:             TypeImage 67(int) 2D multi-sampled sampled format:Unknown
+             257:             TypeSampledImage 256
+             258:             TypePointer UniformConstant 257
+     259(is2Dms):    258(ptr) Variable UniformConstant
+             260:             TypeImage 32(int) 2D sampled format:Unknown
+             261:             TypeSampledImage 260
+             262:             TypePointer UniformConstant 261
+       263(us2D):    262(ptr) Variable UniformConstant
+             264:             TypeImage 32(int) 3D sampled format:Unknown
+             265:             TypeSampledImage 264
+             266:             TypePointer UniformConstant 265
+       267(us3D):    266(ptr) Variable UniformConstant
+             268:             TypeImage 32(int) Cube sampled format:Unknown
+             269:             TypeSampledImage 268
+             270:             TypePointer UniformConstant 269
+     271(usCube):    270(ptr) Variable UniformConstant
+             272:             TypeImage 32(int) 2D array sampled format:Unknown
+             273:             TypeSampledImage 272
+             274:             TypePointer UniformConstant 273
+  275(us2DArray):    274(ptr) Variable UniformConstant
+             276:             TypePointer Input 162(ivec4)
+       277(ic4D):    276(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            9(v):      8(ptr) Variable Function
+         164(iv):    163(ptr) Variable Function
+        237(iv2):    236(ptr) Variable Function
+              14:          11 Load 13(s2D)
+              18:   15(fvec2) Load 17(c2D)
+              19:    7(fvec4) ImageSampleImplicitLod 14 18
+                              Store 9(v) 19
+              24:          21 Load 23(sCubeArrayShadow)
+              27:    7(fvec4) Load 26(c4D)
+              30:    6(float) Load 29(c1D)
+              31:    6(float) ImageSampleDrefImplicitLod 24 27 30
+              35:     34(ptr) AccessChain 9(v) 33
+              36:    6(float) Load 35
+              37:    6(float) FAdd 36 31
+              38:     34(ptr) AccessChain 9(v) 33
+                              Store 38 37
+              43:          40 Load 42(s3D)
+              44:    7(fvec4) Load 26(c4D)
+              45:    7(fvec4) ImageSampleProjImplicitLod 43 44
+              46:    7(fvec4) Load 9(v)
+              47:    7(fvec4) FAdd 46 45
+                              Store 9(v) 47
+              52:          49 Load 51(s2DArray)
+              56:   53(fvec3) Load 55(c3D)
+              58:    7(fvec4) ImageSampleExplicitLod 52 56 Lod 57
+              59:    7(fvec4) Load 9(v)
+              60:    7(fvec4) FAdd 59 58
+                              Store 9(v) 60
+              65:          62 Load 64(s2DShadow)
+              66:   53(fvec3) Load 55(c3D)
+              71:    6(float) Load 29(c1D)
+              72:    6(float) CompositeExtract 66 2
+              73:    6(float) ImageSampleDrefImplicitLod 65 66 72 Bias ConstOffset 71 70
+              74:     34(ptr) AccessChain 9(v) 33
+              75:    6(float) Load 74
+              76:    6(float) FAdd 75 73
+              77:     34(ptr) AccessChain 9(v) 33
+                              Store 77 76
+              78:          40 Load 42(s3D)
+              82:   79(ivec3) Load 81(ic3D)
+              85:     67(int) Load 84(ic1D)
+              86:    7(fvec4) ImageFetch 78 82 Lod 85
+              87:    7(fvec4) Load 9(v)
+              88:    7(fvec4) FAdd 87 86
+                              Store 9(v) 88
+              89:          11 Load 13(s2D)
+              92:   68(ivec2) Load 91(ic2D)
+              94:    7(fvec4) ImageFetch 89 92 Lod ConstOffset 93 70
+              95:    7(fvec4) Load 9(v)
+              96:    7(fvec4) FAdd 95 94
+                              Store 9(v) 96
+             101:          98 Load 100(sr)
+             102:   68(ivec2) Load 91(ic2D)
+             104:    7(fvec4) ImageFetch 101 102 ConstOffset 103
+             105:    7(fvec4) Load 9(v)
+             106:    7(fvec4) FAdd 105 104
+                              Store 9(v) 106
+             107:          62 Load 64(s2DShadow)
+             108:   53(fvec3) Load 55(c3D)
+             109:    6(float) Load 29(c1D)
+             110:    6(float) CompositeExtract 108 2
+             111:    6(float) ImageSampleDrefExplicitLod 107 108 110 Lod ConstOffset 109 70
+             112:     34(ptr) AccessChain 9(v) 33
+             113:    6(float) Load 112
+             114:    6(float) FAdd 113 111
+             115:     34(ptr) AccessChain 9(v) 33
+                              Store 115 114
+             116:          11 Load 13(s2D)
+             117:   53(fvec3) Load 55(c3D)
+             118:    6(float) Load 29(c1D)
+             119:    7(fvec4) ImageSampleProjExplicitLod 116 117 Lod ConstOffset 118 70
+             120:    7(fvec4) Load 9(v)
+             121:    7(fvec4) FAdd 120 119
+                              Store 9(v) 121
+             126:         123 Load 125(sCube)
+             127:   53(fvec3) Load 55(c3D)
+             128:   53(fvec3) Load 55(c3D)
+             129:   53(fvec3) Load 55(c3D)
+             130:    7(fvec4) ImageSampleExplicitLod 126 127 Grad 128 129
+             131:    7(fvec4) Load 9(v)
+             132:    7(fvec4) FAdd 131 130
+                              Store 9(v) 132
+             137:         134 Load 136(s2DArrayShadow)
+             138:    7(fvec4) Load 26(c4D)
+             139:   15(fvec2) Load 17(c2D)
+             140:   15(fvec2) Load 17(c2D)
+             141:    6(float) CompositeExtract 138 3
+             142:    6(float) ImageSampleDrefExplicitLod 137 138 141 Grad ConstOffset 139 140 70
+             144:     34(ptr) AccessChain 9(v) 143
+             145:    6(float) Load 144
+             146:    6(float) FAdd 145 142
+             147:     34(ptr) AccessChain 9(v) 143
+                              Store 147 146
+             148:          40 Load 42(s3D)
+             149:    7(fvec4) Load 26(c4D)
+             150:   53(fvec3) Load 55(c3D)
+             151:   53(fvec3) Load 55(c3D)
+             152:    7(fvec4) ImageSampleProjExplicitLod 148 149 Grad 150 151
+             153:    7(fvec4) Load 9(v)
+             154:    7(fvec4) FAdd 153 152
+                              Store 9(v) 154
+             155:          11 Load 13(s2D)
+             156:   53(fvec3) Load 55(c3D)
+             157:   15(fvec2) Load 17(c2D)
+             158:   15(fvec2) Load 17(c2D)
+             159:    7(fvec4) ImageSampleProjExplicitLod 155 156 Grad ConstOffset 157 158 70
+             160:    7(fvec4) Load 9(v)
+             161:    7(fvec4) FAdd 160 159
+                              Store 9(v) 161
+             169:         166 Load 168(is2D)
+             170:   15(fvec2) Load 17(c2D)
+             171:  162(ivec4) ImageSampleImplicitLod 169 170
+                              Store 164(iv) 171
+             172:  162(ivec4) Load 164(iv)
+             173:    7(fvec4) ConvertSToF 172
+             174:    7(fvec4) Load 9(v)
+             175:    7(fvec4) FAdd 174 173
+                              Store 9(v) 175
+             176:         166 Load 168(is2D)
+             177:    7(fvec4) Load 26(c4D)
+             178:  162(ivec4) ImageSampleProjImplicitLod 176 177 ConstOffset 70
+                              Store 164(iv) 178
+             179:  162(ivec4) Load 164(iv)
+             180:    7(fvec4) ConvertSToF 179
+             181:    7(fvec4) Load 9(v)
+             182:    7(fvec4) FAdd 181 180
+                              Store 9(v) 182
+             183:         166 Load 168(is2D)
+             184:   53(fvec3) Load 55(c3D)
+             185:    6(float) Load 29(c1D)
+             186:  162(ivec4) ImageSampleProjExplicitLod 183 184 Lod 185
+                              Store 164(iv) 186
+             187:  162(ivec4) Load 164(iv)
+             188:    7(fvec4) ConvertSToF 187
+             189:    7(fvec4) Load 9(v)
+             190:    7(fvec4) FAdd 189 188
+                              Store 9(v) 190
+             191:         166 Load 168(is2D)
+             192:   53(fvec3) Load 55(c3D)
+             193:   15(fvec2) Load 17(c2D)
+             194:   15(fvec2) Load 17(c2D)
+             195:  162(ivec4) ImageSampleProjExplicitLod 191 192 Grad 193 194
+                              Store 164(iv) 195
+             196:  162(ivec4) Load 164(iv)
+             197:    7(fvec4) ConvertSToF 196
+             198:    7(fvec4) Load 9(v)
+             199:    7(fvec4) FAdd 198 197
+                              Store 9(v) 199
+             204:         201 Load 203(is3D)
+             205:   53(fvec3) Load 55(c3D)
+             207:  162(ivec4) ImageSampleImplicitLod 204 205 Bias 206
+                              Store 164(iv) 207
+             208:  162(ivec4) Load 164(iv)
+             209:    7(fvec4) ConvertSToF 208
+             210:    7(fvec4) Load 9(v)
+             211:    7(fvec4) FAdd 210 209
+                              Store 9(v) 211
+             216:         213 Load 215(isCube)
+             217:   53(fvec3) Load 55(c3D)
+             218:    6(float) Load 29(c1D)
+             219:  162(ivec4) ImageSampleExplicitLod 216 217 Lod 218
+                              Store 164(iv) 219
+             220:  162(ivec4) Load 164(iv)
+             221:    7(fvec4) ConvertSToF 220
+             222:    7(fvec4) Load 9(v)
+             223:    7(fvec4) FAdd 222 221
+                              Store 9(v) 223
+             228:         225 Load 227(is2DArray)
+             229:   79(ivec3) Load 81(ic3D)
+             230:     67(int) Load 84(ic1D)
+             231:  162(ivec4) ImageFetch 228 229 Lod 230
+                              Store 164(iv) 231
+             232:  162(ivec4) Load 164(iv)
+             233:    7(fvec4) ConvertSToF 232
+             234:    7(fvec4) Load 9(v)
+             235:    7(fvec4) FAdd 234 233
+                              Store 9(v) 235
+             242:         239 Load 241(sCubeShadow)
+             244:         238 Image 242
+             245:   68(ivec2) ImageQuerySizeLod 244 243
+                              Store 237(iv2) 245
+             248:    7(fvec4) Load 9(v)
+             249:   68(ivec2) Load 237(iv2)
+             250:   15(fvec2) ConvertSToF 249
+             252:    6(float) CompositeExtract 250 0
+             253:    6(float) CompositeExtract 250 1
+             254:    7(fvec4) CompositeConstruct 252 253 251 251
+             255:    7(fvec4) FAdd 248 254
+                              Store 247(FragData) 255
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out
index 1ee8262..c29527d 100755
--- a/Test/baseResults/spv.nonSquare.vert.out
+++ b/Test/baseResults/spv.nonSquare.vert.out
@@ -1,116 +1,116 @@
-spv.nonSquare.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 90

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 12 55

-                              Source GLSL 120

-                              Name 4  "main"

-                              Name 9  "a"

-                              Name 12  "v3"

-                              Name 16  "m23"

-                              Name 19  "b"

-                              Name 22  "m32"

-                              Name 28  "gl_Position"

-                              Name 55  "v4"

-                              Decorate 28(gl_Position) BuiltIn Position

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 2

-               8:             TypePointer Function 7(fvec2)

-              10:             TypeVector 6(float) 3

-              11:             TypePointer Input 10(fvec3)

-          12(v3):     11(ptr) Variable Input

-              14:             TypeMatrix 10(fvec3) 2

-              15:             TypePointer Function 14

-              20:             TypeMatrix 7(fvec2) 3

-              21:             TypePointer UniformConstant 20

-         22(m32):     21(ptr) Variable UniformConstant

-              26:             TypeVector 6(float) 4

-              27:             TypePointer Output 26(fvec4)

- 28(gl_Position):     27(ptr) Variable Output

-              31:             TypeMatrix 10(fvec3) 3

-              35:    6(float) Constant 0

-              40:             TypeMatrix 26(fvec4) 4

-              41:    6(float) Constant 1077936128

-              42:    6(float) Constant 1086324736

-              43:   26(fvec4) ConstantComposite 41 42 35 35

-              44:    6(float) Constant 1091567616

-              45:    6(float) Constant 1094713344

-              46:   26(fvec4) ConstantComposite 44 45 35 35

-              47:    6(float) Constant 1097859072

-              48:    6(float) Constant 1099956224

-              49:   26(fvec4) ConstantComposite 47 48 35 35

-              50:    6(float) Constant 1101529088

-              51:    6(float) Constant 1103101952

-              52:   26(fvec4) ConstantComposite 50 51 35 35

-              53:          40 ConstantComposite 43 46 49 52

-              54:             TypePointer Input 26(fvec4)

-          55(v4):     54(ptr) Variable Input

-              59:    6(float) Constant 1112014848

-              60:    6(float) Constant 1121714176

-              61:    6(float) Constant 1126825984

-              62:    6(float) Constant 1130758144

-              63:   26(fvec4) ConstantComposite 59 60 61 62

-              65:    6(float) Constant 1106247680

-              66:    6(float) Constant 1114636288

-              67:   26(fvec4) ConstantComposite 65 66 35 35

-              69:    6(float) Constant 1101004800

-              70:    6(float) Constant 1092616192

-              71:    6(float) Constant 1084227584

-              72:   26(fvec4) ConstantComposite 69 70 42 71

-              74:    7(fvec2) ConstantComposite 70 69

-              75:             TypeMatrix 26(fvec4) 2

-              76:   26(fvec4) ConstantComposite 41 35 35 35

-              77:   26(fvec4) ConstantComposite 35 41 35 35

-              78:          75 ConstantComposite 76 77

-              79:             TypeMatrix 7(fvec2) 4

-              80:    6(float) Constant 1065353216

-              81:    6(float) Constant 1073741824

-              82:    7(fvec2) ConstantComposite 80 81

-              83:    6(float) Constant 1082130432

-              84:    7(fvec2) ConstantComposite 41 83

-              85:    7(fvec2) ConstantComposite 71 42

-              86:    6(float) Constant 1088421888

-              87:    6(float) Constant 1090519040

-              88:    7(fvec2) ConstantComposite 86 87

-              89:          79 ConstantComposite 82 84 85 88

-         4(main):           2 Function None 3

-               5:             Label

-            9(a):      8(ptr) Variable Function

-         16(m23):     15(ptr) Variable Function

-           19(b):      8(ptr) Variable Function

-              13:   10(fvec3) Load 12(v3)

-              17:          14 Load 16(m23)

-              18:    7(fvec2) VectorTimesMatrix 13 17

-                              Store 9(a) 18

-              23:          20 Load 22(m32)

-              24:   10(fvec3) Load 12(v3)

-              25:    7(fvec2) MatrixTimesVector 23 24

-                              Store 19(b) 25

-              29:          14 Load 16(m23)

-              30:          20 Load 22(m32)

-              32:          31 MatrixTimesMatrix 29 30

-              33:   10(fvec3) Load 12(v3)

-              34:   10(fvec3) MatrixTimesVector 32 33

-              36:    6(float) CompositeExtract 34 0

-              37:    6(float) CompositeExtract 34 1

-              38:    6(float) CompositeExtract 34 2

-              39:   26(fvec4) CompositeConstruct 36 37 38 35

-              56:   26(fvec4) Load 55(v4)

-              57:   26(fvec4) MatrixTimesVector 53 56

-              58:   26(fvec4) FAdd 39 57

-              64:   26(fvec4) FAdd 58 63

-              68:   26(fvec4) FAdd 64 67

-              73:   26(fvec4) FAdd 68 72

-                              Store 28(gl_Position) 73

-                              Return

-                              FunctionEnd

+spv.nonSquare.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 90
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 12 55
+                              Source GLSL 120
+                              Name 4  "main"
+                              Name 9  "a"
+                              Name 12  "v3"
+                              Name 16  "m23"
+                              Name 19  "b"
+                              Name 22  "m32"
+                              Name 28  "gl_Position"
+                              Name 55  "v4"
+                              Decorate 28(gl_Position) BuiltIn Position
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 2
+               8:             TypePointer Function 7(fvec2)
+              10:             TypeVector 6(float) 3
+              11:             TypePointer Input 10(fvec3)
+          12(v3):     11(ptr) Variable Input
+              14:             TypeMatrix 10(fvec3) 2
+              15:             TypePointer Function 14
+              20:             TypeMatrix 7(fvec2) 3
+              21:             TypePointer UniformConstant 20
+         22(m32):     21(ptr) Variable UniformConstant
+              26:             TypeVector 6(float) 4
+              27:             TypePointer Output 26(fvec4)
+ 28(gl_Position):     27(ptr) Variable Output
+              31:             TypeMatrix 10(fvec3) 3
+              35:    6(float) Constant 0
+              40:             TypeMatrix 26(fvec4) 4
+              41:    6(float) Constant 1077936128
+              42:    6(float) Constant 1086324736
+              43:   26(fvec4) ConstantComposite 41 42 35 35
+              44:    6(float) Constant 1091567616
+              45:    6(float) Constant 1094713344
+              46:   26(fvec4) ConstantComposite 44 45 35 35
+              47:    6(float) Constant 1097859072
+              48:    6(float) Constant 1099956224
+              49:   26(fvec4) ConstantComposite 47 48 35 35
+              50:    6(float) Constant 1101529088
+              51:    6(float) Constant 1103101952
+              52:   26(fvec4) ConstantComposite 50 51 35 35
+              53:          40 ConstantComposite 43 46 49 52
+              54:             TypePointer Input 26(fvec4)
+          55(v4):     54(ptr) Variable Input
+              59:    6(float) Constant 1112014848
+              60:    6(float) Constant 1121714176
+              61:    6(float) Constant 1126825984
+              62:    6(float) Constant 1130758144
+              63:   26(fvec4) ConstantComposite 59 60 61 62
+              65:    6(float) Constant 1106247680
+              66:    6(float) Constant 1114636288
+              67:   26(fvec4) ConstantComposite 65 66 35 35
+              69:    6(float) Constant 1101004800
+              70:    6(float) Constant 1092616192
+              71:    6(float) Constant 1084227584
+              72:   26(fvec4) ConstantComposite 69 70 42 71
+              74:    7(fvec2) ConstantComposite 70 69
+              75:             TypeMatrix 26(fvec4) 2
+              76:   26(fvec4) ConstantComposite 41 35 35 35
+              77:   26(fvec4) ConstantComposite 35 41 35 35
+              78:          75 ConstantComposite 76 77
+              79:             TypeMatrix 7(fvec2) 4
+              80:    6(float) Constant 1065353216
+              81:    6(float) Constant 1073741824
+              82:    7(fvec2) ConstantComposite 80 81
+              83:    6(float) Constant 1082130432
+              84:    7(fvec2) ConstantComposite 41 83
+              85:    7(fvec2) ConstantComposite 71 42
+              86:    6(float) Constant 1088421888
+              87:    6(float) Constant 1090519040
+              88:    7(fvec2) ConstantComposite 86 87
+              89:          79 ConstantComposite 82 84 85 88
+         4(main):           2 Function None 3
+               5:             Label
+            9(a):      8(ptr) Variable Function
+         16(m23):     15(ptr) Variable Function
+           19(b):      8(ptr) Variable Function
+              13:   10(fvec3) Load 12(v3)
+              17:          14 Load 16(m23)
+              18:    7(fvec2) VectorTimesMatrix 13 17
+                              Store 9(a) 18
+              23:          20 Load 22(m32)
+              24:   10(fvec3) Load 12(v3)
+              25:    7(fvec2) MatrixTimesVector 23 24
+                              Store 19(b) 25
+              29:          14 Load 16(m23)
+              30:          20 Load 22(m32)
+              32:          31 MatrixTimesMatrix 29 30
+              33:   10(fvec3) Load 12(v3)
+              34:   10(fvec3) MatrixTimesVector 32 33
+              36:    6(float) CompositeExtract 34 0
+              37:    6(float) CompositeExtract 34 1
+              38:    6(float) CompositeExtract 34 2
+              39:   26(fvec4) CompositeConstruct 36 37 38 35
+              56:   26(fvec4) Load 55(v4)
+              57:   26(fvec4) MatrixTimesVector 53 56
+              58:   26(fvec4) FAdd 39 57
+              64:   26(fvec4) FAdd 58 63
+              68:   26(fvec4) FAdd 64 67
+              73:   26(fvec4) FAdd 68 72
+                              Store 28(gl_Position) 73
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out
index 32bf094..ba1ae6a 100755
--- a/Test/baseResults/spv.precision.frag.out
+++ b/Test/baseResults/spv.precision.frag.out
@@ -1,174 +1,174 @@
-spv.precision.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 112

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 57 59 23 71

-                              ExecutionMode 4 OriginLowerLeft

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 12  "foo(vf3;"

-                              Name 11  "mv3"

-                              Name 19  "boolfun(vb2;"

-                              Name 18  "bv2"

-                              Name 23  "highfin"

-                              Name 36  "sum"

-                              Name 38  "uniform_medium"

-                              Name 40  "uniform_high"

-                              Name 46  "uniform_low"

-                              Name 51  "arg1"

-                              Name 53  "arg2"

-                              Name 55  "d"

-                              Name 57  "lowfin"

-                              Name 59  "mediumfin"

-                              Name 63  "global_highp"

-                              Name 67  "local_highp"

-                              Name 71  "mediumfout"

-                              Name 102  "ub2"

-                              Name 103  "param"

-                              Decorate 36(sum) RelaxedPrecision

-                              Decorate 38(uniform_medium) RelaxedPrecision

-                              Decorate 46(uniform_low) RelaxedPrecision

-                              Decorate 51(arg1) RelaxedPrecision

-                              Decorate 53(arg2) RelaxedPrecision

-                              Decorate 55(d) RelaxedPrecision

-                              Decorate 57(lowfin) RelaxedPrecision

-                              Decorate 59(mediumfin) RelaxedPrecision

-                              Decorate 71(mediumfout) RelaxedPrecision

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 3

-               8:             TypePointer Function 7(fvec3)

-               9:             TypeVector 6(float) 2

-              10:             TypeFunction 9(fvec2) 8(ptr)

-              14:             TypeBool

-              15:             TypeVector 14(bool) 2

-              16:             TypePointer Function 15(bvec2)

-              17:             TypeFunction 14(bool) 16(ptr)

-              21:             TypeVector 6(float) 4

-              22:             TypePointer Input 21(fvec4)

-     23(highfin):     22(ptr) Variable Input

-              28:    14(bool) ConstantFalse

-              29:    14(bool) ConstantTrue

-              30:   15(bvec2) ConstantComposite 28 29

-              34:             TypeInt 32 1

-              35:             TypePointer Function 34(int)

-              37:             TypePointer UniformConstant 34(int)

-38(uniform_medium):     37(ptr) Variable UniformConstant

-40(uniform_high):     37(ptr) Variable UniformConstant

- 46(uniform_low):     37(ptr) Variable UniformConstant

-              50:             TypePointer Function 6(float)

-              52:    6(float) Constant 1078774989

-              54:    6(float) Constant 1232730691

-              56:             TypePointer Input 6(float)

-      57(lowfin):     56(ptr) Variable Input

-   59(mediumfin):     56(ptr) Variable Input

-              62:             TypePointer Private 6(float)

-63(global_highp):     62(ptr) Variable Private

-              66:             TypePointer Function 21(fvec4)

-              70:             TypePointer Output 21(fvec4)

-  71(mediumfout):     70(ptr) Variable Output

-              80:     34(int) Constant 4

-              82:             TypeVector 34(int) 2

-              90:             TypeInt 32 0

-              91:     90(int) Constant 0

-             101:             TypePointer UniformConstant 15(bvec2)

-        102(ub2):    101(ptr) Variable UniformConstant

-             109:    6(float) Constant 1065353216

-         4(main):           2 Function None 3

-               5:             Label

-         36(sum):     35(ptr) Variable Function

-        51(arg1):     50(ptr) Variable Function

-        53(arg2):     50(ptr) Variable Function

-           55(d):     50(ptr) Variable Function

- 67(local_highp):     66(ptr) Variable Function

-      103(param):     16(ptr) Variable Function

-              39:     34(int) Load 38(uniform_medium)

-              41:     34(int) Load 40(uniform_high)

-              42:     34(int) IAdd 39 41

-                              Store 36(sum) 42

-              43:     34(int) Load 40(uniform_high)

-              44:     34(int) Load 36(sum)

-              45:     34(int) IAdd 44 43

-                              Store 36(sum) 45

-              47:     34(int) Load 46(uniform_low)

-              48:     34(int) Load 36(sum)

-              49:     34(int) IAdd 48 47

-                              Store 36(sum) 49

-                              Store 51(arg1) 52

-                              Store 53(arg2) 54

-              58:    6(float) Load 57(lowfin)

-              60:    6(float) Load 59(mediumfin)

-              61:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 58 60

-                              Store 55(d) 61

-              64:   21(fvec4) Load 23(highfin)

-              65:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 64

-                              Store 63(global_highp) 65

-              68:    6(float) Load 63(global_highp)

-              69:   21(fvec4) CompositeConstruct 68 68 68 68

-                              Store 67(local_highp) 69

-              72:    6(float) Load 55(d)

-              73:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72

-              74:   21(fvec4) CompositeConstruct 73 73 73 73

-              75:    6(float) Load 53(arg2)

-              76:   21(fvec4) CompositeConstruct 75 75 75 75

-              77:   21(fvec4) FAdd 74 76

-              78:   21(fvec4) Load 67(local_highp)

-              79:   21(fvec4) FAdd 77 78

-                              Store 71(mediumfout) 79

-              81:     34(int) Load 46(uniform_low)

-              83:   82(ivec2) CompositeConstruct 81 81

-              84:     34(int) Load 40(uniform_high)

-              85:   82(ivec2) CompositeConstruct 84 84

-              86:   82(ivec2) IMul 83 85

-              87:     34(int) Load 40(uniform_high)

-              88:   82(ivec2) CompositeConstruct 87 87

-              89:   82(ivec2) IAdd 86 88

-              92:     34(int) CompositeExtract 89 0

-              93:     34(int) IAdd 80 92

-              94:     34(int) Load 36(sum)

-              95:     34(int) IAdd 94 93

-                              Store 36(sum) 95

-              96:     34(int) Load 36(sum)

-              97:    6(float) ConvertSToF 96

-              98:   21(fvec4) CompositeConstruct 97 97 97 97

-              99:   21(fvec4) Load 71(mediumfout)

-             100:   21(fvec4) FAdd 99 98

-                              Store 71(mediumfout) 100

-             104:   15(bvec2) Load 102(ub2)

-                              Store 103(param) 104

-             105:    14(bool) FunctionCall 19(boolfun(vb2;) 103(param)

-                              SelectionMerge 107 None

-                              BranchConditional 105 106 107

-             106:               Label

-             108:   21(fvec4)   Load 71(mediumfout)

-             110:   21(fvec4)   CompositeConstruct 109 109 109 109

-             111:   21(fvec4)   FAdd 108 110

-                                Store 71(mediumfout) 111

-                                Branch 107

-             107:             Label

-                              Return

-                              FunctionEnd

-    12(foo(vf3;):    9(fvec2) Function None 10

-         11(mv3):      8(ptr) FunctionParameter

-              13:             Label

-              24:   21(fvec4) Load 23(highfin)

-              25:    9(fvec2) VectorShuffle 24 24 0 1

-                              ReturnValue 25

-                              FunctionEnd

-19(boolfun(vb2;):    14(bool) Function None 17

-         18(bv2):     16(ptr) FunctionParameter

-              20:             Label

-              27:   15(bvec2) Load 18(bv2)

-              31:   15(bvec2) IEqual 27 30

-              32:    14(bool) All 31

-                              ReturnValue 32

-                              FunctionEnd

+spv.precision.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 112
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 57 59 23 71
+                              ExecutionMode 4 OriginLowerLeft
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 12  "foo(vf3;"
+                              Name 11  "mv3"
+                              Name 19  "boolfun(vb2;"
+                              Name 18  "bv2"
+                              Name 23  "highfin"
+                              Name 36  "sum"
+                              Name 38  "uniform_medium"
+                              Name 40  "uniform_high"
+                              Name 46  "uniform_low"
+                              Name 51  "arg1"
+                              Name 53  "arg2"
+                              Name 55  "d"
+                              Name 57  "lowfin"
+                              Name 59  "mediumfin"
+                              Name 63  "global_highp"
+                              Name 67  "local_highp"
+                              Name 71  "mediumfout"
+                              Name 102  "ub2"
+                              Name 103  "param"
+                              Decorate 36(sum) RelaxedPrecision
+                              Decorate 38(uniform_medium) RelaxedPrecision
+                              Decorate 46(uniform_low) RelaxedPrecision
+                              Decorate 51(arg1) RelaxedPrecision
+                              Decorate 53(arg2) RelaxedPrecision
+                              Decorate 55(d) RelaxedPrecision
+                              Decorate 57(lowfin) RelaxedPrecision
+                              Decorate 59(mediumfin) RelaxedPrecision
+                              Decorate 71(mediumfout) RelaxedPrecision
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypePointer Function 7(fvec3)
+               9:             TypeVector 6(float) 2
+              10:             TypeFunction 9(fvec2) 8(ptr)
+              14:             TypeBool
+              15:             TypeVector 14(bool) 2
+              16:             TypePointer Function 15(bvec2)
+              17:             TypeFunction 14(bool) 16(ptr)
+              21:             TypeVector 6(float) 4
+              22:             TypePointer Input 21(fvec4)
+     23(highfin):     22(ptr) Variable Input
+              28:    14(bool) ConstantFalse
+              29:    14(bool) ConstantTrue
+              30:   15(bvec2) ConstantComposite 28 29
+              34:             TypeInt 32 1
+              35:             TypePointer Function 34(int)
+              37:             TypePointer UniformConstant 34(int)
+38(uniform_medium):     37(ptr) Variable UniformConstant
+40(uniform_high):     37(ptr) Variable UniformConstant
+ 46(uniform_low):     37(ptr) Variable UniformConstant
+              50:             TypePointer Function 6(float)
+              52:    6(float) Constant 1078774989
+              54:    6(float) Constant 1232730691
+              56:             TypePointer Input 6(float)
+      57(lowfin):     56(ptr) Variable Input
+   59(mediumfin):     56(ptr) Variable Input
+              62:             TypePointer Private 6(float)
+63(global_highp):     62(ptr) Variable Private
+              66:             TypePointer Function 21(fvec4)
+              70:             TypePointer Output 21(fvec4)
+  71(mediumfout):     70(ptr) Variable Output
+              80:     34(int) Constant 4
+              82:             TypeVector 34(int) 2
+              90:             TypeInt 32 0
+              91:     90(int) Constant 0
+             101:             TypePointer UniformConstant 15(bvec2)
+        102(ub2):    101(ptr) Variable UniformConstant
+             109:    6(float) Constant 1065353216
+         4(main):           2 Function None 3
+               5:             Label
+         36(sum):     35(ptr) Variable Function
+        51(arg1):     50(ptr) Variable Function
+        53(arg2):     50(ptr) Variable Function
+           55(d):     50(ptr) Variable Function
+ 67(local_highp):     66(ptr) Variable Function
+      103(param):     16(ptr) Variable Function
+              39:     34(int) Load 38(uniform_medium)
+              41:     34(int) Load 40(uniform_high)
+              42:     34(int) IAdd 39 41
+                              Store 36(sum) 42
+              43:     34(int) Load 40(uniform_high)
+              44:     34(int) Load 36(sum)
+              45:     34(int) IAdd 44 43
+                              Store 36(sum) 45
+              47:     34(int) Load 46(uniform_low)
+              48:     34(int) Load 36(sum)
+              49:     34(int) IAdd 48 47
+                              Store 36(sum) 49
+                              Store 51(arg1) 52
+                              Store 53(arg2) 54
+              58:    6(float) Load 57(lowfin)
+              60:    6(float) Load 59(mediumfin)
+              61:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 58 60
+                              Store 55(d) 61
+              64:   21(fvec4) Load 23(highfin)
+              65:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 64
+                              Store 63(global_highp) 65
+              68:    6(float) Load 63(global_highp)
+              69:   21(fvec4) CompositeConstruct 68 68 68 68
+                              Store 67(local_highp) 69
+              72:    6(float) Load 55(d)
+              73:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72
+              74:   21(fvec4) CompositeConstruct 73 73 73 73
+              75:    6(float) Load 53(arg2)
+              76:   21(fvec4) CompositeConstruct 75 75 75 75
+              77:   21(fvec4) FAdd 74 76
+              78:   21(fvec4) Load 67(local_highp)
+              79:   21(fvec4) FAdd 77 78
+                              Store 71(mediumfout) 79
+              81:     34(int) Load 46(uniform_low)
+              83:   82(ivec2) CompositeConstruct 81 81
+              84:     34(int) Load 40(uniform_high)
+              85:   82(ivec2) CompositeConstruct 84 84
+              86:   82(ivec2) IMul 83 85
+              87:     34(int) Load 40(uniform_high)
+              88:   82(ivec2) CompositeConstruct 87 87
+              89:   82(ivec2) IAdd 86 88
+              92:     34(int) CompositeExtract 89 0
+              93:     34(int) IAdd 80 92
+              94:     34(int) Load 36(sum)
+              95:     34(int) IAdd 94 93
+                              Store 36(sum) 95
+              96:     34(int) Load 36(sum)
+              97:    6(float) ConvertSToF 96
+              98:   21(fvec4) CompositeConstruct 97 97 97 97
+              99:   21(fvec4) Load 71(mediumfout)
+             100:   21(fvec4) FAdd 99 98
+                              Store 71(mediumfout) 100
+             104:   15(bvec2) Load 102(ub2)
+                              Store 103(param) 104
+             105:    14(bool) FunctionCall 19(boolfun(vb2;) 103(param)
+                              SelectionMerge 107 None
+                              BranchConditional 105 106 107
+             106:               Label
+             108:   21(fvec4)   Load 71(mediumfout)
+             110:   21(fvec4)   CompositeConstruct 109 109 109 109
+             111:   21(fvec4)   FAdd 108 110
+                                Store 71(mediumfout) 111
+                                Branch 107
+             107:             Label
+                              Return
+                              FunctionEnd
+    12(foo(vf3;):    9(fvec2) Function None 10
+         11(mv3):      8(ptr) FunctionParameter
+              13:             Label
+              24:   21(fvec4) Load 23(highfin)
+              25:    9(fvec2) VectorShuffle 24 24 0 1
+                              ReturnValue 25
+                              FunctionEnd
+19(boolfun(vb2;):    14(bool) Function None 17
+         18(bv2):     16(ptr) FunctionParameter
+              20:             Label
+              27:   15(bvec2) Load 18(bv2)
+              31:   15(bvec2) IEqual 27 30
+              32:    14(bool) All 31
+                              ReturnValue 32
+                              FunctionEnd
diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out
index f579125..b166ba1 100755
--- a/Test/baseResults/spv.prepost.frag.out
+++ b/Test/baseResults/spv.prepost.frag.out
@@ -1,147 +1,147 @@
-spv.prepost.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 94

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main"

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 140

-                              Name 4  "main"

-                              Name 8  "index"

-                              Name 14  "s"

-                              MemberName 14(s) 0  "y"

-                              Name 16  "str"

-                              Name 22  "t"

-                              Name 50  "x"

-                              Name 61  "y"

-                              Name 66  "z"

-                              Name 73  "v"

-                              Name 90  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 5

-              10:             TypeFloat 32

-              11:             TypeInt 32 0

-              12:     11(int) Constant 5

-              13:             TypeArray 10(float) 12

-           14(s):             TypeStruct 13

-              15:             TypePointer Function 14(s)

-              17:      6(int) Constant 0

-              18:      6(int) Constant 4

-              19:   10(float) Constant 1073741824

-              20:             TypePointer Function 10(float)

-              24:      6(int) Constant 1

-              28:   10(float) Constant 1065353216

-              71:             TypeVector 10(float) 4

-              72:             TypePointer Function 71(fvec4)

-              74:   10(float) Constant 1077936128

-              75:   10(float) Constant 1082130432

-              76:   71(fvec4) ConstantComposite 28 19 74 75

-              77:     11(int) Constant 2

-              81:     11(int) Constant 1

-              83:     11(int) Constant 3

-              87:     11(int) Constant 0

-              89:             TypePointer Output 71(fvec4)

-90(gl_FragColor):     89(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-        8(index):      7(ptr) Variable Function

-         16(str):     15(ptr) Variable Function

-           22(t):     20(ptr) Variable Function

-           50(x):     20(ptr) Variable Function

-           61(y):     20(ptr) Variable Function

-           66(z):     20(ptr) Variable Function

-           73(v):     72(ptr) Variable Function

-                              Store 8(index) 9

-              21:     20(ptr) AccessChain 16(str) 17 18

-                              Store 21 19

-              23:      6(int) Load 8(index)

-              25:      6(int) ISub 23 24

-                              Store 8(index) 25

-              26:     20(ptr) AccessChain 16(str) 17 25

-              27:   10(float) Load 26

-              29:   10(float) FAdd 27 28

-                              Store 26 29

-                              Store 22(t) 29

-              30:   10(float) Load 22(t)

-              31:     20(ptr) AccessChain 16(str) 17 18

-              32:   10(float) Load 31

-              33:   10(float) FAdd 32 30

-              34:     20(ptr) AccessChain 16(str) 17 18

-                              Store 34 33

-              35:     20(ptr) AccessChain 16(str) 17 18

-              36:   10(float) Load 35

-              37:   10(float) FSub 36 28

-                              Store 35 37

-                              Store 22(t) 36

-              38:      6(int) Load 8(index)

-              39:      6(int) IAdd 38 24

-                              Store 8(index) 39

-              40:   10(float) Load 22(t)

-              41:     20(ptr) AccessChain 16(str) 17 38

-              42:   10(float) Load 41

-              43:   10(float) FAdd 42 40

-              44:     20(ptr) AccessChain 16(str) 17 38

-                              Store 44 43

-              45:      6(int) Load 8(index)

-              46:      6(int) ISub 45 24

-                              Store 8(index) 46

-              47:     20(ptr) AccessChain 16(str) 17 46

-              48:   10(float) Load 47

-              49:   10(float) FSub 48 28

-                              Store 47 49

-              51:     20(ptr) AccessChain 16(str) 17 18

-              52:   10(float) Load 51

-                              Store 50(x) 52

-              53:   10(float) Load 50(x)

-              54:   10(float) FAdd 53 28

-                              Store 50(x) 54

-              55:   10(float) Load 50(x)

-              56:   10(float) FSub 55 28

-                              Store 50(x) 56

-              57:   10(float) Load 50(x)

-              58:   10(float) FAdd 57 28

-                              Store 50(x) 58

-              59:   10(float) Load 50(x)

-              60:   10(float) FSub 59 28

-                              Store 50(x) 60

-              62:   10(float) Load 50(x)

-              63:   10(float) Load 50(x)

-              64:   10(float) FAdd 63 28

-                              Store 50(x) 64

-              65:   10(float) FMul 62 64

-                              Store 61(y) 65

-              67:   10(float) Load 61(y)

-              68:   10(float) Load 50(x)

-              69:   10(float) FSub 68 28

-                              Store 50(x) 69

-              70:   10(float) FMul 67 68

-                              Store 66(z) 70

-                              Store 73(v) 76

-              78:     20(ptr) AccessChain 73(v) 77

-              79:   10(float) Load 78

-              80:   10(float) FSub 79 28

-                              Store 78 80

-              82:     20(ptr) AccessChain 73(v) 81

-                              Store 82 79

-              84:     20(ptr) AccessChain 73(v) 83

-              85:   10(float) Load 84

-              86:   10(float) FSub 85 28

-                              Store 84 86

-              88:     20(ptr) AccessChain 73(v) 87

-                              Store 88 86

-              91:   10(float) Load 66(z)

-              92:   71(fvec4) Load 73(v)

-              93:   71(fvec4) VectorTimesScalar 92 91

-                              Store 90(gl_FragColor) 93

-                              Return

-                              FunctionEnd

+spv.prepost.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 94
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main"
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 140
+                              Name 4  "main"
+                              Name 8  "index"
+                              Name 14  "s"
+                              MemberName 14(s) 0  "y"
+                              Name 16  "str"
+                              Name 22  "t"
+                              Name 50  "x"
+                              Name 61  "y"
+                              Name 66  "z"
+                              Name 73  "v"
+                              Name 90  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 5
+              10:             TypeFloat 32
+              11:             TypeInt 32 0
+              12:     11(int) Constant 5
+              13:             TypeArray 10(float) 12
+           14(s):             TypeStruct 13
+              15:             TypePointer Function 14(s)
+              17:      6(int) Constant 0
+              18:      6(int) Constant 4
+              19:   10(float) Constant 1073741824
+              20:             TypePointer Function 10(float)
+              24:      6(int) Constant 1
+              28:   10(float) Constant 1065353216
+              71:             TypeVector 10(float) 4
+              72:             TypePointer Function 71(fvec4)
+              74:   10(float) Constant 1077936128
+              75:   10(float) Constant 1082130432
+              76:   71(fvec4) ConstantComposite 28 19 74 75
+              77:     11(int) Constant 2
+              81:     11(int) Constant 1
+              83:     11(int) Constant 3
+              87:     11(int) Constant 0
+              89:             TypePointer Output 71(fvec4)
+90(gl_FragColor):     89(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+        8(index):      7(ptr) Variable Function
+         16(str):     15(ptr) Variable Function
+           22(t):     20(ptr) Variable Function
+           50(x):     20(ptr) Variable Function
+           61(y):     20(ptr) Variable Function
+           66(z):     20(ptr) Variable Function
+           73(v):     72(ptr) Variable Function
+                              Store 8(index) 9
+              21:     20(ptr) AccessChain 16(str) 17 18
+                              Store 21 19
+              23:      6(int) Load 8(index)
+              25:      6(int) ISub 23 24
+                              Store 8(index) 25
+              26:     20(ptr) AccessChain 16(str) 17 25
+              27:   10(float) Load 26
+              29:   10(float) FAdd 27 28
+                              Store 26 29
+                              Store 22(t) 29
+              30:   10(float) Load 22(t)
+              31:     20(ptr) AccessChain 16(str) 17 18
+              32:   10(float) Load 31
+              33:   10(float) FAdd 32 30
+              34:     20(ptr) AccessChain 16(str) 17 18
+                              Store 34 33
+              35:     20(ptr) AccessChain 16(str) 17 18
+              36:   10(float) Load 35
+              37:   10(float) FSub 36 28
+                              Store 35 37
+                              Store 22(t) 36
+              38:      6(int) Load 8(index)
+              39:      6(int) IAdd 38 24
+                              Store 8(index) 39
+              40:   10(float) Load 22(t)
+              41:     20(ptr) AccessChain 16(str) 17 38
+              42:   10(float) Load 41
+              43:   10(float) FAdd 42 40
+              44:     20(ptr) AccessChain 16(str) 17 38
+                              Store 44 43
+              45:      6(int) Load 8(index)
+              46:      6(int) ISub 45 24
+                              Store 8(index) 46
+              47:     20(ptr) AccessChain 16(str) 17 46
+              48:   10(float) Load 47
+              49:   10(float) FSub 48 28
+                              Store 47 49
+              51:     20(ptr) AccessChain 16(str) 17 18
+              52:   10(float) Load 51
+                              Store 50(x) 52
+              53:   10(float) Load 50(x)
+              54:   10(float) FAdd 53 28
+                              Store 50(x) 54
+              55:   10(float) Load 50(x)
+              56:   10(float) FSub 55 28
+                              Store 50(x) 56
+              57:   10(float) Load 50(x)
+              58:   10(float) FAdd 57 28
+                              Store 50(x) 58
+              59:   10(float) Load 50(x)
+              60:   10(float) FSub 59 28
+                              Store 50(x) 60
+              62:   10(float) Load 50(x)
+              63:   10(float) Load 50(x)
+              64:   10(float) FAdd 63 28
+                              Store 50(x) 64
+              65:   10(float) FMul 62 64
+                              Store 61(y) 65
+              67:   10(float) Load 61(y)
+              68:   10(float) Load 50(x)
+              69:   10(float) FSub 68 28
+                              Store 50(x) 69
+              70:   10(float) FMul 67 68
+                              Store 66(z) 70
+                              Store 73(v) 76
+              78:     20(ptr) AccessChain 73(v) 77
+              79:   10(float) Load 78
+              80:   10(float) FSub 79 28
+                              Store 78 80
+              82:     20(ptr) AccessChain 73(v) 81
+                              Store 82 79
+              84:     20(ptr) AccessChain 73(v) 83
+              85:   10(float) Load 84
+              86:   10(float) FSub 85 28
+                              Store 84 86
+              88:     20(ptr) AccessChain 73(v) 87
+                              Store 88 86
+              91:   10(float) Load 66(z)
+              92:   71(fvec4) Load 73(v)
+              93:   71(fvec4) VectorTimesScalar 92 91
+                              Store 90(gl_FragColor) 93
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out
index 0e5aa43..f12265c 100755
--- a/Test/baseResults/spv.qualifiers.vert.out
+++ b/Test/baseResults/spv.qualifiers.vert.out
@@ -1,60 +1,60 @@
-spv.qualifiers.vert

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 25

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 11 9 13 15 17 19 23 24

-                              Source GLSL 430

-                              Name 4  "main"

-                              Name 9  "outVc"

-                              Name 11  "inV"

-                              Name 13  "outVs"

-                              Name 15  "outVf"

-                              Name 17  "outVn"

-                              Name 19  "outVcn"

-                              Name 23  "gl_VertexID"

-                              Name 24  "gl_InstanceID"

-                              Decorate 15(outVf) Flat

-                              Decorate 17(outVn) NoPerspective

-                              Decorate 19(outVcn) NoPerspective

-                              Decorate 23(gl_VertexID) BuiltIn VertexId

-                              Decorate 24(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Output 7(fvec4)

-        9(outVc):      8(ptr) Variable Output

-              10:             TypePointer Input 7(fvec4)

-         11(inV):     10(ptr) Variable Input

-       13(outVs):      8(ptr) Variable Output

-       15(outVf):      8(ptr) Variable Output

-       17(outVn):      8(ptr) Variable Output

-      19(outVcn):      8(ptr) Variable Output

-              21:             TypeInt 32 1

-              22:             TypePointer Input 21(int)

- 23(gl_VertexID):     22(ptr) Variable Input

-24(gl_InstanceID):     22(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              12:    7(fvec4) Load 11(inV)

-                              Store 9(outVc) 12

-              14:    7(fvec4) Load 11(inV)

-                              Store 13(outVs) 14

-              16:    7(fvec4) Load 11(inV)

-                              Store 15(outVf) 16

-              18:    7(fvec4) Load 11(inV)

-                              Store 17(outVn) 18

-              20:    7(fvec4) Load 11(inV)

-                              Store 19(outVcn) 20

-                              Return

-                              FunctionEnd

+spv.qualifiers.vert
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 11 9 13 15 17 19 23 24
+                              Source GLSL 430
+                              Name 4  "main"
+                              Name 9  "outVc"
+                              Name 11  "inV"
+                              Name 13  "outVs"
+                              Name 15  "outVf"
+                              Name 17  "outVn"
+                              Name 19  "outVcn"
+                              Name 23  "gl_VertexID"
+                              Name 24  "gl_InstanceID"
+                              Decorate 15(outVf) Flat
+                              Decorate 17(outVn) NoPerspective
+                              Decorate 19(outVcn) NoPerspective
+                              Decorate 23(gl_VertexID) BuiltIn VertexId
+                              Decorate 24(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Output 7(fvec4)
+        9(outVc):      8(ptr) Variable Output
+              10:             TypePointer Input 7(fvec4)
+         11(inV):     10(ptr) Variable Input
+       13(outVs):      8(ptr) Variable Output
+       15(outVf):      8(ptr) Variable Output
+       17(outVn):      8(ptr) Variable Output
+      19(outVcn):      8(ptr) Variable Output
+              21:             TypeInt 32 1
+              22:             TypePointer Input 21(int)
+ 23(gl_VertexID):     22(ptr) Variable Input
+24(gl_InstanceID):     22(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              12:    7(fvec4) Load 11(inV)
+                              Store 9(outVc) 12
+              14:    7(fvec4) Load 11(inV)
+                              Store 13(outVs) 14
+              16:    7(fvec4) Load 11(inV)
+                              Store 15(outVf) 16
+              18:    7(fvec4) Load 11(inV)
+                              Store 17(outVn) 18
+              20:    7(fvec4) Load 11(inV)
+                              Store 19(outVcn) 20
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out
index 81e0ef3..d72730a 100755
--- a/Test/baseResults/spv.queryL.frag.out
+++ b/Test/baseResults/spv.queryL.frag.out
@@ -1,306 +1,306 @@
-spv.queryL.frag

-Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 237

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main"

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 430

-                              Name 4  "main"

-                              Name 9  "lod"

-                              Name 13  "samp1D"

-                              Name 16  "pf"

-                              Name 24  "isamp2D"

-                              Name 26  "pf2"

-                              Name 36  "usamp3D"

-                              Name 40  "pf3"

-                              Name 49  "sampCube"

-                              Name 59  "isamp1DA"

-                              Name 69  "usamp2DA"

-                              Name 79  "isampCubeA"

-                              Name 89  "samp1Ds"

-                              Name 99  "samp2Ds"

-                              Name 109  "sampCubes"

-                              Name 119  "samp1DAs"

-                              Name 129  "samp2DAs"

-                              Name 139  "sampCubeAs"

-                              Name 147  "levels"

-                              Name 154  "usamp2D"

-                              Name 163  "isamp3D"

-                              Name 172  "isampCube"

-                              Name 186  "samp2DA"

-                              Name 195  "usampCubeA"

-                              Name 232  "sampBuf"

-                              Name 236  "sampRect"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 2

-               8:             TypePointer Function 7(fvec2)

-              10:             TypeImage 6(float) 1D sampled format:Unknown

-              11:             TypeSampledImage 10

-              12:             TypePointer UniformConstant 11

-      13(samp1D):     12(ptr) Variable UniformConstant

-              15:             TypePointer Function 6(float)

-              20:             TypeInt 32 1

-              21:             TypeImage 20(int) 2D sampled format:Unknown

-              22:             TypeSampledImage 21

-              23:             TypePointer UniformConstant 22

-     24(isamp2D):     23(ptr) Variable UniformConstant

-              32:             TypeInt 32 0

-              33:             TypeImage 32(int) 3D sampled format:Unknown

-              34:             TypeSampledImage 33

-              35:             TypePointer UniformConstant 34

-     36(usamp3D):     35(ptr) Variable UniformConstant

-              38:             TypeVector 6(float) 3

-              39:             TypePointer Function 38(fvec3)

-              46:             TypeImage 6(float) Cube sampled format:Unknown

-              47:             TypeSampledImage 46

-              48:             TypePointer UniformConstant 47

-    49(sampCube):     48(ptr) Variable UniformConstant

-              56:             TypeImage 20(int) 1D array sampled format:Unknown

-              57:             TypeSampledImage 56

-              58:             TypePointer UniformConstant 57

-    59(isamp1DA):     58(ptr) Variable UniformConstant

-              66:             TypeImage 32(int) 2D array sampled format:Unknown

-              67:             TypeSampledImage 66

-              68:             TypePointer UniformConstant 67

-    69(usamp2DA):     68(ptr) Variable UniformConstant

-              76:             TypeImage 20(int) Cube array sampled format:Unknown

-              77:             TypeSampledImage 76

-              78:             TypePointer UniformConstant 77

-  79(isampCubeA):     78(ptr) Variable UniformConstant

-              86:             TypeImage 6(float) 1D depth sampled format:Unknown

-              87:             TypeSampledImage 86

-              88:             TypePointer UniformConstant 87

-     89(samp1Ds):     88(ptr) Variable UniformConstant

-              96:             TypeImage 6(float) 2D depth sampled format:Unknown

-              97:             TypeSampledImage 96

-              98:             TypePointer UniformConstant 97

-     99(samp2Ds):     98(ptr) Variable UniformConstant

-             106:             TypeImage 6(float) Cube depth sampled format:Unknown

-             107:             TypeSampledImage 106

-             108:             TypePointer UniformConstant 107

-  109(sampCubes):    108(ptr) Variable UniformConstant

-             116:             TypeImage 6(float) 1D depth array sampled format:Unknown

-             117:             TypeSampledImage 116

-             118:             TypePointer UniformConstant 117

-   119(samp1DAs):    118(ptr) Variable UniformConstant

-             126:             TypeImage 6(float) 2D depth array sampled format:Unknown

-             127:             TypeSampledImage 126

-             128:             TypePointer UniformConstant 127

-   129(samp2DAs):    128(ptr) Variable UniformConstant

-             136:             TypeImage 6(float) Cube depth array sampled format:Unknown

-             137:             TypeSampledImage 136

-             138:             TypePointer UniformConstant 137

- 139(sampCubeAs):    138(ptr) Variable UniformConstant

-             146:             TypePointer Function 20(int)

-             151:             TypeImage 32(int) 2D sampled format:Unknown

-             152:             TypeSampledImage 151

-             153:             TypePointer UniformConstant 152

-    154(usamp2D):    153(ptr) Variable UniformConstant

-             160:             TypeImage 20(int) 3D sampled format:Unknown

-             161:             TypeSampledImage 160

-             162:             TypePointer UniformConstant 161

-    163(isamp3D):    162(ptr) Variable UniformConstant

-             169:             TypeImage 20(int) Cube sampled format:Unknown

-             170:             TypeSampledImage 169

-             171:             TypePointer UniformConstant 170

-  172(isampCube):    171(ptr) Variable UniformConstant

-             183:             TypeImage 6(float) 2D array sampled format:Unknown

-             184:             TypeSampledImage 183

-             185:             TypePointer UniformConstant 184

-    186(samp2DA):    185(ptr) Variable UniformConstant

-             192:             TypeImage 32(int) Cube array sampled format:Unknown

-             193:             TypeSampledImage 192

-             194:             TypePointer UniformConstant 193

- 195(usampCubeA):    194(ptr) Variable UniformConstant

-             229:             TypeImage 6(float) Buffer sampled format:Unknown

-             230:             TypeSampledImage 229

-             231:             TypePointer UniformConstant 230

-    232(sampBuf):    231(ptr) Variable UniformConstant

-             233:             TypeImage 6(float) Rect sampled format:Unknown

-             234:             TypeSampledImage 233

-             235:             TypePointer UniformConstant 234

-   236(sampRect):    235(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-          9(lod):      8(ptr) Variable Function

-          16(pf):     15(ptr) Variable Function

-         26(pf2):      8(ptr) Variable Function

-         40(pf3):     39(ptr) Variable Function

-     147(levels):    146(ptr) Variable Function

-              14:          11 Load 13(samp1D)

-              17:    6(float) Load 16(pf)

-              18:          10 Image 14

-              19:    7(fvec2) ImageQueryLod 18 17

-                              Store 9(lod) 19

-              25:          22 Load 24(isamp2D)

-              27:    7(fvec2) Load 26(pf2)

-              28:          21 Image 25

-              29:    7(fvec2) ImageQueryLod 28 27

-              30:    7(fvec2) Load 9(lod)

-              31:    7(fvec2) FAdd 30 29

-                              Store 9(lod) 31

-              37:          34 Load 36(usamp3D)

-              41:   38(fvec3) Load 40(pf3)

-              42:          33 Image 37

-              43:    7(fvec2) ImageQueryLod 42 41

-              44:    7(fvec2) Load 9(lod)

-              45:    7(fvec2) FAdd 44 43

-                              Store 9(lod) 45

-              50:          47 Load 49(sampCube)

-              51:   38(fvec3) Load 40(pf3)

-              52:          46 Image 50

-              53:    7(fvec2) ImageQueryLod 52 51

-              54:    7(fvec2) Load 9(lod)

-              55:    7(fvec2) FAdd 54 53

-                              Store 9(lod) 55

-              60:          57 Load 59(isamp1DA)

-              61:    6(float) Load 16(pf)

-              62:          56 Image 60

-              63:    7(fvec2) ImageQueryLod 62 61

-              64:    7(fvec2) Load 9(lod)

-              65:    7(fvec2) FAdd 64 63

-                              Store 9(lod) 65

-              70:          67 Load 69(usamp2DA)

-              71:    7(fvec2) Load 26(pf2)

-              72:          66 Image 70

-              73:    7(fvec2) ImageQueryLod 72 71

-              74:    7(fvec2) Load 9(lod)

-              75:    7(fvec2) FAdd 74 73

-                              Store 9(lod) 75

-              80:          77 Load 79(isampCubeA)

-              81:   38(fvec3) Load 40(pf3)

-              82:          76 Image 80

-              83:    7(fvec2) ImageQueryLod 82 81

-              84:    7(fvec2) Load 9(lod)

-              85:    7(fvec2) FAdd 84 83

-                              Store 9(lod) 85

-              90:          87 Load 89(samp1Ds)

-              91:    6(float) Load 16(pf)

-              92:          86 Image 90

-              93:    7(fvec2) ImageQueryLod 92 91

-              94:    7(fvec2) Load 9(lod)

-              95:    7(fvec2) FAdd 94 93

-                              Store 9(lod) 95

-             100:          97 Load 99(samp2Ds)

-             101:    7(fvec2) Load 26(pf2)

-             102:          96 Image 100

-             103:    7(fvec2) ImageQueryLod 102 101

-             104:    7(fvec2) Load 9(lod)

-             105:    7(fvec2) FAdd 104 103

-                              Store 9(lod) 105

-             110:         107 Load 109(sampCubes)

-             111:   38(fvec3) Load 40(pf3)

-             112:         106 Image 110

-             113:    7(fvec2) ImageQueryLod 112 111

-             114:    7(fvec2) Load 9(lod)

-             115:    7(fvec2) FAdd 114 113

-                              Store 9(lod) 115

-             120:         117 Load 119(samp1DAs)

-             121:    6(float) Load 16(pf)

-             122:         116 Image 120

-             123:    7(fvec2) ImageQueryLod 122 121

-             124:    7(fvec2) Load 9(lod)

-             125:    7(fvec2) FAdd 124 123

-                              Store 9(lod) 125

-             130:         127 Load 129(samp2DAs)

-             131:    7(fvec2) Load 26(pf2)

-             132:         126 Image 130

-             133:    7(fvec2) ImageQueryLod 132 131

-             134:    7(fvec2) Load 9(lod)

-             135:    7(fvec2) FAdd 134 133

-                              Store 9(lod) 135

-             140:         137 Load 139(sampCubeAs)

-             141:   38(fvec3) Load 40(pf3)

-             142:         136 Image 140

-             143:    7(fvec2) ImageQueryLod 142 141

-             144:    7(fvec2) Load 9(lod)

-             145:    7(fvec2) FAdd 144 143

-                              Store 9(lod) 145

-             148:          11 Load 13(samp1D)

-             149:          10 Image 148

-             150:     20(int) ImageQueryLevels 149

-                              Store 147(levels) 150

-             155:         152 Load 154(usamp2D)

-             156:         151 Image 155

-             157:     20(int) ImageQueryLevels 156

-             158:     20(int) Load 147(levels)

-             159:     20(int) IAdd 158 157

-                              Store 147(levels) 159

-             164:         161 Load 163(isamp3D)

-             165:         160 Image 164

-             166:     20(int) ImageQueryLevels 165

-             167:     20(int) Load 147(levels)

-             168:     20(int) IAdd 167 166

-                              Store 147(levels) 168

-             173:         170 Load 172(isampCube)

-             174:         169 Image 173

-             175:     20(int) ImageQueryLevels 174

-             176:     20(int) Load 147(levels)

-             177:     20(int) IAdd 176 175

-                              Store 147(levels) 177

-             178:          57 Load 59(isamp1DA)

-             179:          56 Image 178

-             180:     20(int) ImageQueryLevels 179

-             181:     20(int) Load 147(levels)

-             182:     20(int) IAdd 181 180

-                              Store 147(levels) 182

-             187:         184 Load 186(samp2DA)

-             188:         183 Image 187

-             189:     20(int) ImageQueryLevels 188

-             190:     20(int) Load 147(levels)

-             191:     20(int) IAdd 190 189

-                              Store 147(levels) 191

-             196:         193 Load 195(usampCubeA)

-             197:         192 Image 196

-             198:     20(int) ImageQueryLevels 197

-             199:     20(int) Load 147(levels)

-             200:     20(int) IAdd 199 198

-                              Store 147(levels) 200

-             201:          87 Load 89(samp1Ds)

-             202:          86 Image 201

-             203:     20(int) ImageQueryLevels 202

-                              Store 147(levels) 203

-             204:          97 Load 99(samp2Ds)

-             205:          96 Image 204

-             206:     20(int) ImageQueryLevels 205

-             207:     20(int) Load 147(levels)

-             208:     20(int) IAdd 207 206

-                              Store 147(levels) 208

-             209:         107 Load 109(sampCubes)

-             210:         106 Image 209

-             211:     20(int) ImageQueryLevels 210

-             212:     20(int) Load 147(levels)

-             213:     20(int) IAdd 212 211

-                              Store 147(levels) 213

-             214:         117 Load 119(samp1DAs)

-             215:         116 Image 214

-             216:     20(int) ImageQueryLevels 215

-             217:     20(int) Load 147(levels)

-             218:     20(int) IAdd 217 216

-                              Store 147(levels) 218

-             219:         127 Load 129(samp2DAs)

-             220:         126 Image 219

-             221:     20(int) ImageQueryLevels 220

-             222:     20(int) Load 147(levels)

-             223:     20(int) IAdd 222 221

-                              Store 147(levels) 223

-             224:         137 Load 139(sampCubeAs)

-             225:         136 Image 224

-             226:     20(int) ImageQueryLevels 225

-             227:     20(int) Load 147(levels)

-             228:     20(int) IAdd 227 226

-                              Store 147(levels) 228

-                              Return

-                              FunctionEnd

+spv.queryL.frag
+Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 237
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main"
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 430
+                              Name 4  "main"
+                              Name 9  "lod"
+                              Name 13  "samp1D"
+                              Name 16  "pf"
+                              Name 24  "isamp2D"
+                              Name 26  "pf2"
+                              Name 36  "usamp3D"
+                              Name 40  "pf3"
+                              Name 49  "sampCube"
+                              Name 59  "isamp1DA"
+                              Name 69  "usamp2DA"
+                              Name 79  "isampCubeA"
+                              Name 89  "samp1Ds"
+                              Name 99  "samp2Ds"
+                              Name 109  "sampCubes"
+                              Name 119  "samp1DAs"
+                              Name 129  "samp2DAs"
+                              Name 139  "sampCubeAs"
+                              Name 147  "levels"
+                              Name 154  "usamp2D"
+                              Name 163  "isamp3D"
+                              Name 172  "isampCube"
+                              Name 186  "samp2DA"
+                              Name 195  "usampCubeA"
+                              Name 232  "sampBuf"
+                              Name 236  "sampRect"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 2
+               8:             TypePointer Function 7(fvec2)
+              10:             TypeImage 6(float) 1D sampled format:Unknown
+              11:             TypeSampledImage 10
+              12:             TypePointer UniformConstant 11
+      13(samp1D):     12(ptr) Variable UniformConstant
+              15:             TypePointer Function 6(float)
+              20:             TypeInt 32 1
+              21:             TypeImage 20(int) 2D sampled format:Unknown
+              22:             TypeSampledImage 21
+              23:             TypePointer UniformConstant 22
+     24(isamp2D):     23(ptr) Variable UniformConstant
+              32:             TypeInt 32 0
+              33:             TypeImage 32(int) 3D sampled format:Unknown
+              34:             TypeSampledImage 33
+              35:             TypePointer UniformConstant 34
+     36(usamp3D):     35(ptr) Variable UniformConstant
+              38:             TypeVector 6(float) 3
+              39:             TypePointer Function 38(fvec3)
+              46:             TypeImage 6(float) Cube sampled format:Unknown
+              47:             TypeSampledImage 46
+              48:             TypePointer UniformConstant 47
+    49(sampCube):     48(ptr) Variable UniformConstant
+              56:             TypeImage 20(int) 1D array sampled format:Unknown
+              57:             TypeSampledImage 56
+              58:             TypePointer UniformConstant 57
+    59(isamp1DA):     58(ptr) Variable UniformConstant
+              66:             TypeImage 32(int) 2D array sampled format:Unknown
+              67:             TypeSampledImage 66
+              68:             TypePointer UniformConstant 67
+    69(usamp2DA):     68(ptr) Variable UniformConstant
+              76:             TypeImage 20(int) Cube array sampled format:Unknown
+              77:             TypeSampledImage 76
+              78:             TypePointer UniformConstant 77
+  79(isampCubeA):     78(ptr) Variable UniformConstant
+              86:             TypeImage 6(float) 1D depth sampled format:Unknown
+              87:             TypeSampledImage 86
+              88:             TypePointer UniformConstant 87
+     89(samp1Ds):     88(ptr) Variable UniformConstant
+              96:             TypeImage 6(float) 2D depth sampled format:Unknown
+              97:             TypeSampledImage 96
+              98:             TypePointer UniformConstant 97
+     99(samp2Ds):     98(ptr) Variable UniformConstant
+             106:             TypeImage 6(float) Cube depth sampled format:Unknown
+             107:             TypeSampledImage 106
+             108:             TypePointer UniformConstant 107
+  109(sampCubes):    108(ptr) Variable UniformConstant
+             116:             TypeImage 6(float) 1D depth array sampled format:Unknown
+             117:             TypeSampledImage 116
+             118:             TypePointer UniformConstant 117
+   119(samp1DAs):    118(ptr) Variable UniformConstant
+             126:             TypeImage 6(float) 2D depth array sampled format:Unknown
+             127:             TypeSampledImage 126
+             128:             TypePointer UniformConstant 127
+   129(samp2DAs):    128(ptr) Variable UniformConstant
+             136:             TypeImage 6(float) Cube depth array sampled format:Unknown
+             137:             TypeSampledImage 136
+             138:             TypePointer UniformConstant 137
+ 139(sampCubeAs):    138(ptr) Variable UniformConstant
+             146:             TypePointer Function 20(int)
+             151:             TypeImage 32(int) 2D sampled format:Unknown
+             152:             TypeSampledImage 151
+             153:             TypePointer UniformConstant 152
+    154(usamp2D):    153(ptr) Variable UniformConstant
+             160:             TypeImage 20(int) 3D sampled format:Unknown
+             161:             TypeSampledImage 160
+             162:             TypePointer UniformConstant 161
+    163(isamp3D):    162(ptr) Variable UniformConstant
+             169:             TypeImage 20(int) Cube sampled format:Unknown
+             170:             TypeSampledImage 169
+             171:             TypePointer UniformConstant 170
+  172(isampCube):    171(ptr) Variable UniformConstant
+             183:             TypeImage 6(float) 2D array sampled format:Unknown
+             184:             TypeSampledImage 183
+             185:             TypePointer UniformConstant 184
+    186(samp2DA):    185(ptr) Variable UniformConstant
+             192:             TypeImage 32(int) Cube array sampled format:Unknown
+             193:             TypeSampledImage 192
+             194:             TypePointer UniformConstant 193
+ 195(usampCubeA):    194(ptr) Variable UniformConstant
+             229:             TypeImage 6(float) Buffer sampled format:Unknown
+             230:             TypeSampledImage 229
+             231:             TypePointer UniformConstant 230
+    232(sampBuf):    231(ptr) Variable UniformConstant
+             233:             TypeImage 6(float) Rect sampled format:Unknown
+             234:             TypeSampledImage 233
+             235:             TypePointer UniformConstant 234
+   236(sampRect):    235(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+          9(lod):      8(ptr) Variable Function
+          16(pf):     15(ptr) Variable Function
+         26(pf2):      8(ptr) Variable Function
+         40(pf3):     39(ptr) Variable Function
+     147(levels):    146(ptr) Variable Function
+              14:          11 Load 13(samp1D)
+              17:    6(float) Load 16(pf)
+              18:          10 Image 14
+              19:    7(fvec2) ImageQueryLod 18 17
+                              Store 9(lod) 19
+              25:          22 Load 24(isamp2D)
+              27:    7(fvec2) Load 26(pf2)
+              28:          21 Image 25
+              29:    7(fvec2) ImageQueryLod 28 27
+              30:    7(fvec2) Load 9(lod)
+              31:    7(fvec2) FAdd 30 29
+                              Store 9(lod) 31
+              37:          34 Load 36(usamp3D)
+              41:   38(fvec3) Load 40(pf3)
+              42:          33 Image 37
+              43:    7(fvec2) ImageQueryLod 42 41
+              44:    7(fvec2) Load 9(lod)
+              45:    7(fvec2) FAdd 44 43
+                              Store 9(lod) 45
+              50:          47 Load 49(sampCube)
+              51:   38(fvec3) Load 40(pf3)
+              52:          46 Image 50
+              53:    7(fvec2) ImageQueryLod 52 51
+              54:    7(fvec2) Load 9(lod)
+              55:    7(fvec2) FAdd 54 53
+                              Store 9(lod) 55
+              60:          57 Load 59(isamp1DA)
+              61:    6(float) Load 16(pf)
+              62:          56 Image 60
+              63:    7(fvec2) ImageQueryLod 62 61
+              64:    7(fvec2) Load 9(lod)
+              65:    7(fvec2) FAdd 64 63
+                              Store 9(lod) 65
+              70:          67 Load 69(usamp2DA)
+              71:    7(fvec2) Load 26(pf2)
+              72:          66 Image 70
+              73:    7(fvec2) ImageQueryLod 72 71
+              74:    7(fvec2) Load 9(lod)
+              75:    7(fvec2) FAdd 74 73
+                              Store 9(lod) 75
+              80:          77 Load 79(isampCubeA)
+              81:   38(fvec3) Load 40(pf3)
+              82:          76 Image 80
+              83:    7(fvec2) ImageQueryLod 82 81
+              84:    7(fvec2) Load 9(lod)
+              85:    7(fvec2) FAdd 84 83
+                              Store 9(lod) 85
+              90:          87 Load 89(samp1Ds)
+              91:    6(float) Load 16(pf)
+              92:          86 Image 90
+              93:    7(fvec2) ImageQueryLod 92 91
+              94:    7(fvec2) Load 9(lod)
+              95:    7(fvec2) FAdd 94 93
+                              Store 9(lod) 95
+             100:          97 Load 99(samp2Ds)
+             101:    7(fvec2) Load 26(pf2)
+             102:          96 Image 100
+             103:    7(fvec2) ImageQueryLod 102 101
+             104:    7(fvec2) Load 9(lod)
+             105:    7(fvec2) FAdd 104 103
+                              Store 9(lod) 105
+             110:         107 Load 109(sampCubes)
+             111:   38(fvec3) Load 40(pf3)
+             112:         106 Image 110
+             113:    7(fvec2) ImageQueryLod 112 111
+             114:    7(fvec2) Load 9(lod)
+             115:    7(fvec2) FAdd 114 113
+                              Store 9(lod) 115
+             120:         117 Load 119(samp1DAs)
+             121:    6(float) Load 16(pf)
+             122:         116 Image 120
+             123:    7(fvec2) ImageQueryLod 122 121
+             124:    7(fvec2) Load 9(lod)
+             125:    7(fvec2) FAdd 124 123
+                              Store 9(lod) 125
+             130:         127 Load 129(samp2DAs)
+             131:    7(fvec2) Load 26(pf2)
+             132:         126 Image 130
+             133:    7(fvec2) ImageQueryLod 132 131
+             134:    7(fvec2) Load 9(lod)
+             135:    7(fvec2) FAdd 134 133
+                              Store 9(lod) 135
+             140:         137 Load 139(sampCubeAs)
+             141:   38(fvec3) Load 40(pf3)
+             142:         136 Image 140
+             143:    7(fvec2) ImageQueryLod 142 141
+             144:    7(fvec2) Load 9(lod)
+             145:    7(fvec2) FAdd 144 143
+                              Store 9(lod) 145
+             148:          11 Load 13(samp1D)
+             149:          10 Image 148
+             150:     20(int) ImageQueryLevels 149
+                              Store 147(levels) 150
+             155:         152 Load 154(usamp2D)
+             156:         151 Image 155
+             157:     20(int) ImageQueryLevels 156
+             158:     20(int) Load 147(levels)
+             159:     20(int) IAdd 158 157
+                              Store 147(levels) 159
+             164:         161 Load 163(isamp3D)
+             165:         160 Image 164
+             166:     20(int) ImageQueryLevels 165
+             167:     20(int) Load 147(levels)
+             168:     20(int) IAdd 167 166
+                              Store 147(levels) 168
+             173:         170 Load 172(isampCube)
+             174:         169 Image 173
+             175:     20(int) ImageQueryLevels 174
+             176:     20(int) Load 147(levels)
+             177:     20(int) IAdd 176 175
+                              Store 147(levels) 177
+             178:          57 Load 59(isamp1DA)
+             179:          56 Image 178
+             180:     20(int) ImageQueryLevels 179
+             181:     20(int) Load 147(levels)
+             182:     20(int) IAdd 181 180
+                              Store 147(levels) 182
+             187:         184 Load 186(samp2DA)
+             188:         183 Image 187
+             189:     20(int) ImageQueryLevels 188
+             190:     20(int) Load 147(levels)
+             191:     20(int) IAdd 190 189
+                              Store 147(levels) 191
+             196:         193 Load 195(usampCubeA)
+             197:         192 Image 196
+             198:     20(int) ImageQueryLevels 197
+             199:     20(int) Load 147(levels)
+             200:     20(int) IAdd 199 198
+                              Store 147(levels) 200
+             201:          87 Load 89(samp1Ds)
+             202:          86 Image 201
+             203:     20(int) ImageQueryLevels 202
+                              Store 147(levels) 203
+             204:          97 Load 99(samp2Ds)
+             205:          96 Image 204
+             206:     20(int) ImageQueryLevels 205
+             207:     20(int) Load 147(levels)
+             208:     20(int) IAdd 207 206
+                              Store 147(levels) 208
+             209:         107 Load 109(sampCubes)
+             210:         106 Image 209
+             211:     20(int) ImageQueryLevels 210
+             212:     20(int) Load 147(levels)
+             213:     20(int) IAdd 212 211
+                              Store 147(levels) 213
+             214:         117 Load 119(samp1DAs)
+             215:         116 Image 214
+             216:     20(int) ImageQueryLevels 215
+             217:     20(int) Load 147(levels)
+             218:     20(int) IAdd 217 216
+                              Store 147(levels) 218
+             219:         127 Load 129(samp2DAs)
+             220:         126 Image 219
+             221:     20(int) ImageQueryLevels 220
+             222:     20(int) Load 147(levels)
+             223:     20(int) IAdd 222 221
+                              Store 147(levels) 223
+             224:         137 Load 139(sampCubeAs)
+             225:         136 Image 224
+             226:     20(int) ImageQueryLevels 225
+             227:     20(int) Load 147(levels)
+             228:     20(int) IAdd 227 226
+                              Store 147(levels) 228
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out
index caff57d..9448bca 100755
--- a/Test/baseResults/spv.set.vert.out
+++ b/Test/baseResults/spv.set.vert.out
@@ -1,58 +1,58 @@
-spv.set.vert

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 25

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 9 23 24

-                              Source GLSL 450

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 10  "setBuf"

-                              MemberName 10(setBuf) 0  "color"

-                              Name 12  "setBufInst"

-                              Name 21  "samp2D"

-                              Name 23  "gl_VertexID"

-                              Name 24  "gl_InstanceID"

-                              Decorate 10(setBuf) GLSLShared

-                              Decorate 10(setBuf) BufferBlock

-                              Decorate 12(setBufInst) DescriptorSet 0

-                              Decorate 12(setBufInst) Binding 8

-                              Decorate 21(samp2D) DescriptorSet 4

-                              Decorate 21(samp2D) Binding 7

-                              Decorate 23(gl_VertexID) BuiltIn VertexId

-                              Decorate 24(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Output 7(fvec4)

-        9(color):      8(ptr) Variable Output

-      10(setBuf):             TypeStruct 7(fvec4)

-              11:             TypePointer Uniform 10(setBuf)

-  12(setBufInst):     11(ptr) Variable Uniform

-              13:             TypeInt 32 1

-              14:     13(int) Constant 0

-              15:             TypePointer Uniform 7(fvec4)

-              18:             TypeImage 6(float) 2D sampled format:Unknown

-              19:             TypeSampledImage 18

-              20:             TypePointer UniformConstant 19

-      21(samp2D):     20(ptr) Variable UniformConstant

-              22:             TypePointer Input 13(int)

- 23(gl_VertexID):     22(ptr) Variable Input

-24(gl_InstanceID):     22(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              16:     15(ptr) AccessChain 12(setBufInst) 14

-              17:    7(fvec4) Load 16

-                              Store 9(color) 17

-                              Return

-                              FunctionEnd

+spv.set.vert
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 25
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 9 23 24
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 10  "setBuf"
+                              MemberName 10(setBuf) 0  "color"
+                              Name 12  "setBufInst"
+                              Name 21  "samp2D"
+                              Name 23  "gl_VertexID"
+                              Name 24  "gl_InstanceID"
+                              Decorate 10(setBuf) GLSLShared
+                              Decorate 10(setBuf) BufferBlock
+                              Decorate 12(setBufInst) DescriptorSet 0
+                              Decorate 12(setBufInst) Binding 8
+                              Decorate 21(samp2D) DescriptorSet 4
+                              Decorate 21(samp2D) Binding 7
+                              Decorate 23(gl_VertexID) BuiltIn VertexId
+                              Decorate 24(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Output 7(fvec4)
+        9(color):      8(ptr) Variable Output
+      10(setBuf):             TypeStruct 7(fvec4)
+              11:             TypePointer Uniform 10(setBuf)
+  12(setBufInst):     11(ptr) Variable Uniform
+              13:             TypeInt 32 1
+              14:     13(int) Constant 0
+              15:             TypePointer Uniform 7(fvec4)
+              18:             TypeImage 6(float) 2D sampled format:Unknown
+              19:             TypeSampledImage 18
+              20:             TypePointer UniformConstant 19
+      21(samp2D):     20(ptr) Variable UniformConstant
+              22:             TypePointer Input 13(int)
+ 23(gl_VertexID):     22(ptr) Variable Input
+24(gl_InstanceID):     22(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              16:     15(ptr) AccessChain 12(setBufInst) 14
+              17:    7(fvec4) Load 16
+                              Store 9(color) 17
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.shiftOps.frag.out b/Test/baseResults/spv.shiftOps.frag.out
index e82882e..891d689 100644
--- a/Test/baseResults/spv.shiftOps.frag.out
+++ b/Test/baseResults/spv.shiftOps.frag.out
@@ -1,66 +1,66 @@
-spv.shiftOps.frag

-Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 38

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 9 25

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 450

-                              Name 4  "main"

-                              Name 9  "icolor"

-                              Name 11  "i3"

-                              Name 15  "u1"

-                              Name 25  "ucolor"

-                              Name 27  "u3"

-                              Name 30  "i1"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypeVector 6(int) 3

-               8:             TypePointer Output 7(ivec3)

-       9(icolor):      8(ptr) Variable Output

-              10:             TypePointer UniformConstant 7(ivec3)

-          11(i3):     10(ptr) Variable UniformConstant

-              13:             TypeInt 32 0

-              14:             TypePointer UniformConstant 13(int)

-          15(u1):     14(ptr) Variable UniformConstant

-              17:             TypeVector 13(int) 3

-              20:     13(int) Constant 4

-              24:             TypePointer Output 17(ivec3)

-      25(ucolor):     24(ptr) Variable Output

-              26:             TypePointer UniformConstant 17(ivec3)

-          27(u3):     26(ptr) Variable UniformConstant

-              29:             TypePointer UniformConstant 6(int)

-          30(i1):     29(ptr) Variable UniformConstant

-              34:      6(int) Constant 5

-         4(main):           2 Function None 3

-               5:             Label

-              12:    7(ivec3) Load 11(i3)

-              16:     13(int) Load 15(u1)

-              18:   17(ivec3) CompositeConstruct 16 16 16

-              19:    7(ivec3) ShiftLeftLogical 12 18

-                              Store 9(icolor) 19

-              21:    7(ivec3) Load 9(icolor)

-              22:   17(ivec3) CompositeConstruct 20 20 20

-              23:    7(ivec3) ShiftLeftLogical 21 22

-                              Store 9(icolor) 23

-              28:   17(ivec3) Load 27(u3)

-              31:      6(int) Load 30(i1)

-              32:    7(ivec3) CompositeConstruct 31 31 31

-              33:   17(ivec3) ShiftRightLogical 28 32

-                              Store 25(ucolor) 33

-              35:   17(ivec3) Load 25(ucolor)

-              36:    7(ivec3) CompositeConstruct 34 34 34

-              37:   17(ivec3) ShiftRightLogical 35 36

-                              Store 25(ucolor) 37

-                              Return

-                              FunctionEnd

+spv.shiftOps.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 38
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 9 25
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 9  "icolor"
+                              Name 11  "i3"
+                              Name 15  "u1"
+                              Name 25  "ucolor"
+                              Name 27  "u3"
+                              Name 30  "i1"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeVector 6(int) 3
+               8:             TypePointer Output 7(ivec3)
+       9(icolor):      8(ptr) Variable Output
+              10:             TypePointer UniformConstant 7(ivec3)
+          11(i3):     10(ptr) Variable UniformConstant
+              13:             TypeInt 32 0
+              14:             TypePointer UniformConstant 13(int)
+          15(u1):     14(ptr) Variable UniformConstant
+              17:             TypeVector 13(int) 3
+              20:     13(int) Constant 4
+              24:             TypePointer Output 17(ivec3)
+      25(ucolor):     24(ptr) Variable Output
+              26:             TypePointer UniformConstant 17(ivec3)
+          27(u3):     26(ptr) Variable UniformConstant
+              29:             TypePointer UniformConstant 6(int)
+          30(i1):     29(ptr) Variable UniformConstant
+              34:      6(int) Constant 5
+         4(main):           2 Function None 3
+               5:             Label
+              12:    7(ivec3) Load 11(i3)
+              16:     13(int) Load 15(u1)
+              18:   17(ivec3) CompositeConstruct 16 16 16
+              19:    7(ivec3) ShiftLeftLogical 12 18
+                              Store 9(icolor) 19
+              21:    7(ivec3) Load 9(icolor)
+              22:   17(ivec3) CompositeConstruct 20 20 20
+              23:    7(ivec3) ShiftLeftLogical 21 22
+                              Store 9(icolor) 23
+              28:   17(ivec3) Load 27(u3)
+              31:      6(int) Load 30(i1)
+              32:    7(ivec3) CompositeConstruct 31 31 31
+              33:   17(ivec3) ShiftRightLogical 28 32
+                              Store 25(ucolor) 33
+              35:   17(ivec3) Load 25(ucolor)
+              36:    7(ivec3) CompositeConstruct 34 34 34
+              37:   17(ivec3) ShiftRightLogical 35 36
+                              Store 25(ucolor) 37
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.shortCircuit.frag.out b/Test/baseResults/spv.shortCircuit.frag.out
index d812be9..bbe719f 100644
--- a/Test/baseResults/spv.shortCircuit.frag.out
+++ b/Test/baseResults/spv.shortCircuit.frag.out
@@ -1,233 +1,233 @@
-spv.shortCircuit.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 143

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 12 23

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 400

-                              Name 4  "main"

-                              Name 8  "foo("

-                              Name 12  "of1"

-                              Name 23  "of4"

-                              Name 26  "ub"

-                              Name 30  "ui"

-                              Name 40  "uba"

-                              Name 109  "uf"

-                              Name 136  "uiv4"

-                              Name 138  "uv4"

-                              Name 141  "ub41"

-                              Name 142  "ub42"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeBool

-               7:             TypeFunction 6(bool)

-              10:             TypeFloat 32

-              11:             TypePointer Output 10(float)

-         12(of1):     11(ptr) Variable Output

-              14:   10(float) Constant 1065353216

-              17:   10(float) Constant 1092616192

-              20:   10(float) Constant 0

-              21:             TypeVector 10(float) 4

-              22:             TypePointer Output 21(fvec4)

-         23(of4):     22(ptr) Variable Output

-              24:   21(fvec4) ConstantComposite 20 20 20 20

-              25:             TypePointer UniformConstant 6(bool)

-          26(ub):     25(ptr) Variable UniformConstant

-              28:             TypeInt 32 1

-              29:             TypePointer UniformConstant 28(int)

-          30(ui):     29(ptr) Variable UniformConstant

-              32:     28(int) Constant 2

-         40(uba):     25(ptr) Variable UniformConstant

-             108:             TypePointer UniformConstant 10(float)

-         109(uf):    108(ptr) Variable UniformConstant

-             112:   10(float) Constant 1082130432

-             134:             TypeVector 28(int) 4

-             135:             TypePointer UniformConstant 134(ivec4)

-       136(uiv4):    135(ptr) Variable UniformConstant

-             137:             TypePointer UniformConstant 21(fvec4)

-        138(uv4):    137(ptr) Variable UniformConstant

-             139:             TypeVector 6(bool) 4

-             140:             TypePointer UniformConstant 139(bvec4)

-       141(ub41):    140(ptr) Variable UniformConstant

-       142(ub42):    140(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-                              Store 12(of1) 20

-                              Store 23(of4) 24

-              27:     6(bool) Load 26(ub)

-              31:     28(int) Load 30(ui)

-              33:     6(bool) SGreaterThan 31 32

-              34:     6(bool) LogicalOr 27 33

-                              SelectionMerge 36 None

-                              BranchConditional 34 35 36

-              35:               Label

-              37:   10(float)   Load 12(of1)

-              38:   10(float)   FAdd 37 14

-                                Store 12(of1) 38

-                                Branch 36

-              36:             Label

-              39:     6(bool) Load 26(ub)

-              41:     6(bool) Load 40(uba)

-              42:     6(bool) LogicalNot 41

-              43:     6(bool) LogicalAnd 39 42

-                              SelectionMerge 45 None

-                              BranchConditional 43 44 45

-              44:               Label

-              46:   10(float)   Load 12(of1)

-              47:   10(float)   FAdd 46 14

-                                Store 12(of1) 47

-                                Branch 45

-              45:             Label

-              48:     6(bool) Load 26(ub)

-              49:     6(bool) LogicalNot 48

-                              SelectionMerge 51 None

-                              BranchConditional 49 50 51

-              50:               Label

-              52:     6(bool)   FunctionCall 8(foo()

-                                Branch 51

-              51:             Label

-              53:     6(bool) Phi 48 45 52 50

-                              SelectionMerge 55 None

-                              BranchConditional 53 54 55

-              54:               Label

-              56:   10(float)   Load 12(of1)

-              57:   10(float)   FAdd 56 14

-                                Store 12(of1) 57

-                                Branch 55

-              55:             Label

-              58:     6(bool) Load 26(ub)

-                              SelectionMerge 60 None

-                              BranchConditional 58 59 60

-              59:               Label

-              61:     6(bool)   FunctionCall 8(foo()

-                                Branch 60

-              60:             Label

-              62:     6(bool) Phi 58 55 61 59

-                              SelectionMerge 64 None

-                              BranchConditional 62 63 64

-              63:               Label

-              65:   10(float)   Load 12(of1)

-              66:   10(float)   FAdd 65 14

-                                Store 12(of1) 66

-                                Branch 64

-              64:             Label

-              67:     6(bool) FunctionCall 8(foo()

-              68:     6(bool) Load 26(ub)

-              69:     6(bool) LogicalOr 67 68

-                              SelectionMerge 71 None

-                              BranchConditional 69 70 71

-              70:               Label

-              72:   10(float)   Load 12(of1)

-              73:   10(float)   FAdd 72 14

-                                Store 12(of1) 73

-                                Branch 71

-              71:             Label

-              74:     6(bool) FunctionCall 8(foo()

-              75:     6(bool) Load 26(ub)

-              76:     6(bool) LogicalAnd 74 75

-                              SelectionMerge 78 None

-                              BranchConditional 76 77 78

-              77:               Label

-              79:   10(float)   Load 12(of1)

-              80:   10(float)   FAdd 79 14

-                                Store 12(of1) 80

-                                Branch 78

-              78:             Label

-              81:     6(bool) Load 26(ub)

-              82:     6(bool) LogicalNot 81

-                              SelectionMerge 84 None

-                              BranchConditional 82 83 84

-              83:               Label

-              85:   10(float)   Load 12(of1)

-              86:   10(float)   FAdd 85 14

-                                Store 12(of1) 86

-              87:     6(bool)   FOrdGreaterThan 86 14

-                                Branch 84

-              84:             Label

-              88:     6(bool) Phi 81 78 87 83

-                              SelectionMerge 90 None

-                              BranchConditional 88 89 90

-              89:               Label

-              91:   21(fvec4)   Load 23(of4)

-              92:   21(fvec4)   CompositeConstruct 14 14 14 14

-              93:   21(fvec4)   FAdd 91 92

-                                Store 23(of4) 93

-                                Branch 90

-              90:             Label

-              94:   10(float) Load 12(of1)

-              95:   10(float) FAdd 94 14

-                              Store 12(of1) 95

-              96:     6(bool) FOrdGreaterThan 95 14

-              97:     6(bool) Load 26(ub)

-              98:     6(bool) LogicalOr 96 97

-                              SelectionMerge 100 None

-                              BranchConditional 98 99 100

-              99:               Label

-             101:   21(fvec4)   Load 23(of4)

-             102:   21(fvec4)   CompositeConstruct 14 14 14 14

-             103:   21(fvec4)   FAdd 101 102

-                                Store 23(of4) 103

-                                Branch 100

-             100:             Label

-             104:     6(bool) Load 26(ub)

-             105:     6(bool) LogicalNot 104

-                              SelectionMerge 107 None

-                              BranchConditional 105 106 107

-             106:               Label

-             110:   10(float)   Load 109(uf)

-             111:   10(float)   ExtInst 1(GLSL.std.450) 13(Sin) 110

-             113:   10(float)   FMul 111 112

-             114:   10(float)   Load 12(of1)

-             115:     6(bool)   FOrdGreaterThan 113 114

-                                Branch 107

-             107:             Label

-             116:     6(bool) Phi 104 100 115 106

-                              SelectionMerge 118 None

-                              BranchConditional 116 117 118

-             117:               Label

-             119:   10(float)   Load 12(of1)

-             120:   10(float)   FAdd 119 14

-                                Store 12(of1) 120

-                                Branch 118

-             118:             Label

-             121:     6(bool) Load 26(ub)

-                              SelectionMerge 123 None

-                              BranchConditional 121 122 123

-             122:               Label

-             124:   10(float)   Load 109(uf)

-             125:   10(float)   ExtInst 1(GLSL.std.450) 13(Sin) 124

-             126:   10(float)   FMul 125 112

-             127:   10(float)   Load 12(of1)

-             128:     6(bool)   FOrdGreaterThan 126 127

-                                Branch 123

-             123:             Label

-             129:     6(bool) Phi 121 118 128 122

-                              SelectionMerge 131 None

-                              BranchConditional 129 130 131

-             130:               Label

-             132:   10(float)   Load 12(of1)

-             133:   10(float)   FAdd 132 14

-                                Store 12(of1) 133

-                                Branch 131

-             131:             Label

-                              Return

-                              FunctionEnd

-         8(foo():     6(bool) Function None 7

-               9:             Label

-              13:   10(float) Load 12(of1)

-              15:   10(float) FAdd 13 14

-                              Store 12(of1) 15

-              16:   10(float) Load 12(of1)

-              18:     6(bool) FOrdGreaterThan 16 17

-                              ReturnValue 18

-                              FunctionEnd

+spv.shortCircuit.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 143
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 12 23
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 400
+                              Name 4  "main"
+                              Name 8  "foo("
+                              Name 12  "of1"
+                              Name 23  "of4"
+                              Name 26  "ub"
+                              Name 30  "ui"
+                              Name 40  "uba"
+                              Name 109  "uf"
+                              Name 136  "uiv4"
+                              Name 138  "uv4"
+                              Name 141  "ub41"
+                              Name 142  "ub42"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeBool
+               7:             TypeFunction 6(bool)
+              10:             TypeFloat 32
+              11:             TypePointer Output 10(float)
+         12(of1):     11(ptr) Variable Output
+              14:   10(float) Constant 1065353216
+              17:   10(float) Constant 1092616192
+              20:   10(float) Constant 0
+              21:             TypeVector 10(float) 4
+              22:             TypePointer Output 21(fvec4)
+         23(of4):     22(ptr) Variable Output
+              24:   21(fvec4) ConstantComposite 20 20 20 20
+              25:             TypePointer UniformConstant 6(bool)
+          26(ub):     25(ptr) Variable UniformConstant
+              28:             TypeInt 32 1
+              29:             TypePointer UniformConstant 28(int)
+          30(ui):     29(ptr) Variable UniformConstant
+              32:     28(int) Constant 2
+         40(uba):     25(ptr) Variable UniformConstant
+             108:             TypePointer UniformConstant 10(float)
+         109(uf):    108(ptr) Variable UniformConstant
+             112:   10(float) Constant 1082130432
+             134:             TypeVector 28(int) 4
+             135:             TypePointer UniformConstant 134(ivec4)
+       136(uiv4):    135(ptr) Variable UniformConstant
+             137:             TypePointer UniformConstant 21(fvec4)
+        138(uv4):    137(ptr) Variable UniformConstant
+             139:             TypeVector 6(bool) 4
+             140:             TypePointer UniformConstant 139(bvec4)
+       141(ub41):    140(ptr) Variable UniformConstant
+       142(ub42):    140(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+                              Store 12(of1) 20
+                              Store 23(of4) 24
+              27:     6(bool) Load 26(ub)
+              31:     28(int) Load 30(ui)
+              33:     6(bool) SGreaterThan 31 32
+              34:     6(bool) LogicalOr 27 33
+                              SelectionMerge 36 None
+                              BranchConditional 34 35 36
+              35:               Label
+              37:   10(float)   Load 12(of1)
+              38:   10(float)   FAdd 37 14
+                                Store 12(of1) 38
+                                Branch 36
+              36:             Label
+              39:     6(bool) Load 26(ub)
+              41:     6(bool) Load 40(uba)
+              42:     6(bool) LogicalNot 41
+              43:     6(bool) LogicalAnd 39 42
+                              SelectionMerge 45 None
+                              BranchConditional 43 44 45
+              44:               Label
+              46:   10(float)   Load 12(of1)
+              47:   10(float)   FAdd 46 14
+                                Store 12(of1) 47
+                                Branch 45
+              45:             Label
+              48:     6(bool) Load 26(ub)
+              49:     6(bool) LogicalNot 48
+                              SelectionMerge 51 None
+                              BranchConditional 49 50 51
+              50:               Label
+              52:     6(bool)   FunctionCall 8(foo()
+                                Branch 51
+              51:             Label
+              53:     6(bool) Phi 48 45 52 50
+                              SelectionMerge 55 None
+                              BranchConditional 53 54 55
+              54:               Label
+              56:   10(float)   Load 12(of1)
+              57:   10(float)   FAdd 56 14
+                                Store 12(of1) 57
+                                Branch 55
+              55:             Label
+              58:     6(bool) Load 26(ub)
+                              SelectionMerge 60 None
+                              BranchConditional 58 59 60
+              59:               Label
+              61:     6(bool)   FunctionCall 8(foo()
+                                Branch 60
+              60:             Label
+              62:     6(bool) Phi 58 55 61 59
+                              SelectionMerge 64 None
+                              BranchConditional 62 63 64
+              63:               Label
+              65:   10(float)   Load 12(of1)
+              66:   10(float)   FAdd 65 14
+                                Store 12(of1) 66
+                                Branch 64
+              64:             Label
+              67:     6(bool) FunctionCall 8(foo()
+              68:     6(bool) Load 26(ub)
+              69:     6(bool) LogicalOr 67 68
+                              SelectionMerge 71 None
+                              BranchConditional 69 70 71
+              70:               Label
+              72:   10(float)   Load 12(of1)
+              73:   10(float)   FAdd 72 14
+                                Store 12(of1) 73
+                                Branch 71
+              71:             Label
+              74:     6(bool) FunctionCall 8(foo()
+              75:     6(bool) Load 26(ub)
+              76:     6(bool) LogicalAnd 74 75
+                              SelectionMerge 78 None
+                              BranchConditional 76 77 78
+              77:               Label
+              79:   10(float)   Load 12(of1)
+              80:   10(float)   FAdd 79 14
+                                Store 12(of1) 80
+                                Branch 78
+              78:             Label
+              81:     6(bool) Load 26(ub)
+              82:     6(bool) LogicalNot 81
+                              SelectionMerge 84 None
+                              BranchConditional 82 83 84
+              83:               Label
+              85:   10(float)   Load 12(of1)
+              86:   10(float)   FAdd 85 14
+                                Store 12(of1) 86
+              87:     6(bool)   FOrdGreaterThan 86 14
+                                Branch 84
+              84:             Label
+              88:     6(bool) Phi 81 78 87 83
+                              SelectionMerge 90 None
+                              BranchConditional 88 89 90
+              89:               Label
+              91:   21(fvec4)   Load 23(of4)
+              92:   21(fvec4)   CompositeConstruct 14 14 14 14
+              93:   21(fvec4)   FAdd 91 92
+                                Store 23(of4) 93
+                                Branch 90
+              90:             Label
+              94:   10(float) Load 12(of1)
+              95:   10(float) FAdd 94 14
+                              Store 12(of1) 95
+              96:     6(bool) FOrdGreaterThan 95 14
+              97:     6(bool) Load 26(ub)
+              98:     6(bool) LogicalOr 96 97
+                              SelectionMerge 100 None
+                              BranchConditional 98 99 100
+              99:               Label
+             101:   21(fvec4)   Load 23(of4)
+             102:   21(fvec4)   CompositeConstruct 14 14 14 14
+             103:   21(fvec4)   FAdd 101 102
+                                Store 23(of4) 103
+                                Branch 100
+             100:             Label
+             104:     6(bool) Load 26(ub)
+             105:     6(bool) LogicalNot 104
+                              SelectionMerge 107 None
+                              BranchConditional 105 106 107
+             106:               Label
+             110:   10(float)   Load 109(uf)
+             111:   10(float)   ExtInst 1(GLSL.std.450) 13(Sin) 110
+             113:   10(float)   FMul 111 112
+             114:   10(float)   Load 12(of1)
+             115:     6(bool)   FOrdGreaterThan 113 114
+                                Branch 107
+             107:             Label
+             116:     6(bool) Phi 104 100 115 106
+                              SelectionMerge 118 None
+                              BranchConditional 116 117 118
+             117:               Label
+             119:   10(float)   Load 12(of1)
+             120:   10(float)   FAdd 119 14
+                                Store 12(of1) 120
+                                Branch 118
+             118:             Label
+             121:     6(bool) Load 26(ub)
+                              SelectionMerge 123 None
+                              BranchConditional 121 122 123
+             122:               Label
+             124:   10(float)   Load 109(uf)
+             125:   10(float)   ExtInst 1(GLSL.std.450) 13(Sin) 124
+             126:   10(float)   FMul 125 112
+             127:   10(float)   Load 12(of1)
+             128:     6(bool)   FOrdGreaterThan 126 127
+                                Branch 123
+             123:             Label
+             129:     6(bool) Phi 121 118 128 122
+                              SelectionMerge 131 None
+                              BranchConditional 129 130 131
+             130:               Label
+             132:   10(float)   Load 12(of1)
+             133:   10(float)   FAdd 132 14
+                                Store 12(of1) 133
+                                Branch 131
+             131:             Label
+                              Return
+                              FunctionEnd
+         8(foo():     6(bool) Function None 7
+               9:             Label
+              13:   10(float) Load 12(of1)
+              15:   10(float) FAdd 13 14
+                              Store 12(of1) 15
+              16:   10(float) Load 12(of1)
+              18:     6(bool) FOrdGreaterThan 16 17
+                              ReturnValue 18
+                              FunctionEnd
diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out
index a8b194b..7581d64 100755
--- a/Test/baseResults/spv.simpleFunctionCall.frag.out
+++ b/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -1,47 +1,47 @@
-spv.simpleFunctionCall.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 22

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 12

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 150

-                              Name 4  "main"

-                              Name 9  "foo("

-                              Name 12  "BaseColor"

-                              Name 16  "gl_FragColor"

-                              Name 19  "bigColor"

-                              Name 21  "d"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypeFunction 7(fvec4)

-              11:             TypePointer Input 7(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              15:             TypePointer Output 7(fvec4)

-16(gl_FragColor):     15(ptr) Variable Output

-              18:             TypePointer UniformConstant 7(fvec4)

-    19(bigColor):     18(ptr) Variable UniformConstant

-              20:             TypePointer UniformConstant 6(float)

-           21(d):     20(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-              17:    7(fvec4) FunctionCall 9(foo()

-                              Store 16(gl_FragColor) 17

-                              Return

-                              FunctionEnd

-         9(foo():    7(fvec4) Function None 8

-              10:             Label

-              13:    7(fvec4) Load 12(BaseColor)

-                              ReturnValue 13

-                              FunctionEnd

+spv.simpleFunctionCall.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 22
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 12
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 150
+                              Name 4  "main"
+                              Name 9  "foo("
+                              Name 12  "BaseColor"
+                              Name 16  "gl_FragColor"
+                              Name 19  "bigColor"
+                              Name 21  "d"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeFunction 7(fvec4)
+              11:             TypePointer Input 7(fvec4)
+   12(BaseColor):     11(ptr) Variable Input
+              15:             TypePointer Output 7(fvec4)
+16(gl_FragColor):     15(ptr) Variable Output
+              18:             TypePointer UniformConstant 7(fvec4)
+    19(bigColor):     18(ptr) Variable UniformConstant
+              20:             TypePointer UniformConstant 6(float)
+           21(d):     20(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+              17:    7(fvec4) FunctionCall 9(foo()
+                              Store 16(gl_FragColor) 17
+                              Return
+                              FunctionEnd
+         9(foo():    7(fvec4) Function None 8
+              10:             Label
+              13:    7(fvec4) Load 12(BaseColor)
+                              ReturnValue 13
+                              FunctionEnd
diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out
index 8963c6b..5bf8b97 100755
--- a/Test/baseResults/spv.simpleMat.vert.out
+++ b/Test/baseResults/spv.simpleMat.vert.out
@@ -1,69 +1,69 @@
-spv.simpleMat.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 42

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 15 23 34 19 9 40 41

-                              Source GLSL 330

-                              Name 4  "main"

-                              Name 9  "glPos"

-                              Name 12  "mvp"

-                              Name 15  "v"

-                              Name 19  "f"

-                              Name 23  "am3"

-                              Name 34  "arraym"

-                              Name 40  "gl_VertexID"

-                              Name 41  "gl_InstanceID"

-                              Decorate 40(gl_VertexID) BuiltIn VertexId

-                              Decorate 41(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Output 7(fvec4)

-        9(glPos):      8(ptr) Variable Output

-              10:             TypeMatrix 7(fvec4) 4

-              11:             TypePointer UniformConstant 10

-         12(mvp):     11(ptr) Variable UniformConstant

-              14:             TypePointer Input 7(fvec4)

-           15(v):     14(ptr) Variable Input

-              18:             TypePointer Output 6(float)

-           19(f):     18(ptr) Variable Output

-              20:             TypeVector 6(float) 3

-              21:             TypeMatrix 20(fvec3) 3

-              22:             TypePointer Input 21

-         23(am3):     22(ptr) Variable Input

-              24:             TypeInt 32 1

-              25:     24(int) Constant 2

-              26:             TypeInt 32 0

-              27:     26(int) Constant 1

-              28:             TypePointer Input 6(float)

-              31:     26(int) Constant 3

-              32:             TypeArray 10 31

-              33:             TypePointer Input 32

-      34(arraym):     33(ptr) Variable Input

-              35:     24(int) Constant 1

-              39:             TypePointer Input 24(int)

- 40(gl_VertexID):     39(ptr) Variable Input

-41(gl_InstanceID):     39(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              13:          10 Load 12(mvp)

-              16:    7(fvec4) Load 15(v)

-              17:    7(fvec4) MatrixTimesVector 13 16

-                              Store 9(glPos) 17

-              29:     28(ptr) AccessChain 23(am3) 25 27

-              30:    6(float) Load 29

-              36:     28(ptr) AccessChain 34(arraym) 35 25 31

-              37:    6(float) Load 36

-              38:    6(float) FAdd 30 37

-                              Store 19(f) 38

-                              Return

-                              FunctionEnd

+spv.simpleMat.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 42
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 15 23 34 19 9 40 41
+                              Source GLSL 330
+                              Name 4  "main"
+                              Name 9  "glPos"
+                              Name 12  "mvp"
+                              Name 15  "v"
+                              Name 19  "f"
+                              Name 23  "am3"
+                              Name 34  "arraym"
+                              Name 40  "gl_VertexID"
+                              Name 41  "gl_InstanceID"
+                              Decorate 40(gl_VertexID) BuiltIn VertexId
+                              Decorate 41(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Output 7(fvec4)
+        9(glPos):      8(ptr) Variable Output
+              10:             TypeMatrix 7(fvec4) 4
+              11:             TypePointer UniformConstant 10
+         12(mvp):     11(ptr) Variable UniformConstant
+              14:             TypePointer Input 7(fvec4)
+           15(v):     14(ptr) Variable Input
+              18:             TypePointer Output 6(float)
+           19(f):     18(ptr) Variable Output
+              20:             TypeVector 6(float) 3
+              21:             TypeMatrix 20(fvec3) 3
+              22:             TypePointer Input 21
+         23(am3):     22(ptr) Variable Input
+              24:             TypeInt 32 1
+              25:     24(int) Constant 2
+              26:             TypeInt 32 0
+              27:     26(int) Constant 1
+              28:             TypePointer Input 6(float)
+              31:     26(int) Constant 3
+              32:             TypeArray 10 31
+              33:             TypePointer Input 32
+      34(arraym):     33(ptr) Variable Input
+              35:     24(int) Constant 1
+              39:             TypePointer Input 24(int)
+ 40(gl_VertexID):     39(ptr) Variable Input
+41(gl_InstanceID):     39(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              13:          10 Load 12(mvp)
+              16:    7(fvec4) Load 15(v)
+              17:    7(fvec4) MatrixTimesVector 13 16
+                              Store 9(glPos) 17
+              29:     28(ptr) AccessChain 23(am3) 25 27
+              30:    6(float) Load 29
+              36:     28(ptr) AccessChain 34(arraym) 35 25 31
+              37:    6(float) Load 36
+              38:    6(float) FAdd 30 37
+                              Store 19(f) 38
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out
index faded47..535566c 100755
--- a/Test/baseResults/spv.structAssignment.frag.out
+++ b/Test/baseResults/spv.structAssignment.frag.out
@@ -1,94 +1,94 @@
-spv.structAssignment.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 50

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 44

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "lunarStruct1"

-                              MemberName 8(lunarStruct1) 0  "i"

-                              MemberName 8(lunarStruct1) 1  "f"

-                              Name 9  "lunarStruct2"

-                              MemberName 9(lunarStruct2) 0  "i"

-                              MemberName 9(lunarStruct2) 1  "f"

-                              MemberName 9(lunarStruct2) 2  "s1_1"

-                              Name 10  "lunarStruct3"

-                              MemberName 10(lunarStruct3) 0  "s2_1"

-                              MemberName 10(lunarStruct3) 1  "i"

-                              MemberName 10(lunarStruct3) 2  "f"

-                              MemberName 10(lunarStruct3) 3  "s1_1"

-                              Name 12  "foo3"

-                              Name 22  "locals2"

-                              Name 27  "foo2"

-                              Name 31  "gl_FragColor"

-                              Name 40  "samp2D"

-                              Name 44  "coord"

-                              Name 49  "foo"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypeFloat 32

- 8(lunarStruct1):             TypeStruct 6(int) 7(float)

- 9(lunarStruct2):             TypeStruct 6(int) 7(float) 8(lunarStruct1)

-10(lunarStruct3):             TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)

-              11:             TypePointer UniformConstant 10(lunarStruct3)

-        12(foo3):     11(ptr) Variable UniformConstant

-              13:      6(int) Constant 0

-              14:             TypePointer UniformConstant 6(int)

-              17:             TypeBool

-              21:             TypePointer Function 9(lunarStruct2)

-              23:             TypePointer UniformConstant 9(lunarStruct2)

-        27(foo2):     23(ptr) Variable UniformConstant

-              29:             TypeVector 7(float) 4

-              30:             TypePointer Output 29(fvec4)

-31(gl_FragColor):     30(ptr) Variable Output

-              32:      6(int) Constant 2

-              33:      6(int) Constant 1

-              34:             TypePointer Function 7(float)

-              37:             TypeImage 7(float) 2D sampled format:Unknown

-              38:             TypeSampledImage 37

-              39:             TypePointer UniformConstant 38

-      40(samp2D):     39(ptr) Variable UniformConstant

-              42:             TypeVector 7(float) 2

-              43:             TypePointer Input 42(fvec2)

-       44(coord):     43(ptr) Variable Input

-              48:             TypePointer UniformConstant 8(lunarStruct1)

-         49(foo):     48(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-     22(locals2):     21(ptr) Variable Function

-              15:     14(ptr) AccessChain 12(foo3) 13 13

-              16:      6(int) Load 15

-              18:    17(bool) SGreaterThan 16 13

-                              SelectionMerge 20 None

-                              BranchConditional 18 19 26

-              19:               Label

-              24:     23(ptr)   AccessChain 12(foo3) 13

-              25:9(lunarStruct2)   Load 24

-                                Store 22(locals2) 25

-                                Branch 20

-              26:               Label

-              28:9(lunarStruct2)   Load 27(foo2)

-                                Store 22(locals2) 28

-                                Branch 20

-              20:             Label

-              35:     34(ptr) AccessChain 22(locals2) 32 33

-              36:    7(float) Load 35

-              41:          38 Load 40(samp2D)

-              45:   42(fvec2) Load 44(coord)

-              46:   29(fvec4) ImageSampleImplicitLod 41 45

-              47:   29(fvec4) VectorTimesScalar 46 36

-                              Store 31(gl_FragColor) 47

-                              Return

-                              FunctionEnd

+spv.structAssignment.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 50
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 44
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "lunarStruct1"
+                              MemberName 8(lunarStruct1) 0  "i"
+                              MemberName 8(lunarStruct1) 1  "f"
+                              Name 9  "lunarStruct2"
+                              MemberName 9(lunarStruct2) 0  "i"
+                              MemberName 9(lunarStruct2) 1  "f"
+                              MemberName 9(lunarStruct2) 2  "s1_1"
+                              Name 10  "lunarStruct3"
+                              MemberName 10(lunarStruct3) 0  "s2_1"
+                              MemberName 10(lunarStruct3) 1  "i"
+                              MemberName 10(lunarStruct3) 2  "f"
+                              MemberName 10(lunarStruct3) 3  "s1_1"
+                              Name 12  "foo3"
+                              Name 22  "locals2"
+                              Name 27  "foo2"
+                              Name 31  "gl_FragColor"
+                              Name 40  "samp2D"
+                              Name 44  "coord"
+                              Name 49  "foo"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeFloat 32
+ 8(lunarStruct1):             TypeStruct 6(int) 7(float)
+ 9(lunarStruct2):             TypeStruct 6(int) 7(float) 8(lunarStruct1)
+10(lunarStruct3):             TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)
+              11:             TypePointer UniformConstant 10(lunarStruct3)
+        12(foo3):     11(ptr) Variable UniformConstant
+              13:      6(int) Constant 0
+              14:             TypePointer UniformConstant 6(int)
+              17:             TypeBool
+              21:             TypePointer Function 9(lunarStruct2)
+              23:             TypePointer UniformConstant 9(lunarStruct2)
+        27(foo2):     23(ptr) Variable UniformConstant
+              29:             TypeVector 7(float) 4
+              30:             TypePointer Output 29(fvec4)
+31(gl_FragColor):     30(ptr) Variable Output
+              32:      6(int) Constant 2
+              33:      6(int) Constant 1
+              34:             TypePointer Function 7(float)
+              37:             TypeImage 7(float) 2D sampled format:Unknown
+              38:             TypeSampledImage 37
+              39:             TypePointer UniformConstant 38
+      40(samp2D):     39(ptr) Variable UniformConstant
+              42:             TypeVector 7(float) 2
+              43:             TypePointer Input 42(fvec2)
+       44(coord):     43(ptr) Variable Input
+              48:             TypePointer UniformConstant 8(lunarStruct1)
+         49(foo):     48(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+     22(locals2):     21(ptr) Variable Function
+              15:     14(ptr) AccessChain 12(foo3) 13 13
+              16:      6(int) Load 15
+              18:    17(bool) SGreaterThan 16 13
+                              SelectionMerge 20 None
+                              BranchConditional 18 19 26
+              19:               Label
+              24:     23(ptr)   AccessChain 12(foo3) 13
+              25:9(lunarStruct2)   Load 24
+                                Store 22(locals2) 25
+                                Branch 20
+              26:               Label
+              28:9(lunarStruct2)   Load 27(foo2)
+                                Store 22(locals2) 28
+                                Branch 20
+              20:             Label
+              35:     34(ptr) AccessChain 22(locals2) 32 33
+              36:    7(float) Load 35
+              41:          38 Load 40(samp2D)
+              45:   42(fvec2) Load 44(coord)
+              46:   29(fvec4) ImageSampleImplicitLod 41 45
+              47:   29(fvec4) VectorTimesScalar 46 36
+                              Store 31(gl_FragColor) 47
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out
index ec0f762..c958efe 100755
--- a/Test/baseResults/spv.structDeref.frag.out
+++ b/Test/baseResults/spv.structDeref.frag.out
@@ -1,192 +1,192 @@
-spv.structDeref.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 123

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 61

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "s0"

-                              MemberName 8(s0) 0  "i"

-                              Name 9  "s1"

-                              MemberName 9(s1) 0  "i"

-                              MemberName 9(s1) 1  "f"

-                              MemberName 9(s1) 2  "s0_1"

-                              Name 10  "s2"

-                              MemberName 10(s2) 0  "i"

-                              MemberName 10(s2) 1  "f"

-                              MemberName 10(s2) 2  "s1_1"

-                              Name 14  "s3"

-                              MemberName 14(s3) 0  "s2_1"

-                              MemberName 14(s3) 1  "i"

-                              MemberName 14(s3) 2  "f"

-                              MemberName 14(s3) 3  "s1_1"

-                              Name 16  "foo3"

-                              Name 27  "locals2"

-                              Name 40  "fArray"

-                              Name 46  "locals1Array"

-                              Name 49  "foo1"

-                              Name 53  "locals0"

-                              Name 54  "s00"

-                              MemberName 54(s00) 0  "s0_0"

-                              Name 56  "locals00"

-                              Name 61  "coord"

-                              Name 71  "foo0"

-                              Name 86  "foo00"

-                              Name 99  "gl_FragColor"

-                              Name 116  "samp2D"

-                              Name 122  "foo2"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypeFloat 32

-           8(s0):             TypeStruct 6(int)

-           9(s1):             TypeStruct 6(int) 7(float) 8(s0)

-          10(s2):             TypeStruct 6(int) 7(float) 9(s1)

-              11:             TypeInt 32 0

-              12:     11(int) Constant 12

-              13:             TypeArray 10(s2) 12

-          14(s3):             TypeStruct 13 6(int) 7(float) 9(s1)

-              15:             TypePointer UniformConstant 14(s3)

-        16(foo3):     15(ptr) Variable UniformConstant

-              17:      6(int) Constant 0

-              18:      6(int) Constant 9

-              19:             TypePointer UniformConstant 6(int)

-              22:             TypeBool

-              26:             TypePointer Function 10(s2)

-              28:      6(int) Constant 1

-              29:    7(float) Constant 1065353216

-              30:             TypePointer Function 7(float)

-              32:      6(int) Constant 2

-              33:       8(s0) ConstantComposite 17

-              34:       9(s1) ConstantComposite 17 29 33

-              35:             TypePointer Function 9(s1)

-              37:     11(int) Constant 6

-              38:             TypeArray 7(float) 37

-              39:             TypePointer Function 38

-              41:    7(float) Constant 0

-              42:          38 ConstantComposite 41 41 41 41 41 41

-              43:     11(int) Constant 10

-              44:             TypeArray 9(s1) 43

-              45:             TypePointer Function 44

-              47:      6(int) Constant 6

-              48:             TypePointer UniformConstant 9(s1)

-        49(foo1):     48(ptr) Variable UniformConstant

-              52:             TypePointer Function 8(s0)

-         54(s00):             TypeStruct 8(s0)

-              55:             TypePointer Function 54(s00)

-              57:     54(s00) ConstantComposite 33

-              59:             TypeVector 7(float) 2

-              60:             TypePointer Input 59(fvec2)

-       61(coord):     60(ptr) Variable Input

-              62:     11(int) Constant 0

-              63:             TypePointer Input 7(float)

-              67:     11(int) Constant 1

-              70:             TypePointer UniformConstant 8(s0)

-        71(foo0):     70(ptr) Variable UniformConstant

-              75:    7(float) Constant 1073741824

-              76:    7(float) Constant 1077936128

-              77:    7(float) Constant 1082130432

-              78:    7(float) Constant 1084227584

-              79:          38 ConstantComposite 41 29 75 76 77 78

-              85:             TypePointer UniformConstant 54(s00)

-       86(foo00):     85(ptr) Variable UniformConstant

-              88:             TypePointer Function 6(int)

-              91:      6(int) Constant 5

-              97:             TypeVector 7(float) 4

-              98:             TypePointer Output 97(fvec4)

-99(gl_FragColor):     98(ptr) Variable Output

-             106:      6(int) Constant 3

-             113:             TypeImage 7(float) 2D sampled format:Unknown

-             114:             TypeSampledImage 113

-             115:             TypePointer UniformConstant 114

-     116(samp2D):    115(ptr) Variable UniformConstant

-             121:             TypePointer UniformConstant 10(s2)

-       122(foo2):    121(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-     27(locals2):     26(ptr) Variable Function

-      40(fArray):     39(ptr) Variable Function

-46(locals1Array):     45(ptr) Variable Function

-     53(locals0):     52(ptr) Variable Function

-    56(locals00):     55(ptr) Variable Function

-              20:     19(ptr) AccessChain 16(foo3) 17 18 17

-              21:      6(int) Load 20

-              23:    22(bool) SGreaterThan 21 17

-                              SelectionMerge 25 None

-                              BranchConditional 23 24 58

-              24:               Label

-              31:     30(ptr)   AccessChain 27(locals2) 28

-                                Store 31 29

-              36:     35(ptr)   AccessChain 27(locals2) 32

-                                Store 36 34

-                                Store 40(fArray) 42

-              50:       9(s1)   Load 49(foo1)

-              51:     35(ptr)   AccessChain 46(locals1Array) 47

-                                Store 51 50

-                                Store 53(locals0) 33

-                                Store 56(locals00) 57

-                                Branch 25

-              58:               Label

-              64:     63(ptr)   AccessChain 61(coord) 62

-              65:    7(float)   Load 64

-              66:     30(ptr)   AccessChain 27(locals2) 28

-                                Store 66 65

-              68:     63(ptr)   AccessChain 61(coord) 67

-              69:    7(float)   Load 68

-              72:       8(s0)   Load 71(foo0)

-              73:       9(s1)   CompositeConstruct 28 69 72

-              74:     35(ptr)   AccessChain 27(locals2) 32

-                                Store 74 73

-                                Store 40(fArray) 79

-              80:     35(ptr)   AccessChain 27(locals2) 32

-              81:       9(s1)   Load 80

-              82:     35(ptr)   AccessChain 46(locals1Array) 47

-                                Store 82 81

-              83:     70(ptr)   AccessChain 49(foo1) 32

-              84:       8(s0)   Load 83

-                                Store 53(locals0) 84

-              87:     54(s00)   Load 86(foo00)

-                                Store 56(locals00) 87

-                                Branch 25

-              25:             Label

-              89:     88(ptr) AccessChain 53(locals0) 17

-              90:      6(int) Load 89

-              92:    22(bool) SGreaterThan 90 91

-                              SelectionMerge 94 None

-                              BranchConditional 92 93 94

-              93:               Label

-              95:     52(ptr)   AccessChain 56(locals00) 17

-              96:       8(s0)   Load 95

-                                Store 53(locals0) 96

-                                Branch 94

-              94:             Label

-             100:     88(ptr) AccessChain 53(locals0) 17

-             101:      6(int) Load 100

-             102:    7(float) ConvertSToF 101

-             103:     30(ptr) AccessChain 46(locals1Array) 47 28

-             104:    7(float) Load 103

-             105:    7(float) FAdd 102 104

-             107:     30(ptr) AccessChain 40(fArray) 106

-             108:    7(float) Load 107

-             109:    7(float) FAdd 105 108

-             110:     30(ptr) AccessChain 27(locals2) 32 28

-             111:    7(float) Load 110

-             112:    7(float) FAdd 109 111

-             117:         114 Load 116(samp2D)

-             118:   59(fvec2) Load 61(coord)

-             119:   97(fvec4) ImageSampleImplicitLod 117 118

-             120:   97(fvec4) VectorTimesScalar 119 112

-                              Store 99(gl_FragColor) 120

-                              Return

-                              FunctionEnd

+spv.structDeref.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 123
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 61
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "s0"
+                              MemberName 8(s0) 0  "i"
+                              Name 9  "s1"
+                              MemberName 9(s1) 0  "i"
+                              MemberName 9(s1) 1  "f"
+                              MemberName 9(s1) 2  "s0_1"
+                              Name 10  "s2"
+                              MemberName 10(s2) 0  "i"
+                              MemberName 10(s2) 1  "f"
+                              MemberName 10(s2) 2  "s1_1"
+                              Name 14  "s3"
+                              MemberName 14(s3) 0  "s2_1"
+                              MemberName 14(s3) 1  "i"
+                              MemberName 14(s3) 2  "f"
+                              MemberName 14(s3) 3  "s1_1"
+                              Name 16  "foo3"
+                              Name 27  "locals2"
+                              Name 40  "fArray"
+                              Name 46  "locals1Array"
+                              Name 49  "foo1"
+                              Name 53  "locals0"
+                              Name 54  "s00"
+                              MemberName 54(s00) 0  "s0_0"
+                              Name 56  "locals00"
+                              Name 61  "coord"
+                              Name 71  "foo0"
+                              Name 86  "foo00"
+                              Name 99  "gl_FragColor"
+                              Name 116  "samp2D"
+                              Name 122  "foo2"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeFloat 32
+           8(s0):             TypeStruct 6(int)
+           9(s1):             TypeStruct 6(int) 7(float) 8(s0)
+          10(s2):             TypeStruct 6(int) 7(float) 9(s1)
+              11:             TypeInt 32 0
+              12:     11(int) Constant 12
+              13:             TypeArray 10(s2) 12
+          14(s3):             TypeStruct 13 6(int) 7(float) 9(s1)
+              15:             TypePointer UniformConstant 14(s3)
+        16(foo3):     15(ptr) Variable UniformConstant
+              17:      6(int) Constant 0
+              18:      6(int) Constant 9
+              19:             TypePointer UniformConstant 6(int)
+              22:             TypeBool
+              26:             TypePointer Function 10(s2)
+              28:      6(int) Constant 1
+              29:    7(float) Constant 1065353216
+              30:             TypePointer Function 7(float)
+              32:      6(int) Constant 2
+              33:       8(s0) ConstantComposite 17
+              34:       9(s1) ConstantComposite 17 29 33
+              35:             TypePointer Function 9(s1)
+              37:     11(int) Constant 6
+              38:             TypeArray 7(float) 37
+              39:             TypePointer Function 38
+              41:    7(float) Constant 0
+              42:          38 ConstantComposite 41 41 41 41 41 41
+              43:     11(int) Constant 10
+              44:             TypeArray 9(s1) 43
+              45:             TypePointer Function 44
+              47:      6(int) Constant 6
+              48:             TypePointer UniformConstant 9(s1)
+        49(foo1):     48(ptr) Variable UniformConstant
+              52:             TypePointer Function 8(s0)
+         54(s00):             TypeStruct 8(s0)
+              55:             TypePointer Function 54(s00)
+              57:     54(s00) ConstantComposite 33
+              59:             TypeVector 7(float) 2
+              60:             TypePointer Input 59(fvec2)
+       61(coord):     60(ptr) Variable Input
+              62:     11(int) Constant 0
+              63:             TypePointer Input 7(float)
+              67:     11(int) Constant 1
+              70:             TypePointer UniformConstant 8(s0)
+        71(foo0):     70(ptr) Variable UniformConstant
+              75:    7(float) Constant 1073741824
+              76:    7(float) Constant 1077936128
+              77:    7(float) Constant 1082130432
+              78:    7(float) Constant 1084227584
+              79:          38 ConstantComposite 41 29 75 76 77 78
+              85:             TypePointer UniformConstant 54(s00)
+       86(foo00):     85(ptr) Variable UniformConstant
+              88:             TypePointer Function 6(int)
+              91:      6(int) Constant 5
+              97:             TypeVector 7(float) 4
+              98:             TypePointer Output 97(fvec4)
+99(gl_FragColor):     98(ptr) Variable Output
+             106:      6(int) Constant 3
+             113:             TypeImage 7(float) 2D sampled format:Unknown
+             114:             TypeSampledImage 113
+             115:             TypePointer UniformConstant 114
+     116(samp2D):    115(ptr) Variable UniformConstant
+             121:             TypePointer UniformConstant 10(s2)
+       122(foo2):    121(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+     27(locals2):     26(ptr) Variable Function
+      40(fArray):     39(ptr) Variable Function
+46(locals1Array):     45(ptr) Variable Function
+     53(locals0):     52(ptr) Variable Function
+    56(locals00):     55(ptr) Variable Function
+              20:     19(ptr) AccessChain 16(foo3) 17 18 17
+              21:      6(int) Load 20
+              23:    22(bool) SGreaterThan 21 17
+                              SelectionMerge 25 None
+                              BranchConditional 23 24 58
+              24:               Label
+              31:     30(ptr)   AccessChain 27(locals2) 28
+                                Store 31 29
+              36:     35(ptr)   AccessChain 27(locals2) 32
+                                Store 36 34
+                                Store 40(fArray) 42
+              50:       9(s1)   Load 49(foo1)
+              51:     35(ptr)   AccessChain 46(locals1Array) 47
+                                Store 51 50
+                                Store 53(locals0) 33
+                                Store 56(locals00) 57
+                                Branch 25
+              58:               Label
+              64:     63(ptr)   AccessChain 61(coord) 62
+              65:    7(float)   Load 64
+              66:     30(ptr)   AccessChain 27(locals2) 28
+                                Store 66 65
+              68:     63(ptr)   AccessChain 61(coord) 67
+              69:    7(float)   Load 68
+              72:       8(s0)   Load 71(foo0)
+              73:       9(s1)   CompositeConstruct 28 69 72
+              74:     35(ptr)   AccessChain 27(locals2) 32
+                                Store 74 73
+                                Store 40(fArray) 79
+              80:     35(ptr)   AccessChain 27(locals2) 32
+              81:       9(s1)   Load 80
+              82:     35(ptr)   AccessChain 46(locals1Array) 47
+                                Store 82 81
+              83:     70(ptr)   AccessChain 49(foo1) 32
+              84:       8(s0)   Load 83
+                                Store 53(locals0) 84
+              87:     54(s00)   Load 86(foo00)
+                                Store 56(locals00) 87
+                                Branch 25
+              25:             Label
+              89:     88(ptr) AccessChain 53(locals0) 17
+              90:      6(int) Load 89
+              92:    22(bool) SGreaterThan 90 91
+                              SelectionMerge 94 None
+                              BranchConditional 92 93 94
+              93:               Label
+              95:     52(ptr)   AccessChain 56(locals00) 17
+              96:       8(s0)   Load 95
+                                Store 53(locals0) 96
+                                Branch 94
+              94:             Label
+             100:     88(ptr) AccessChain 53(locals0) 17
+             101:      6(int) Load 100
+             102:    7(float) ConvertSToF 101
+             103:     30(ptr) AccessChain 46(locals1Array) 47 28
+             104:    7(float) Load 103
+             105:    7(float) FAdd 102 104
+             107:     30(ptr) AccessChain 40(fArray) 106
+             108:    7(float) Load 107
+             109:    7(float) FAdd 105 108
+             110:     30(ptr) AccessChain 27(locals2) 32 28
+             111:    7(float) Load 110
+             112:    7(float) FAdd 109 111
+             117:         114 Load 116(samp2D)
+             118:   59(fvec2) Load 61(coord)
+             119:   97(fvec4) ImageSampleImplicitLod 117 118
+             120:   97(fvec4) VectorTimesScalar 119 112
+                              Store 99(gl_FragColor) 120
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out
index 79110b8..9e35b70 100755
--- a/Test/baseResults/spv.structure.frag.out
+++ b/Test/baseResults/spv.structure.frag.out
@@ -1,100 +1,100 @@
-spv.structure.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 60

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 54

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "scale"

-                              Name 18  "lunarStruct1"

-                              MemberName 18(lunarStruct1) 0  "i"

-                              MemberName 18(lunarStruct1) 1  "f"

-                              MemberName 18(lunarStruct1) 2  "color"

-                              Name 21  "lunarStruct2"

-                              MemberName 21(lunarStruct2) 0  "i"

-                              MemberName 21(lunarStruct2) 1  "f"

-                              MemberName 21(lunarStruct2) 2  "s1_1"

-                              Name 24  "foo2"

-                              Name 45  "gl_FragColor"

-                              Name 50  "samp2D"

-                              Name 54  "coord"

-                              Name 59  "foo"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Function 6(float)

-               9:    6(float) Constant 0

-              10:             TypeInt 32 1

-              11:             TypeInt 32 0

-              12:     11(int) Constant 5

-              13:             TypeArray 10(int) 12

-              14:     11(int) Constant 4

-              15:             TypeArray 6(float) 14

-              16:             TypeVector 6(float) 4

-              17:             TypeArray 16(fvec4) 12

-18(lunarStruct1):             TypeStruct 10(int) 15 17

-              19:     11(int) Constant 7

-              20:             TypeArray 18(lunarStruct1) 19

-21(lunarStruct2):             TypeStruct 13 6(float) 20

-              22:             TypeArray 21(lunarStruct2) 12

-              23:             TypePointer UniformConstant 22

-        24(foo2):     23(ptr) Variable UniformConstant

-              25:     10(int) Constant 3

-              26:     10(int) Constant 0

-              27:     10(int) Constant 4

-              28:             TypePointer UniformConstant 10(int)

-              31:             TypeBool

-              35:     10(int) Constant 2

-              36:     11(int) Constant 0

-              37:             TypePointer UniformConstant 6(float)

-              41:     10(int) Constant 1

-              44:             TypePointer Output 16(fvec4)

-45(gl_FragColor):     44(ptr) Variable Output

-              47:             TypeImage 6(float) 2D sampled format:Unknown

-              48:             TypeSampledImage 47

-              49:             TypePointer UniformConstant 48

-      50(samp2D):     49(ptr) Variable UniformConstant

-              52:             TypeVector 6(float) 2

-              53:             TypePointer Input 52(fvec2)

-       54(coord):     53(ptr) Variable Input

-              58:             TypePointer UniformConstant 18(lunarStruct1)

-         59(foo):     58(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-        8(scale):      7(ptr) Variable Function

-                              Store 8(scale) 9

-              29:     28(ptr) AccessChain 24(foo2) 25 26 27

-              30:     10(int) Load 29

-              32:    31(bool) SGreaterThan 30 26

-                              SelectionMerge 34 None

-                              BranchConditional 32 33 40

-              33:               Label

-              38:     37(ptr)   AccessChain 24(foo2) 25 35 35 35 25 36

-              39:    6(float)   Load 38

-                                Store 8(scale) 39

-                                Branch 34

-              40:               Label

-              42:     37(ptr)   AccessChain 24(foo2) 25 35 35 41 25

-              43:    6(float)   Load 42

-                                Store 8(scale) 43

-                                Branch 34

-              34:             Label

-              46:    6(float) Load 8(scale)

-              51:          48 Load 50(samp2D)

-              55:   52(fvec2) Load 54(coord)

-              56:   16(fvec4) ImageSampleImplicitLod 51 55

-              57:   16(fvec4) VectorTimesScalar 56 46

-                              Store 45(gl_FragColor) 57

-                              Return

-                              FunctionEnd

+spv.structure.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 60
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 54
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "scale"
+                              Name 18  "lunarStruct1"
+                              MemberName 18(lunarStruct1) 0  "i"
+                              MemberName 18(lunarStruct1) 1  "f"
+                              MemberName 18(lunarStruct1) 2  "color"
+                              Name 21  "lunarStruct2"
+                              MemberName 21(lunarStruct2) 0  "i"
+                              MemberName 21(lunarStruct2) 1  "f"
+                              MemberName 21(lunarStruct2) 2  "s1_1"
+                              Name 24  "foo2"
+                              Name 45  "gl_FragColor"
+                              Name 50  "samp2D"
+                              Name 54  "coord"
+                              Name 59  "foo"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:    6(float) Constant 0
+              10:             TypeInt 32 1
+              11:             TypeInt 32 0
+              12:     11(int) Constant 5
+              13:             TypeArray 10(int) 12
+              14:     11(int) Constant 4
+              15:             TypeArray 6(float) 14
+              16:             TypeVector 6(float) 4
+              17:             TypeArray 16(fvec4) 12
+18(lunarStruct1):             TypeStruct 10(int) 15 17
+              19:     11(int) Constant 7
+              20:             TypeArray 18(lunarStruct1) 19
+21(lunarStruct2):             TypeStruct 13 6(float) 20
+              22:             TypeArray 21(lunarStruct2) 12
+              23:             TypePointer UniformConstant 22
+        24(foo2):     23(ptr) Variable UniformConstant
+              25:     10(int) Constant 3
+              26:     10(int) Constant 0
+              27:     10(int) Constant 4
+              28:             TypePointer UniformConstant 10(int)
+              31:             TypeBool
+              35:     10(int) Constant 2
+              36:     11(int) Constant 0
+              37:             TypePointer UniformConstant 6(float)
+              41:     10(int) Constant 1
+              44:             TypePointer Output 16(fvec4)
+45(gl_FragColor):     44(ptr) Variable Output
+              47:             TypeImage 6(float) 2D sampled format:Unknown
+              48:             TypeSampledImage 47
+              49:             TypePointer UniformConstant 48
+      50(samp2D):     49(ptr) Variable UniformConstant
+              52:             TypeVector 6(float) 2
+              53:             TypePointer Input 52(fvec2)
+       54(coord):     53(ptr) Variable Input
+              58:             TypePointer UniformConstant 18(lunarStruct1)
+         59(foo):     58(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+        8(scale):      7(ptr) Variable Function
+                              Store 8(scale) 9
+              29:     28(ptr) AccessChain 24(foo2) 25 26 27
+              30:     10(int) Load 29
+              32:    31(bool) SGreaterThan 30 26
+                              SelectionMerge 34 None
+                              BranchConditional 32 33 40
+              33:               Label
+              38:     37(ptr)   AccessChain 24(foo2) 25 35 35 35 25 36
+              39:    6(float)   Load 38
+                                Store 8(scale) 39
+                                Branch 34
+              40:               Label
+              42:     37(ptr)   AccessChain 24(foo2) 25 35 35 41 25
+              43:    6(float)   Load 42
+                                Store 8(scale) 43
+                                Branch 34
+              34:             Label
+              46:    6(float) Load 8(scale)
+              51:          48 Load 50(samp2D)
+              55:   52(fvec2) Load 54(coord)
+              56:   16(fvec4) ImageSampleImplicitLod 51 55
+              57:   16(fvec4) VectorTimesScalar 56 46
+                              Store 45(gl_FragColor) 57
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out
index 97cbcf9..0d43083 100755
--- a/Test/baseResults/spv.switch.frag.out
+++ b/Test/baseResults/spv.switch.frag.out
@@ -1,400 +1,400 @@
-spv.switch.frag

-Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.

-WARNING: 0:121: 'switch' : last case/default label not followed by statements 

-WARNING: 0:134: 'switch' : last case/default label not followed by statements 

-WARNING: 0:139: 'switch' : last case/default label not followed by statements 

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 263

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 73 221

-                              ExecutionMode 4 OriginLowerLeft

-                              Source ESSL 310

-                              Name 4  "main"

-                              Name 15  "foo1(vf4;vf4;i1;"

-                              Name 12  "v1"

-                              Name 13  "v2"

-                              Name 14  "i1"

-                              Name 20  "foo2(vf4;vf4;i1;"

-                              Name 17  "v1"

-                              Name 18  "v2"

-                              Name 19  "i1"

-                              Name 58  "local"

-                              Name 60  "c"

-                              Name 71  "f"

-                              Name 73  "x"

-                              Name 127  "d"

-                              Name 153  "i"

-                              Name 171  "j"

-                              Name 221  "color"

-                              Name 227  "v"

-                              Name 228  "param"

-                              Name 230  "param"

-                              Name 232  "param"

-                              Name 240  "param"

-                              Name 242  "param"

-                              Name 244  "param"

-                              Decorate 58(local) RelaxedPrecision

-                              Decorate 60(c) RelaxedPrecision

-                              Decorate 71(f) RelaxedPrecision

-                              Decorate 73(x) RelaxedPrecision

-                              Decorate 127(d) RelaxedPrecision

-                              Decorate 153(i) RelaxedPrecision

-                              Decorate 171(j) RelaxedPrecision

-                              Decorate 221(color) RelaxedPrecision

-                              Decorate 227(v) RelaxedPrecision

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-               9:             TypeInt 32 1

-              10:             TypePointer Function 9(int)

-              11:             TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)

-              36:    6(float) Constant 0

-              37:    7(fvec4) ConstantComposite 36 36 36 36

-              47:    6(float) Constant 1065353216

-              48:    7(fvec4) ConstantComposite 47 47 47 47

-              59:             TypePointer UniformConstant 9(int)

-           60(c):     59(ptr) Variable UniformConstant

-              63:      9(int) Constant 1

-              70:             TypePointer Function 6(float)

-              72:             TypePointer Input 6(float)

-           73(x):     72(ptr) Variable Input

-          127(d):     59(ptr) Variable UniformConstant

-             154:      9(int) Constant 0

-             159:      9(int) Constant 10

-             160:             TypeBool

-             172:      9(int) Constant 20

-             177:      9(int) Constant 30

-             182:    6(float) Constant 1120429670

-             202:    6(float) Constant 1079739679

-             220:             TypePointer Output 6(float)

-      221(color):    220(ptr) Variable Output

-             226:             TypePointer UniformConstant 7(fvec4)

-          227(v):    226(ptr) Variable UniformConstant

-             235:             TypeInt 32 0

-             236:    235(int) Constant 1

-             247:    235(int) Constant 2

-         4(main):           2 Function None 3

-               5:             Label

-       58(local):     10(ptr) Variable Function

-           71(f):     70(ptr) Variable Function

-          153(i):     10(ptr) Variable Function

-          171(j):     10(ptr) Variable Function

-      228(param):      8(ptr) Variable Function

-      230(param):      8(ptr) Variable Function

-      232(param):     10(ptr) Variable Function

-      240(param):      8(ptr) Variable Function

-      242(param):      8(ptr) Variable Function

-      244(param):     10(ptr) Variable Function

-              61:      9(int) Load 60(c)

-                              Store 58(local) 61

-              62:      9(int) Load 58(local)

-              64:      9(int) IAdd 62 63

-                              Store 58(local) 64

-              65:      9(int) Load 60(c)

-                              SelectionMerge 69 None

-                              Switch 65 68 

-                                     case 1: 66

-                                     case 2: 67

-              66:               Label

-              74:    6(float)   Load 73(x)

-              75:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 74

-                                Store 71(f) 75

-                                Branch 69

-              67:               Label

-              77:    6(float)   Load 73(x)

-              78:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 77

-                                Store 71(f) 78

-                                Branch 69

-              68:               Label

-              80:    6(float)   Load 73(x)

-              81:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 80

-                                Store 71(f) 81

-                                Branch 69

-              69:             Label

-              83:      9(int) Load 60(c)

-                              SelectionMerge 87 None

-                              Switch 83 86 

-                                     case 1: 84

-                                     case 2: 85

-              84:               Label

-              88:    6(float)   Load 73(x)

-              89:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 88

-              90:    6(float)   Load 71(f)

-              91:    6(float)   FAdd 90 89

-                                Store 71(f) 91

-                                Branch 85

-              85:               Label

-              92:    6(float)   Load 73(x)

-              93:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 92

-              94:    6(float)   Load 71(f)

-              95:    6(float)   FAdd 94 93

-                                Store 71(f) 95

-                                Branch 87

-              86:               Label

-              97:    6(float)   Load 73(x)

-              98:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 97

-              99:    6(float)   Load 71(f)

-             100:    6(float)   FAdd 99 98

-                                Store 71(f) 100

-                                Branch 87

-              87:             Label

-             102:      9(int) Load 60(c)

-                              SelectionMerge 105 None

-                              Switch 102 105 

-                                     case 1: 103

-                                     case 2: 104

-             103:               Label

-             106:    6(float)   Load 73(x)

-             107:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 106

-             108:    6(float)   Load 71(f)

-             109:    6(float)   FAdd 108 107

-                                Store 71(f) 109

-                                Branch 105

-             104:               Label

-             111:    6(float)   Load 73(x)

-             112:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 111

-             113:    6(float)   Load 71(f)

-             114:    6(float)   FAdd 113 112

-                                Store 71(f) 114

-                                Branch 105

-             105:             Label

-             117:      9(int) Load 60(c)

-                              SelectionMerge 121 None

-                              Switch 117 120 

-                                     case 1: 118

-                                     case 2: 119

-             118:               Label

-             122:    6(float)   Load 73(x)

-             123:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 122

-             124:    6(float)   Load 71(f)

-             125:    6(float)   FAdd 124 123

-                                Store 71(f) 125

-                                Branch 121

-             119:               Label

-             128:      9(int)   Load 127(d)

-                                SelectionMerge 131 None

-                                Switch 128 131 

-                                       case 1: 129

-                                       case 2: 130

-             129:                 Label

-             132:    6(float)     Load 73(x)

-             133:    6(float)     Load 73(x)

-             134:    6(float)     FMul 132 133

-             135:    6(float)     Load 73(x)

-             136:    6(float)     FMul 134 135

-             137:    6(float)     Load 71(f)

-             138:    6(float)     FAdd 137 136

-                                  Store 71(f) 138

-                                  Branch 131

-             130:                 Label

-             140:    6(float)     Load 73(x)

-             141:    6(float)     Load 73(x)

-             142:    6(float)     FMul 140 141

-             143:    6(float)     Load 71(f)

-             144:    6(float)     FAdd 143 142

-                                  Store 71(f) 144

-                                  Branch 131

-             131:               Label

-                                Branch 121

-             120:               Label

-             148:    6(float)   Load 73(x)

-             149:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 148

-             150:    6(float)   Load 71(f)

-             151:    6(float)   FAdd 150 149

-                                Store 71(f) 151

-                                Branch 121

-             121:             Label

-                              Store 153(i) 154

-                              Branch 155

-             155:             Label

-             158:      9(int) Load 153(i)

-             161:   160(bool) SLessThan 158 159

-                              LoopMerge 156 155 None

-                              BranchConditional 161 157 156

-             157:               Label

-             162:      9(int)   Load 60(c)

-                                SelectionMerge 166 None

-                                Switch 162 165 

-                                       case 1: 163

-                                       case 2: 164

-             163:                 Label

-             167:    6(float)     Load 73(x)

-             168:    6(float)     ExtInst 1(GLSL.std.450) 13(Sin) 167

-             169:    6(float)     Load 71(f)

-             170:    6(float)     FAdd 169 168

-                                  Store 71(f) 170

-                                  Store 171(j) 172

-                                  Branch 173

-             173:                 Label

-             176:      9(int)     Load 171(j)

-             178:   160(bool)     SLessThan 176 177

-                                  LoopMerge 174 173 None

-                                  BranchConditional 178 175 174

-             175:                   Label

-             179:    6(float)       Load 71(f)

-             180:    6(float)       FAdd 179 47

-                                    Store 71(f) 180

-             181:    6(float)       Load 71(f)

-             183:   160(bool)       FOrdLessThan 181 182

-                                    SelectionMerge 185 None

-                                    BranchConditional 183 184 185

-             184:                     Label

-                                      Branch 174

-             185:                   Label

-             187:      9(int)       Load 171(j)

-             188:      9(int)       IAdd 187 63

-                                    Store 171(j) 188

-                                    Branch 173

-             174:                 Label

-                                  Branch 166

-             164:                 Label

-             190:    6(float)     Load 73(x)

-             191:    6(float)     ExtInst 1(GLSL.std.450) 14(Cos) 190

-             192:    6(float)     Load 71(f)

-             193:    6(float)     FAdd 192 191

-                                  Store 71(f) 193

-                                  Branch 166

-             165:                 Label

-             196:    6(float)     Load 73(x)

-             197:    6(float)     ExtInst 1(GLSL.std.450) 15(Tan) 196

-             198:    6(float)     Load 71(f)

-             199:    6(float)     FAdd 198 197

-                                  Store 71(f) 199

-                                  Branch 166

-             166:               Label

-             201:    6(float)   Load 71(f)

-             203:   160(bool)   FOrdLessThan 201 202

-                                SelectionMerge 205 None

-                                BranchConditional 203 204 205

-             204:                 Label

-                                  Branch 156

-             205:               Label

-             207:      9(int)   Load 153(i)

-             208:      9(int)   IAdd 207 63

-                                Store 153(i) 208

-                                Branch 155

-             156:             Label

-             209:      9(int) Load 60(c)

-                              SelectionMerge 212 None

-                              Switch 209 212 

-                                     case 1: 210

-                                     case 2: 211

-             210:               Label

-             213:    6(float)   Load 73(x)

-             214:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 213

-             215:    6(float)   Load 71(f)

-             216:    6(float)   FAdd 215 214

-                                Store 71(f) 216

-                                Branch 212

-             211:               Label

-                                Branch 212

-             212:             Label

-             222:    6(float) Load 71(f)

-             223:      9(int) Load 58(local)

-             224:    6(float) ConvertSToF 223

-             225:    6(float) FAdd 222 224

-                              Store 221(color) 225

-             229:    7(fvec4) Load 227(v)

-                              Store 228(param) 229

-             231:    7(fvec4) Load 227(v)

-                              Store 230(param) 231

-             233:      9(int) Load 60(c)

-                              Store 232(param) 233

-             234:    7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param)

-             237:    6(float) CompositeExtract 234 1

-             238:    6(float) Load 221(color)

-             239:    6(float) FAdd 238 237

-                              Store 221(color) 239

-             241:    7(fvec4) Load 227(v)

-                              Store 240(param) 241

-             243:    7(fvec4) Load 227(v)

-                              Store 242(param) 243

-             245:      9(int) Load 60(c)

-                              Store 244(param) 245

-             246:    7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 240(param) 242(param) 244(param)

-             248:    6(float) CompositeExtract 246 2

-             249:    6(float) Load 221(color)

-             250:    6(float) FAdd 249 248

-                              Store 221(color) 250

-             251:      9(int) Load 60(c)

-                              SelectionMerge 254 None

-                              Switch 251 253 

-                                     case 0: 252

-             252:               Label

-                                Branch 254

-             253:               Label

-                                Branch 254

-             254:             Label

-             258:      9(int) Load 60(c)

-                              SelectionMerge 260 None

-                              Switch 258 259

-             259:               Label

-                                Branch 260

-             260:             Label

-                              Return

-                              FunctionEnd

-15(foo1(vf4;vf4;i1;):    7(fvec4) Function None 11

-          12(v1):      8(ptr) FunctionParameter

-          13(v2):      8(ptr) FunctionParameter

-          14(i1):     10(ptr) FunctionParameter

-              16:             Label

-              22:      9(int) Load 14(i1)

-                              SelectionMerge 26 None

-                              Switch 22 26 

-                                     case 0: 23

-                                     case 2: 24

-                                     case 1: 24

-                                     case 3: 25

-              23:               Label

-              27:    7(fvec4)   Load 12(v1)

-                                ReturnValue 27

-              24:               Label

-              29:    7(fvec4)   Load 13(v2)

-                                ReturnValue 29

-              25:               Label

-              31:    7(fvec4)   Load 12(v1)

-              32:    7(fvec4)   Load 13(v2)

-              33:    7(fvec4)   FMul 31 32

-                                ReturnValue 33

-              26:             Label

-                              ReturnValue 37

-                              FunctionEnd

-20(foo2(vf4;vf4;i1;):    7(fvec4) Function None 11

-          17(v1):      8(ptr) FunctionParameter

-          18(v2):      8(ptr) FunctionParameter

-          19(i1):     10(ptr) FunctionParameter

-              21:             Label

-              39:      9(int) Load 19(i1)

-                              SelectionMerge 44 None

-                              Switch 39 44 

-                                     case 0: 40

-                                     case 2: 41

-                                     case 1: 42

-                                     case 3: 43

-              40:               Label

-              45:    7(fvec4)   Load 17(v1)

-                                ReturnValue 45

-              41:               Label

-                                ReturnValue 48

-              42:               Label

-              50:    7(fvec4)   Load 18(v2)

-                                ReturnValue 50

-              43:               Label

-              52:    7(fvec4)   Load 17(v1)

-              53:    7(fvec4)   Load 18(v2)

-              54:    7(fvec4)   FMul 52 53

-                                ReturnValue 54

-              44:             Label

-                              ReturnValue 37

-                              FunctionEnd

+spv.switch.frag
+Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:121: 'switch' : last case/default label not followed by statements 
+WARNING: 0:134: 'switch' : last case/default label not followed by statements 
+WARNING: 0:139: 'switch' : last case/default label not followed by statements 
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 263
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 73 221
+                              ExecutionMode 4 OriginLowerLeft
+                              Source ESSL 310
+                              Name 4  "main"
+                              Name 15  "foo1(vf4;vf4;i1;"
+                              Name 12  "v1"
+                              Name 13  "v2"
+                              Name 14  "i1"
+                              Name 20  "foo2(vf4;vf4;i1;"
+                              Name 17  "v1"
+                              Name 18  "v2"
+                              Name 19  "i1"
+                              Name 58  "local"
+                              Name 60  "c"
+                              Name 71  "f"
+                              Name 73  "x"
+                              Name 127  "d"
+                              Name 153  "i"
+                              Name 171  "j"
+                              Name 221  "color"
+                              Name 227  "v"
+                              Name 228  "param"
+                              Name 230  "param"
+                              Name 232  "param"
+                              Name 240  "param"
+                              Name 242  "param"
+                              Name 244  "param"
+                              Decorate 58(local) RelaxedPrecision
+                              Decorate 60(c) RelaxedPrecision
+                              Decorate 71(f) RelaxedPrecision
+                              Decorate 73(x) RelaxedPrecision
+                              Decorate 127(d) RelaxedPrecision
+                              Decorate 153(i) RelaxedPrecision
+                              Decorate 171(j) RelaxedPrecision
+                              Decorate 221(color) RelaxedPrecision
+                              Decorate 227(v) RelaxedPrecision
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+               9:             TypeInt 32 1
+              10:             TypePointer Function 9(int)
+              11:             TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)
+              36:    6(float) Constant 0
+              37:    7(fvec4) ConstantComposite 36 36 36 36
+              47:    6(float) Constant 1065353216
+              48:    7(fvec4) ConstantComposite 47 47 47 47
+              59:             TypePointer UniformConstant 9(int)
+           60(c):     59(ptr) Variable UniformConstant
+              63:      9(int) Constant 1
+              70:             TypePointer Function 6(float)
+              72:             TypePointer Input 6(float)
+           73(x):     72(ptr) Variable Input
+          127(d):     59(ptr) Variable UniformConstant
+             154:      9(int) Constant 0
+             159:      9(int) Constant 10
+             160:             TypeBool
+             172:      9(int) Constant 20
+             177:      9(int) Constant 30
+             182:    6(float) Constant 1120429670
+             202:    6(float) Constant 1079739679
+             220:             TypePointer Output 6(float)
+      221(color):    220(ptr) Variable Output
+             226:             TypePointer UniformConstant 7(fvec4)
+          227(v):    226(ptr) Variable UniformConstant
+             235:             TypeInt 32 0
+             236:    235(int) Constant 1
+             247:    235(int) Constant 2
+         4(main):           2 Function None 3
+               5:             Label
+       58(local):     10(ptr) Variable Function
+           71(f):     70(ptr) Variable Function
+          153(i):     10(ptr) Variable Function
+          171(j):     10(ptr) Variable Function
+      228(param):      8(ptr) Variable Function
+      230(param):      8(ptr) Variable Function
+      232(param):     10(ptr) Variable Function
+      240(param):      8(ptr) Variable Function
+      242(param):      8(ptr) Variable Function
+      244(param):     10(ptr) Variable Function
+              61:      9(int) Load 60(c)
+                              Store 58(local) 61
+              62:      9(int) Load 58(local)
+              64:      9(int) IAdd 62 63
+                              Store 58(local) 64
+              65:      9(int) Load 60(c)
+                              SelectionMerge 69 None
+                              Switch 65 68 
+                                     case 1: 66
+                                     case 2: 67
+              66:               Label
+              74:    6(float)   Load 73(x)
+              75:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 74
+                                Store 71(f) 75
+                                Branch 69
+              67:               Label
+              77:    6(float)   Load 73(x)
+              78:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 77
+                                Store 71(f) 78
+                                Branch 69
+              68:               Label
+              80:    6(float)   Load 73(x)
+              81:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 80
+                                Store 71(f) 81
+                                Branch 69
+              69:             Label
+              83:      9(int) Load 60(c)
+                              SelectionMerge 87 None
+                              Switch 83 86 
+                                     case 1: 84
+                                     case 2: 85
+              84:               Label
+              88:    6(float)   Load 73(x)
+              89:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 88
+              90:    6(float)   Load 71(f)
+              91:    6(float)   FAdd 90 89
+                                Store 71(f) 91
+                                Branch 85
+              85:               Label
+              92:    6(float)   Load 73(x)
+              93:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 92
+              94:    6(float)   Load 71(f)
+              95:    6(float)   FAdd 94 93
+                                Store 71(f) 95
+                                Branch 87
+              86:               Label
+              97:    6(float)   Load 73(x)
+              98:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 97
+              99:    6(float)   Load 71(f)
+             100:    6(float)   FAdd 99 98
+                                Store 71(f) 100
+                                Branch 87
+              87:             Label
+             102:      9(int) Load 60(c)
+                              SelectionMerge 105 None
+                              Switch 102 105 
+                                     case 1: 103
+                                     case 2: 104
+             103:               Label
+             106:    6(float)   Load 73(x)
+             107:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 106
+             108:    6(float)   Load 71(f)
+             109:    6(float)   FAdd 108 107
+                                Store 71(f) 109
+                                Branch 105
+             104:               Label
+             111:    6(float)   Load 73(x)
+             112:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 111
+             113:    6(float)   Load 71(f)
+             114:    6(float)   FAdd 113 112
+                                Store 71(f) 114
+                                Branch 105
+             105:             Label
+             117:      9(int) Load 60(c)
+                              SelectionMerge 121 None
+                              Switch 117 120 
+                                     case 1: 118
+                                     case 2: 119
+             118:               Label
+             122:    6(float)   Load 73(x)
+             123:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 122
+             124:    6(float)   Load 71(f)
+             125:    6(float)   FAdd 124 123
+                                Store 71(f) 125
+                                Branch 121
+             119:               Label
+             128:      9(int)   Load 127(d)
+                                SelectionMerge 131 None
+                                Switch 128 131 
+                                       case 1: 129
+                                       case 2: 130
+             129:                 Label
+             132:    6(float)     Load 73(x)
+             133:    6(float)     Load 73(x)
+             134:    6(float)     FMul 132 133
+             135:    6(float)     Load 73(x)
+             136:    6(float)     FMul 134 135
+             137:    6(float)     Load 71(f)
+             138:    6(float)     FAdd 137 136
+                                  Store 71(f) 138
+                                  Branch 131
+             130:                 Label
+             140:    6(float)     Load 73(x)
+             141:    6(float)     Load 73(x)
+             142:    6(float)     FMul 140 141
+             143:    6(float)     Load 71(f)
+             144:    6(float)     FAdd 143 142
+                                  Store 71(f) 144
+                                  Branch 131
+             131:               Label
+                                Branch 121
+             120:               Label
+             148:    6(float)   Load 73(x)
+             149:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 148
+             150:    6(float)   Load 71(f)
+             151:    6(float)   FAdd 150 149
+                                Store 71(f) 151
+                                Branch 121
+             121:             Label
+                              Store 153(i) 154
+                              Branch 155
+             155:             Label
+             158:      9(int) Load 153(i)
+             161:   160(bool) SLessThan 158 159
+                              LoopMerge 156 155 None
+                              BranchConditional 161 157 156
+             157:               Label
+             162:      9(int)   Load 60(c)
+                                SelectionMerge 166 None
+                                Switch 162 165 
+                                       case 1: 163
+                                       case 2: 164
+             163:                 Label
+             167:    6(float)     Load 73(x)
+             168:    6(float)     ExtInst 1(GLSL.std.450) 13(Sin) 167
+             169:    6(float)     Load 71(f)
+             170:    6(float)     FAdd 169 168
+                                  Store 71(f) 170
+                                  Store 171(j) 172
+                                  Branch 173
+             173:                 Label
+             176:      9(int)     Load 171(j)
+             178:   160(bool)     SLessThan 176 177
+                                  LoopMerge 174 173 None
+                                  BranchConditional 178 175 174
+             175:                   Label
+             179:    6(float)       Load 71(f)
+             180:    6(float)       FAdd 179 47
+                                    Store 71(f) 180
+             181:    6(float)       Load 71(f)
+             183:   160(bool)       FOrdLessThan 181 182
+                                    SelectionMerge 185 None
+                                    BranchConditional 183 184 185
+             184:                     Label
+                                      Branch 174
+             185:                   Label
+             187:      9(int)       Load 171(j)
+             188:      9(int)       IAdd 187 63
+                                    Store 171(j) 188
+                                    Branch 173
+             174:                 Label
+                                  Branch 166
+             164:                 Label
+             190:    6(float)     Load 73(x)
+             191:    6(float)     ExtInst 1(GLSL.std.450) 14(Cos) 190
+             192:    6(float)     Load 71(f)
+             193:    6(float)     FAdd 192 191
+                                  Store 71(f) 193
+                                  Branch 166
+             165:                 Label
+             196:    6(float)     Load 73(x)
+             197:    6(float)     ExtInst 1(GLSL.std.450) 15(Tan) 196
+             198:    6(float)     Load 71(f)
+             199:    6(float)     FAdd 198 197
+                                  Store 71(f) 199
+                                  Branch 166
+             166:               Label
+             201:    6(float)   Load 71(f)
+             203:   160(bool)   FOrdLessThan 201 202
+                                SelectionMerge 205 None
+                                BranchConditional 203 204 205
+             204:                 Label
+                                  Branch 156
+             205:               Label
+             207:      9(int)   Load 153(i)
+             208:      9(int)   IAdd 207 63
+                                Store 153(i) 208
+                                Branch 155
+             156:             Label
+             209:      9(int) Load 60(c)
+                              SelectionMerge 212 None
+                              Switch 209 212 
+                                     case 1: 210
+                                     case 2: 211
+             210:               Label
+             213:    6(float)   Load 73(x)
+             214:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 213
+             215:    6(float)   Load 71(f)
+             216:    6(float)   FAdd 215 214
+                                Store 71(f) 216
+                                Branch 212
+             211:               Label
+                                Branch 212
+             212:             Label
+             222:    6(float) Load 71(f)
+             223:      9(int) Load 58(local)
+             224:    6(float) ConvertSToF 223
+             225:    6(float) FAdd 222 224
+                              Store 221(color) 225
+             229:    7(fvec4) Load 227(v)
+                              Store 228(param) 229
+             231:    7(fvec4) Load 227(v)
+                              Store 230(param) 231
+             233:      9(int) Load 60(c)
+                              Store 232(param) 233
+             234:    7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param)
+             237:    6(float) CompositeExtract 234 1
+             238:    6(float) Load 221(color)
+             239:    6(float) FAdd 238 237
+                              Store 221(color) 239
+             241:    7(fvec4) Load 227(v)
+                              Store 240(param) 241
+             243:    7(fvec4) Load 227(v)
+                              Store 242(param) 243
+             245:      9(int) Load 60(c)
+                              Store 244(param) 245
+             246:    7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 240(param) 242(param) 244(param)
+             248:    6(float) CompositeExtract 246 2
+             249:    6(float) Load 221(color)
+             250:    6(float) FAdd 249 248
+                              Store 221(color) 250
+             251:      9(int) Load 60(c)
+                              SelectionMerge 254 None
+                              Switch 251 253 
+                                     case 0: 252
+             252:               Label
+                                Branch 254
+             253:               Label
+                                Branch 254
+             254:             Label
+             258:      9(int) Load 60(c)
+                              SelectionMerge 260 None
+                              Switch 258 259
+             259:               Label
+                                Branch 260
+             260:             Label
+                              Return
+                              FunctionEnd
+15(foo1(vf4;vf4;i1;):    7(fvec4) Function None 11
+          12(v1):      8(ptr) FunctionParameter
+          13(v2):      8(ptr) FunctionParameter
+          14(i1):     10(ptr) FunctionParameter
+              16:             Label
+              22:      9(int) Load 14(i1)
+                              SelectionMerge 26 None
+                              Switch 22 26 
+                                     case 0: 23
+                                     case 2: 24
+                                     case 1: 24
+                                     case 3: 25
+              23:               Label
+              27:    7(fvec4)   Load 12(v1)
+                                ReturnValue 27
+              24:               Label
+              29:    7(fvec4)   Load 13(v2)
+                                ReturnValue 29
+              25:               Label
+              31:    7(fvec4)   Load 12(v1)
+              32:    7(fvec4)   Load 13(v2)
+              33:    7(fvec4)   FMul 31 32
+                                ReturnValue 33
+              26:             Label
+                              ReturnValue 37
+                              FunctionEnd
+20(foo2(vf4;vf4;i1;):    7(fvec4) Function None 11
+          17(v1):      8(ptr) FunctionParameter
+          18(v2):      8(ptr) FunctionParameter
+          19(i1):     10(ptr) FunctionParameter
+              21:             Label
+              39:      9(int) Load 19(i1)
+                              SelectionMerge 44 None
+                              Switch 39 44 
+                                     case 0: 40
+                                     case 2: 41
+                                     case 1: 42
+                                     case 3: 43
+              40:               Label
+              45:    7(fvec4)   Load 17(v1)
+                                ReturnValue 45
+              41:               Label
+                                ReturnValue 48
+              42:               Label
+              50:    7(fvec4)   Load 18(v2)
+                                ReturnValue 50
+              43:               Label
+              52:    7(fvec4)   Load 17(v1)
+              53:    7(fvec4)   Load 18(v2)
+              54:    7(fvec4)   FMul 52 53
+                                ReturnValue 54
+              44:             Label
+                              ReturnValue 37
+                              FunctionEnd
diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out
index f66dc4e..ded0f05 100755
--- a/Test/baseResults/spv.swizzle.frag.out
+++ b/Test/baseResults/spv.swizzle.frag.out
@@ -1,171 +1,171 @@
-spv.swizzle.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 109

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 30

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 8  "blendscale"

-                              Name 12  "w"

-                              Name 14  "u"

-                              Name 16  "w_dep"

-                              Name 18  "w_reorder"

-                              Name 20  "w2"

-                              Name 22  "w_flow"

-                              Name 30  "t"

-                              Name 49  "w_undef"

-                              Name 56  "p"

-                              Name 69  "gl_FragColor"

-                              Name 81  "c"

-                              Name 83  "rep"

-                              Name 108  "blend"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Function 6(float)

-               9:    6(float) Constant 1071971828

-              10:             TypeVector 6(float) 4

-              11:             TypePointer Function 10(fvec4)

-              13:             TypePointer UniformConstant 10(fvec4)

-           14(u):     13(ptr) Variable UniformConstant

-              25:             TypeInt 32 0

-              26:     25(int) Constant 2

-              28:             TypeVector 6(float) 2

-              29:             TypePointer Input 28(fvec2)

-           30(t):     29(ptr) Variable Input

-              35:     25(int) Constant 0

-              40:     25(int) Constant 1

-              54:             TypeBool

-              55:             TypePointer UniformConstant 54(bool)

-           56(p):     55(ptr) Variable UniformConstant

-              60:             TypePointer Input 6(float)

-              68:             TypePointer Output 10(fvec4)

-69(gl_FragColor):     68(ptr) Variable Output

-              80:             TypePointer Function 28(fvec2)

-              84:    6(float) Constant 0

-              85:    6(float) Constant 1065353216

-              86:   10(fvec4) ConstantComposite 84 84 84 85

-              92:    6(float) Constant 3212836864

-             102:    6(float) Constant 1079613850

-             107:             TypePointer UniformConstant 6(float)

-      108(blend):    107(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-   8(blendscale):      7(ptr) Variable Function

-           12(w):     11(ptr) Variable Function

-       16(w_dep):     11(ptr) Variable Function

-   18(w_reorder):     11(ptr) Variable Function

-          20(w2):     11(ptr) Variable Function

-      22(w_flow):     11(ptr) Variable Function

-     49(w_undef):     11(ptr) Variable Function

-           81(c):     80(ptr) Variable Function

-         83(rep):     11(ptr) Variable Function

-                              Store 8(blendscale) 9

-              15:   10(fvec4) Load 14(u)

-                              Store 12(w) 15

-              17:   10(fvec4) Load 14(u)

-                              Store 16(w_dep) 17

-              19:   10(fvec4) Load 14(u)

-                              Store 18(w_reorder) 19

-              21:   10(fvec4) Load 14(u)

-                              Store 20(w2) 21

-              23:   10(fvec4) Load 14(u)

-                              Store 22(w_flow) 23

-              24:    6(float) Load 8(blendscale)

-              27:      7(ptr) AccessChain 18(w_reorder) 26

-                              Store 27 24

-              31:   28(fvec2) Load 30(t)

-              32:   10(fvec4) Load 12(w)

-              33:   10(fvec4) VectorShuffle 32 31 0 5 2 4

-                              Store 12(w) 33

-              34:    6(float) Load 8(blendscale)

-              36:      7(ptr) AccessChain 18(w_reorder) 35

-                              Store 36 34

-              37:   10(fvec4) Load 14(u)

-              38:   10(fvec4) VectorShuffle 37 37 2 3 0 1

-                              Store 20(w2) 38

-              39:    6(float) Load 8(blendscale)

-              41:      7(ptr) AccessChain 18(w_reorder) 40

-                              Store 41 39

-              42:   10(fvec4) Load 20(w2)

-              43:   28(fvec2) VectorShuffle 42 42 0 2

-              44:   10(fvec4) Load 16(w_dep)

-              45:   10(fvec4) VectorShuffle 44 43 4 5 2 3

-                              Store 16(w_dep) 45

-              46:   28(fvec2) Load 30(t)

-              47:   10(fvec4) Load 16(w_dep)

-              48:   10(fvec4) VectorShuffle 47 46 0 1 4 5

-                              Store 16(w_dep) 48

-              50:   10(fvec4) Load 14(u)

-              51:   28(fvec2) VectorShuffle 50 50 2 3

-              52:   10(fvec4) Load 49(w_undef)

-              53:   10(fvec4) VectorShuffle 52 51 4 5 2 3

-                              Store 49(w_undef) 53

-              57:    54(bool) Load 56(p)

-                              SelectionMerge 59 None

-                              BranchConditional 57 58 64

-              58:               Label

-              61:     60(ptr)   AccessChain 30(t) 35

-              62:    6(float)   Load 61

-              63:      7(ptr)   AccessChain 22(w_flow) 35

-                                Store 63 62

-                                Branch 59

-              64:               Label

-              65:     60(ptr)   AccessChain 30(t) 40

-              66:    6(float)   Load 65

-              67:      7(ptr)   AccessChain 22(w_flow) 35

-                                Store 67 66

-                                Branch 59

-              59:             Label

-              70:   10(fvec4) Load 18(w_reorder)

-              71:   10(fvec4) Load 49(w_undef)

-              72:   10(fvec4) Load 12(w)

-              73:   10(fvec4) Load 20(w2)

-              74:   10(fvec4) FMul 72 73

-              75:   10(fvec4) Load 16(w_dep)

-              76:   10(fvec4) FMul 74 75

-              77:   10(fvec4) Load 22(w_flow)

-              78:   10(fvec4) FMul 76 77

-              79:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78

-                              Store 69(gl_FragColor) 79

-              82:   28(fvec2) Load 30(t)

-                              Store 81(c) 82

-                              Store 83(rep) 86

-              87:      7(ptr) AccessChain 81(c) 35

-              88:    6(float) Load 87

-              89:    54(bool) FOrdLessThan 88 84

-                              SelectionMerge 91 None

-                              BranchConditional 89 90 91

-              90:               Label

-              93:      7(ptr)   AccessChain 81(c) 35

-              94:    6(float)   Load 93

-              95:    6(float)   FMul 94 92

-              96:      7(ptr)   AccessChain 81(c) 35

-                                Store 96 95

-                                Branch 91

-              91:             Label

-              97:      7(ptr) AccessChain 81(c) 35

-              98:    6(float) Load 97

-              99:    54(bool) FOrdLessThanEqual 98 85

-                              SelectionMerge 101 None

-                              BranchConditional 99 100 101

-             100:               Label

-             103:      7(ptr)   AccessChain 83(rep) 35

-                                Store 103 102

-                                Branch 101

-             101:             Label

-             104:   10(fvec4) Load 83(rep)

-             105:   10(fvec4) Load 69(gl_FragColor)

-             106:   10(fvec4) FAdd 105 104

-                              Store 69(gl_FragColor) 106

-                              Return

-                              FunctionEnd

+spv.swizzle.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 109
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 30
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 8  "blendscale"
+                              Name 12  "w"
+                              Name 14  "u"
+                              Name 16  "w_dep"
+                              Name 18  "w_reorder"
+                              Name 20  "w2"
+                              Name 22  "w_flow"
+                              Name 30  "t"
+                              Name 49  "w_undef"
+                              Name 56  "p"
+                              Name 69  "gl_FragColor"
+                              Name 81  "c"
+                              Name 83  "rep"
+                              Name 108  "blend"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:    6(float) Constant 1071971828
+              10:             TypeVector 6(float) 4
+              11:             TypePointer Function 10(fvec4)
+              13:             TypePointer UniformConstant 10(fvec4)
+           14(u):     13(ptr) Variable UniformConstant
+              25:             TypeInt 32 0
+              26:     25(int) Constant 2
+              28:             TypeVector 6(float) 2
+              29:             TypePointer Input 28(fvec2)
+           30(t):     29(ptr) Variable Input
+              35:     25(int) Constant 0
+              40:     25(int) Constant 1
+              54:             TypeBool
+              55:             TypePointer UniformConstant 54(bool)
+           56(p):     55(ptr) Variable UniformConstant
+              60:             TypePointer Input 6(float)
+              68:             TypePointer Output 10(fvec4)
+69(gl_FragColor):     68(ptr) Variable Output
+              80:             TypePointer Function 28(fvec2)
+              84:    6(float) Constant 0
+              85:    6(float) Constant 1065353216
+              86:   10(fvec4) ConstantComposite 84 84 84 85
+              92:    6(float) Constant 3212836864
+             102:    6(float) Constant 1079613850
+             107:             TypePointer UniformConstant 6(float)
+      108(blend):    107(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+   8(blendscale):      7(ptr) Variable Function
+           12(w):     11(ptr) Variable Function
+       16(w_dep):     11(ptr) Variable Function
+   18(w_reorder):     11(ptr) Variable Function
+          20(w2):     11(ptr) Variable Function
+      22(w_flow):     11(ptr) Variable Function
+     49(w_undef):     11(ptr) Variable Function
+           81(c):     80(ptr) Variable Function
+         83(rep):     11(ptr) Variable Function
+                              Store 8(blendscale) 9
+              15:   10(fvec4) Load 14(u)
+                              Store 12(w) 15
+              17:   10(fvec4) Load 14(u)
+                              Store 16(w_dep) 17
+              19:   10(fvec4) Load 14(u)
+                              Store 18(w_reorder) 19
+              21:   10(fvec4) Load 14(u)
+                              Store 20(w2) 21
+              23:   10(fvec4) Load 14(u)
+                              Store 22(w_flow) 23
+              24:    6(float) Load 8(blendscale)
+              27:      7(ptr) AccessChain 18(w_reorder) 26
+                              Store 27 24
+              31:   28(fvec2) Load 30(t)
+              32:   10(fvec4) Load 12(w)
+              33:   10(fvec4) VectorShuffle 32 31 0 5 2 4
+                              Store 12(w) 33
+              34:    6(float) Load 8(blendscale)
+              36:      7(ptr) AccessChain 18(w_reorder) 35
+                              Store 36 34
+              37:   10(fvec4) Load 14(u)
+              38:   10(fvec4) VectorShuffle 37 37 2 3 0 1
+                              Store 20(w2) 38
+              39:    6(float) Load 8(blendscale)
+              41:      7(ptr) AccessChain 18(w_reorder) 40
+                              Store 41 39
+              42:   10(fvec4) Load 20(w2)
+              43:   28(fvec2) VectorShuffle 42 42 0 2
+              44:   10(fvec4) Load 16(w_dep)
+              45:   10(fvec4) VectorShuffle 44 43 4 5 2 3
+                              Store 16(w_dep) 45
+              46:   28(fvec2) Load 30(t)
+              47:   10(fvec4) Load 16(w_dep)
+              48:   10(fvec4) VectorShuffle 47 46 0 1 4 5
+                              Store 16(w_dep) 48
+              50:   10(fvec4) Load 14(u)
+              51:   28(fvec2) VectorShuffle 50 50 2 3
+              52:   10(fvec4) Load 49(w_undef)
+              53:   10(fvec4) VectorShuffle 52 51 4 5 2 3
+                              Store 49(w_undef) 53
+              57:    54(bool) Load 56(p)
+                              SelectionMerge 59 None
+                              BranchConditional 57 58 64
+              58:               Label
+              61:     60(ptr)   AccessChain 30(t) 35
+              62:    6(float)   Load 61
+              63:      7(ptr)   AccessChain 22(w_flow) 35
+                                Store 63 62
+                                Branch 59
+              64:               Label
+              65:     60(ptr)   AccessChain 30(t) 40
+              66:    6(float)   Load 65
+              67:      7(ptr)   AccessChain 22(w_flow) 35
+                                Store 67 66
+                                Branch 59
+              59:             Label
+              70:   10(fvec4) Load 18(w_reorder)
+              71:   10(fvec4) Load 49(w_undef)
+              72:   10(fvec4) Load 12(w)
+              73:   10(fvec4) Load 20(w2)
+              74:   10(fvec4) FMul 72 73
+              75:   10(fvec4) Load 16(w_dep)
+              76:   10(fvec4) FMul 74 75
+              77:   10(fvec4) Load 22(w_flow)
+              78:   10(fvec4) FMul 76 77
+              79:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78
+                              Store 69(gl_FragColor) 79
+              82:   28(fvec2) Load 30(t)
+                              Store 81(c) 82
+                              Store 83(rep) 86
+              87:      7(ptr) AccessChain 81(c) 35
+              88:    6(float) Load 87
+              89:    54(bool) FOrdLessThan 88 84
+                              SelectionMerge 91 None
+                              BranchConditional 89 90 91
+              90:               Label
+              93:      7(ptr)   AccessChain 81(c) 35
+              94:    6(float)   Load 93
+              95:    6(float)   FMul 94 92
+              96:      7(ptr)   AccessChain 81(c) 35
+                                Store 96 95
+                                Branch 91
+              91:             Label
+              97:      7(ptr) AccessChain 81(c) 35
+              98:    6(float) Load 97
+              99:    54(bool) FOrdLessThanEqual 98 85
+                              SelectionMerge 101 None
+                              BranchConditional 99 100 101
+             100:               Label
+             103:      7(ptr)   AccessChain 83(rep) 35
+                                Store 103 102
+                                Branch 101
+             101:             Label
+             104:   10(fvec4) Load 83(rep)
+             105:   10(fvec4) Load 69(gl_FragColor)
+             106:   10(fvec4) FAdd 105 104
+                              Store 69(gl_FragColor) 106
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out
index 344d021..8bed807 100755
--- a/Test/baseResults/spv.test.frag.out
+++ b/Test/baseResults/spv.test.frag.out
@@ -1,88 +1,88 @@
-spv.test.frag

-Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 55

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 20 38

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 400

-                              Name 4  "main"

-                              Name 8  "blendscale"

-                              Name 12  "v"

-                              Name 16  "texSampler2D"

-                              Name 20  "t"

-                              Name 23  "scale"

-                              Name 30  "w"

-                              Name 34  "texSampler3D"

-                              Name 38  "coords"

-                              Name 44  "gl_FragColor"

-                              Name 47  "u"

-                              Name 50  "blend"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Function 6(float)

-               9:    6(float) Constant 1071971828

-              10:             TypeVector 6(float) 4

-              11:             TypePointer Function 10(fvec4)

-              13:             TypeImage 6(float) 2D sampled format:Unknown

-              14:             TypeSampledImage 13

-              15:             TypePointer UniformConstant 14

-16(texSampler2D):     15(ptr) Variable UniformConstant

-              18:             TypeVector 6(float) 2

-              19:             TypePointer Input 18(fvec2)

-           20(t):     19(ptr) Variable Input

-              22:             TypePointer UniformConstant 18(fvec2)

-       23(scale):     22(ptr) Variable UniformConstant

-              31:             TypeImage 6(float) 3D sampled format:Unknown

-              32:             TypeSampledImage 31

-              33:             TypePointer UniformConstant 32

-34(texSampler3D):     33(ptr) Variable UniformConstant

-              36:             TypeVector 6(float) 3

-              37:             TypePointer Input 36(fvec3)

-      38(coords):     37(ptr) Variable Input

-              43:             TypePointer Output 10(fvec4)

-44(gl_FragColor):     43(ptr) Variable Output

-              46:             TypePointer UniformConstant 10(fvec4)

-           47(u):     46(ptr) Variable UniformConstant

-              49:             TypePointer UniformConstant 6(float)

-       50(blend):     49(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-   8(blendscale):      7(ptr) Variable Function

-           12(v):     11(ptr) Variable Function

-           30(w):     11(ptr) Variable Function

-                              Store 8(blendscale) 9

-              17:          14 Load 16(texSampler2D)

-              21:   18(fvec2) Load 20(t)

-              24:   18(fvec2) Load 23(scale)

-              25:   18(fvec2) FAdd 21 24

-              26:   18(fvec2) Load 23(scale)

-              27:   18(fvec2) FDiv 25 26

-              28:   10(fvec4) ImageSampleImplicitLod 17 27

-              29:   10(fvec4) VectorShuffle 28 28 3 2 1 0

-                              Store 12(v) 29

-              35:          32 Load 34(texSampler3D)

-              39:   36(fvec3) Load 38(coords)

-              40:   10(fvec4) ImageSampleImplicitLod 35 39

-              41:   10(fvec4) Load 12(v)

-              42:   10(fvec4) FAdd 40 41

-                              Store 30(w) 42

-              45:   10(fvec4) Load 30(w)

-              48:   10(fvec4) Load 47(u)

-              51:    6(float) Load 50(blend)

-              52:    6(float) Load 8(blendscale)

-              53:    6(float) FMul 51 52

-              54:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 45 48 53

-                              Store 44(gl_FragColor) 54

-                              Return

-                              FunctionEnd

+spv.test.frag
+Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 55
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 20 38
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 400
+                              Name 4  "main"
+                              Name 8  "blendscale"
+                              Name 12  "v"
+                              Name 16  "texSampler2D"
+                              Name 20  "t"
+                              Name 23  "scale"
+                              Name 30  "w"
+                              Name 34  "texSampler3D"
+                              Name 38  "coords"
+                              Name 44  "gl_FragColor"
+                              Name 47  "u"
+                              Name 50  "blend"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:    6(float) Constant 1071971828
+              10:             TypeVector 6(float) 4
+              11:             TypePointer Function 10(fvec4)
+              13:             TypeImage 6(float) 2D sampled format:Unknown
+              14:             TypeSampledImage 13
+              15:             TypePointer UniformConstant 14
+16(texSampler2D):     15(ptr) Variable UniformConstant
+              18:             TypeVector 6(float) 2
+              19:             TypePointer Input 18(fvec2)
+           20(t):     19(ptr) Variable Input
+              22:             TypePointer UniformConstant 18(fvec2)
+       23(scale):     22(ptr) Variable UniformConstant
+              31:             TypeImage 6(float) 3D sampled format:Unknown
+              32:             TypeSampledImage 31
+              33:             TypePointer UniformConstant 32
+34(texSampler3D):     33(ptr) Variable UniformConstant
+              36:             TypeVector 6(float) 3
+              37:             TypePointer Input 36(fvec3)
+      38(coords):     37(ptr) Variable Input
+              43:             TypePointer Output 10(fvec4)
+44(gl_FragColor):     43(ptr) Variable Output
+              46:             TypePointer UniformConstant 10(fvec4)
+           47(u):     46(ptr) Variable UniformConstant
+              49:             TypePointer UniformConstant 6(float)
+       50(blend):     49(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+   8(blendscale):      7(ptr) Variable Function
+           12(v):     11(ptr) Variable Function
+           30(w):     11(ptr) Variable Function
+                              Store 8(blendscale) 9
+              17:          14 Load 16(texSampler2D)
+              21:   18(fvec2) Load 20(t)
+              24:   18(fvec2) Load 23(scale)
+              25:   18(fvec2) FAdd 21 24
+              26:   18(fvec2) Load 23(scale)
+              27:   18(fvec2) FDiv 25 26
+              28:   10(fvec4) ImageSampleImplicitLod 17 27
+              29:   10(fvec4) VectorShuffle 28 28 3 2 1 0
+                              Store 12(v) 29
+              35:          32 Load 34(texSampler3D)
+              39:   36(fvec3) Load 38(coords)
+              40:   10(fvec4) ImageSampleImplicitLod 35 39
+              41:   10(fvec4) Load 12(v)
+              42:   10(fvec4) FAdd 40 41
+                              Store 30(w) 42
+              45:   10(fvec4) Load 30(w)
+              48:   10(fvec4) Load 47(u)
+              51:    6(float) Load 50(blend)
+              52:    6(float) Load 8(blendscale)
+              53:    6(float) FMul 51 52
+              54:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 45 48 53
+                              Store 44(gl_FragColor) 54
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out
index 3995baa..12edbf2 100755
--- a/Test/baseResults/spv.test.vert.out
+++ b/Test/baseResults/spv.test.vert.out
@@ -1,54 +1,54 @@
-spv.test.vert

-WARNING: 0:5: attribute deprecated in version 130; may be removed in future release

-

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 27

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 21 11 9 26

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "uv"

-                              Name 11  "uv_in"

-                              Name 15  "gl_Position"

-                              Name 18  "transform"

-                              Name 21  "position"

-                              Name 26  "gl_VertexID"

-                              Decorate 15(gl_Position) BuiltIn Position

-                              Decorate 26(gl_VertexID) BuiltIn VertexId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 2

-               8:             TypePointer Output 7(fvec2)

-           9(uv):      8(ptr) Variable Output

-              10:             TypePointer Input 7(fvec2)

-       11(uv_in):     10(ptr) Variable Input

-              13:             TypeVector 6(float) 4

-              14:             TypePointer Output 13(fvec4)

- 15(gl_Position):     14(ptr) Variable Output

-              16:             TypeMatrix 13(fvec4) 4

-              17:             TypePointer UniformConstant 16

-   18(transform):     17(ptr) Variable UniformConstant

-              20:             TypePointer Input 13(fvec4)

-    21(position):     20(ptr) Variable Input

-              24:             TypeInt 32 1

-              25:             TypePointer Input 24(int)

- 26(gl_VertexID):     25(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-              12:    7(fvec2) Load 11(uv_in)

-                              Store 9(uv) 12

-              19:          16 Load 18(transform)

-              22:   13(fvec4) Load 21(position)

-              23:   13(fvec4) MatrixTimesVector 19 22

-                              Store 15(gl_Position) 23

-                              Return

-                              FunctionEnd

+spv.test.vert
+WARNING: 0:5: attribute deprecated in version 130; may be removed in future release
+
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 27
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 21 11 9 26
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "uv"
+                              Name 11  "uv_in"
+                              Name 15  "gl_Position"
+                              Name 18  "transform"
+                              Name 21  "position"
+                              Name 26  "gl_VertexID"
+                              Decorate 15(gl_Position) BuiltIn Position
+                              Decorate 26(gl_VertexID) BuiltIn VertexId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 2
+               8:             TypePointer Output 7(fvec2)
+           9(uv):      8(ptr) Variable Output
+              10:             TypePointer Input 7(fvec2)
+       11(uv_in):     10(ptr) Variable Input
+              13:             TypeVector 6(float) 4
+              14:             TypePointer Output 13(fvec4)
+ 15(gl_Position):     14(ptr) Variable Output
+              16:             TypeMatrix 13(fvec4) 4
+              17:             TypePointer UniformConstant 16
+   18(transform):     17(ptr) Variable UniformConstant
+              20:             TypePointer Input 13(fvec4)
+    21(position):     20(ptr) Variable Input
+              24:             TypeInt 32 1
+              25:             TypePointer Input 24(int)
+ 26(gl_VertexID):     25(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+              12:    7(fvec2) Load 11(uv_in)
+                              Store 9(uv) 12
+              19:          16 Load 18(transform)
+              22:   13(fvec4) Load 21(position)
+              23:   13(fvec4) MatrixTimesVector 19 22
+                              Store 15(gl_Position) 23
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out
index b6efb4a..b9c29d3 100755
--- a/Test/baseResults/spv.texture.frag.out
+++ b/Test/baseResults/spv.texture.frag.out
@@ -1,376 +1,376 @@
-spv.texture.frag

-WARNING: 0:14: varying deprecated in version 130; may be removed in future release

-WARNING: 0:15: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 290

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 289 47

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "blendscale"

-                              Name 10  "bias"

-                              Name 12  "lod"

-                              Name 14  "proj"

-                              Name 15  "coords1D"

-                              Name 18  "coords3D"

-                              Name 24  "coords4D"

-                              Name 26  "color"

-                              Name 32  "texSampler1D"

-                              Name 47  "coords2D"

-                              Name 72  "texSampler2D"

-                              Name 98  "texSampler3D"

-                              Name 124  "texSamplerCube"

-                              Name 139  "shadowSampler1D"

-                              Name 158  "shadowSampler2D"

-                              Name 207  "iCoords2D"

-                              Name 212  "iLod"

-                              Name 221  "gradX"

-                              Name 224  "gradY"

-                              Name 276  "gl_FragColor"

-                              Name 279  "u"

-                              Name 282  "blend"

-                              Name 288  "scale"

-                              Name 289  "t"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Function 6(float)

-               9:    6(float) Constant 1071971828

-              11:    6(float) Constant 1073741824

-              13:    6(float) Constant 1077936128

-              16:             TypeVector 6(float) 3

-              17:             TypePointer Function 16(fvec3)

-              19:    6(float) Constant 1076753334

-              20:    6(float) Constant 1079836148

-              21:   16(fvec3) ConstantComposite 9 19 20

-              22:             TypeVector 6(float) 4

-              23:             TypePointer Function 22(fvec4)

-              25:   22(fvec4) ConstantComposite 9 19 20 11

-              27:    6(float) Constant 0

-              28:   22(fvec4) ConstantComposite 27 27 27 27

-              29:             TypeImage 6(float) 1D sampled format:Unknown

-              30:             TypeSampledImage 29

-              31:             TypePointer UniformConstant 30

-32(texSampler1D):     31(ptr) Variable UniformConstant

-              45:             TypeVector 6(float) 2

-              46:             TypePointer Input 45(fvec2)

-    47(coords2D):     46(ptr) Variable Input

-              69:             TypeImage 6(float) 2D sampled format:Unknown

-              70:             TypeSampledImage 69

-              71:             TypePointer UniformConstant 70

-72(texSampler2D):     71(ptr) Variable UniformConstant

-              95:             TypeImage 6(float) 3D sampled format:Unknown

-              96:             TypeSampledImage 95

-              97:             TypePointer UniformConstant 96

-98(texSampler3D):     97(ptr) Variable UniformConstant

-             121:             TypeImage 6(float) Cube sampled format:Unknown

-             122:             TypeSampledImage 121

-             123:             TypePointer UniformConstant 122

-124(texSamplerCube):    123(ptr) Variable UniformConstant

-             136:             TypeImage 6(float) 1D depth sampled format:Unknown

-             137:             TypeSampledImage 136

-             138:             TypePointer UniformConstant 137

-139(shadowSampler1D):    138(ptr) Variable UniformConstant

-             155:             TypeImage 6(float) 2D depth sampled format:Unknown

-             156:             TypeSampledImage 155

-             157:             TypePointer UniformConstant 156

-158(shadowSampler2D):    157(ptr) Variable UniformConstant

-             204:             TypeInt 32 1

-             205:             TypeVector 204(int) 2

-             206:             TypePointer Function 205(ivec2)

-             208:    204(int) Constant 0

-             209:    204(int) Constant 5

-             210:  205(ivec2) ConstantComposite 208 209

-             211:             TypePointer Function 204(int)

-             213:    204(int) Constant 1

-             220:             TypePointer Function 45(fvec2)

-             249:    204(int) Constant 3

-             250:    204(int) Constant 4294967289

-             251:  205(ivec2) ConstantComposite 249 250

-             275:             TypePointer Output 22(fvec4)

-276(gl_FragColor):    275(ptr) Variable Output

-             278:             TypePointer UniformConstant 22(fvec4)

-          279(u):    278(ptr) Variable UniformConstant

-             281:             TypePointer UniformConstant 6(float)

-      282(blend):    281(ptr) Variable UniformConstant

-             287:             TypePointer UniformConstant 45(fvec2)

-      288(scale):    287(ptr) Variable UniformConstant

-          289(t):     46(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-   8(blendscale):      7(ptr) Variable Function

-        10(bias):      7(ptr) Variable Function

-         12(lod):      7(ptr) Variable Function

-        14(proj):      7(ptr) Variable Function

-    15(coords1D):      7(ptr) Variable Function

-    18(coords3D):     17(ptr) Variable Function

-    24(coords4D):     23(ptr) Variable Function

-       26(color):     23(ptr) Variable Function

-  207(iCoords2D):    206(ptr) Variable Function

-       212(iLod):    211(ptr) Variable Function

-      221(gradX):    220(ptr) Variable Function

-      224(gradY):    220(ptr) Variable Function

-                              Store 8(blendscale) 9

-                              Store 10(bias) 11

-                              Store 12(lod) 13

-                              Store 14(proj) 11

-                              Store 15(coords1D) 9

-                              Store 18(coords3D) 21

-                              Store 24(coords4D) 25

-                              Store 26(color) 28

-              33:          30 Load 32(texSampler1D)

-              34:    6(float) Load 15(coords1D)

-              35:   22(fvec4) ImageSampleImplicitLod 33 34

-              36:   22(fvec4) Load 26(color)

-              37:   22(fvec4) FAdd 36 35

-                              Store 26(color) 37

-              38:          30 Load 32(texSampler1D)

-              39:    6(float) Load 15(coords1D)

-              40:    6(float) Load 10(bias)

-              41:   22(fvec4) ImageSampleImplicitLod 38 39 Bias 40

-              42:   22(fvec4) Load 26(color)

-              43:   22(fvec4) FAdd 42 41

-                              Store 26(color) 43

-              44:          30 Load 32(texSampler1D)

-              48:   45(fvec2) Load 47(coords2D)

-              49:   22(fvec4) ImageSampleProjImplicitLod 44 48

-              50:   22(fvec4) Load 26(color)

-              51:   22(fvec4) FAdd 50 49

-                              Store 26(color) 51

-              52:          30 Load 32(texSampler1D)

-              53:   22(fvec4) Load 24(coords4D)

-              54:   22(fvec4) ImageSampleProjImplicitLod 52 53

-              55:   22(fvec4) Load 26(color)

-              56:   22(fvec4) FAdd 55 54

-                              Store 26(color) 56

-              57:          30 Load 32(texSampler1D)

-              58:   45(fvec2) Load 47(coords2D)

-              59:    6(float) Load 10(bias)

-              60:   22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59

-              61:   22(fvec4) Load 26(color)

-              62:   22(fvec4) FAdd 61 60

-                              Store 26(color) 62

-              63:          30 Load 32(texSampler1D)

-              64:   22(fvec4) Load 24(coords4D)

-              65:    6(float) Load 10(bias)

-              66:   22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65

-              67:   22(fvec4) Load 26(color)

-              68:   22(fvec4) FAdd 67 66

-                              Store 26(color) 68

-              73:          70 Load 72(texSampler2D)

-              74:   45(fvec2) Load 47(coords2D)

-              75:   22(fvec4) ImageSampleImplicitLod 73 74

-              76:   22(fvec4) Load 26(color)

-              77:   22(fvec4) FAdd 76 75

-                              Store 26(color) 77

-              78:          70 Load 72(texSampler2D)

-              79:   45(fvec2) Load 47(coords2D)

-              80:    6(float) Load 10(bias)

-              81:   22(fvec4) ImageSampleImplicitLod 78 79 Bias 80

-              82:   22(fvec4) Load 26(color)

-              83:   22(fvec4) FAdd 82 81

-                              Store 26(color) 83

-              84:          70 Load 72(texSampler2D)

-              85:   16(fvec3) Load 18(coords3D)

-              86:   22(fvec4) ImageSampleProjImplicitLod 84 85

-              87:   22(fvec4) Load 26(color)

-              88:   22(fvec4) FAdd 87 86

-                              Store 26(color) 88

-              89:          70 Load 72(texSampler2D)

-              90:   22(fvec4) Load 24(coords4D)

-              91:    6(float) Load 10(bias)

-              92:   22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91

-              93:   22(fvec4) Load 26(color)

-              94:   22(fvec4) FAdd 93 92

-                              Store 26(color) 94

-              99:          96 Load 98(texSampler3D)

-             100:   16(fvec3) Load 18(coords3D)

-             101:   22(fvec4) ImageSampleImplicitLod 99 100

-             102:   22(fvec4) Load 26(color)

-             103:   22(fvec4) FAdd 102 101

-                              Store 26(color) 103

-             104:          96 Load 98(texSampler3D)

-             105:   16(fvec3) Load 18(coords3D)

-             106:    6(float) Load 10(bias)

-             107:   22(fvec4) ImageSampleImplicitLod 104 105 Bias 106

-             108:   22(fvec4) Load 26(color)

-             109:   22(fvec4) FAdd 108 107

-                              Store 26(color) 109

-             110:          96 Load 98(texSampler3D)

-             111:   22(fvec4) Load 24(coords4D)

-             112:   22(fvec4) ImageSampleProjImplicitLod 110 111

-             113:   22(fvec4) Load 26(color)

-             114:   22(fvec4) FAdd 113 112

-                              Store 26(color) 114

-             115:          96 Load 98(texSampler3D)

-             116:   22(fvec4) Load 24(coords4D)

-             117:    6(float) Load 10(bias)

-             118:   22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117

-             119:   22(fvec4) Load 26(color)

-             120:   22(fvec4) FAdd 119 118

-                              Store 26(color) 120

-             125:         122 Load 124(texSamplerCube)

-             126:   16(fvec3) Load 18(coords3D)

-             127:   22(fvec4) ImageSampleImplicitLod 125 126

-             128:   22(fvec4) Load 26(color)

-             129:   22(fvec4) FAdd 128 127

-                              Store 26(color) 129

-             130:         122 Load 124(texSamplerCube)

-             131:   16(fvec3) Load 18(coords3D)

-             132:    6(float) Load 10(bias)

-             133:   22(fvec4) ImageSampleImplicitLod 130 131 Bias 132

-             134:   22(fvec4) Load 26(color)

-             135:   22(fvec4) FAdd 134 133

-                              Store 26(color) 135

-             140:         137 Load 139(shadowSampler1D)

-             141:   16(fvec3) Load 18(coords3D)

-             142:    6(float) CompositeExtract 141 2

-             143:    6(float) ImageSampleDrefImplicitLod 140 141 142

-             144:   22(fvec4) Load 26(color)

-             145:   22(fvec4) CompositeConstruct 143 143 143 143

-             146:   22(fvec4) FAdd 144 145

-                              Store 26(color) 146

-             147:         137 Load 139(shadowSampler1D)

-             148:   16(fvec3) Load 18(coords3D)

-             149:    6(float) Load 10(bias)

-             150:    6(float) CompositeExtract 148 2

-             151:    6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149

-             152:   22(fvec4) Load 26(color)

-             153:   22(fvec4) CompositeConstruct 151 151 151 151

-             154:   22(fvec4) FAdd 152 153

-                              Store 26(color) 154

-             159:         156 Load 158(shadowSampler2D)

-             160:   16(fvec3) Load 18(coords3D)

-             161:    6(float) CompositeExtract 160 2

-             162:    6(float) ImageSampleDrefImplicitLod 159 160 161

-             163:   22(fvec4) Load 26(color)

-             164:   22(fvec4) CompositeConstruct 162 162 162 162

-             165:   22(fvec4) FAdd 163 164

-                              Store 26(color) 165

-             166:         156 Load 158(shadowSampler2D)

-             167:   16(fvec3) Load 18(coords3D)

-             168:    6(float) Load 10(bias)

-             169:    6(float) CompositeExtract 167 2

-             170:    6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168

-             171:   22(fvec4) Load 26(color)

-             172:   22(fvec4) CompositeConstruct 170 170 170 170

-             173:   22(fvec4) FAdd 171 172

-                              Store 26(color) 173

-             174:         137 Load 139(shadowSampler1D)

-             175:   22(fvec4) Load 24(coords4D)

-             176:    6(float) CompositeExtract 175 3

-             177:    6(float) ImageSampleProjDrefImplicitLod 174 175 176

-             178:   22(fvec4) Load 26(color)

-             179:   22(fvec4) CompositeConstruct 177 177 177 177

-             180:   22(fvec4) FAdd 178 179

-                              Store 26(color) 180

-             181:         137 Load 139(shadowSampler1D)

-             182:   22(fvec4) Load 24(coords4D)

-             183:    6(float) Load 10(bias)

-             184:    6(float) CompositeExtract 182 3

-             185:    6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183

-             186:   22(fvec4) Load 26(color)

-             187:   22(fvec4) CompositeConstruct 185 185 185 185

-             188:   22(fvec4) FAdd 186 187

-                              Store 26(color) 188

-             189:         156 Load 158(shadowSampler2D)

-             190:   22(fvec4) Load 24(coords4D)

-             191:    6(float) CompositeExtract 190 3

-             192:    6(float) ImageSampleProjDrefImplicitLod 189 190 191

-             193:   22(fvec4) Load 26(color)

-             194:   22(fvec4) CompositeConstruct 192 192 192 192

-             195:   22(fvec4) FAdd 193 194

-                              Store 26(color) 195

-             196:         156 Load 158(shadowSampler2D)

-             197:   22(fvec4) Load 24(coords4D)

-             198:    6(float) Load 10(bias)

-             199:    6(float) CompositeExtract 197 3

-             200:    6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198

-             201:   22(fvec4) Load 26(color)

-             202:   22(fvec4) CompositeConstruct 200 200 200 200

-             203:   22(fvec4) FAdd 201 202

-                              Store 26(color) 203

-                              Store 207(iCoords2D) 210

-                              Store 212(iLod) 213

-             214:          70 Load 72(texSampler2D)

-             215:  205(ivec2) Load 207(iCoords2D)

-             216:    204(int) Load 212(iLod)

-             217:   22(fvec4) ImageFetch 214 215 Lod 216

-             218:   22(fvec4) Load 26(color)

-             219:   22(fvec4) FAdd 218 217

-                              Store 26(color) 219

-             222:   45(fvec2) Load 47(coords2D)

-             223:   45(fvec2) DPdx 222

-                              Store 221(gradX) 223

-             225:   45(fvec2) Load 47(coords2D)

-             226:   45(fvec2) DPdy 225

-                              Store 224(gradY) 226

-             227:          70 Load 72(texSampler2D)

-             228:   45(fvec2) Load 47(coords2D)

-             229:   45(fvec2) Load 221(gradX)

-             230:   45(fvec2) Load 224(gradY)

-             231:   22(fvec4) ImageSampleExplicitLod 227 228 Grad 229 230

-             232:   22(fvec4) Load 26(color)

-             233:   22(fvec4) FAdd 232 231

-                              Store 26(color) 233

-             234:          70 Load 72(texSampler2D)

-             235:   45(fvec2) Load 47(coords2D)

-             236:    6(float) Load 14(proj)

-             237:    6(float) CompositeExtract 235 0

-             238:    6(float) CompositeExtract 235 1

-             239:   16(fvec3) CompositeConstruct 237 238 236

-             240:   45(fvec2) Load 221(gradX)

-             241:   45(fvec2) Load 224(gradY)

-             242:   22(fvec4) ImageSampleProjExplicitLod 234 239 Grad 240 241

-             243:   22(fvec4) Load 26(color)

-             244:   22(fvec4) FAdd 243 242

-                              Store 26(color) 244

-             245:          70 Load 72(texSampler2D)

-             246:   45(fvec2) Load 47(coords2D)

-             247:   45(fvec2) Load 221(gradX)

-             248:   45(fvec2) Load 224(gradY)

-             252:   22(fvec4) ImageSampleExplicitLod 245 246 Grad ConstOffset 247 248 251

-             253:   22(fvec4) Load 26(color)

-             254:   22(fvec4) FAdd 253 252

-                              Store 26(color) 254

-             255:          70 Load 72(texSampler2D)

-             256:   16(fvec3) Load 18(coords3D)

-             257:   45(fvec2) Load 221(gradX)

-             258:   45(fvec2) Load 224(gradY)

-             259:   22(fvec4) ImageSampleProjExplicitLod 255 256 Grad ConstOffset 257 258 251

-             260:   22(fvec4) Load 26(color)

-             261:   22(fvec4) FAdd 260 259

-                              Store 26(color) 261

-             262:         156 Load 158(shadowSampler2D)

-             263:   45(fvec2) Load 47(coords2D)

-             264:    6(float) Load 12(lod)

-             265:    6(float) CompositeExtract 263 0

-             266:    6(float) CompositeExtract 263 1

-             267:   16(fvec3) CompositeConstruct 265 266 264

-             268:   45(fvec2) Load 221(gradX)

-             269:   45(fvec2) Load 224(gradY)

-             270:    6(float) CompositeExtract 267 2

-             271:    6(float) ImageSampleDrefExplicitLod 262 267 270 Grad 268 269

-             272:   22(fvec4) Load 26(color)

-             273:   22(fvec4) CompositeConstruct 271 271 271 271

-             274:   22(fvec4) FAdd 272 273

-                              Store 26(color) 274

-             277:   22(fvec4) Load 26(color)

-             280:   22(fvec4) Load 279(u)

-             283:    6(float) Load 282(blend)

-             284:    6(float) Load 8(blendscale)

-             285:    6(float) FMul 283 284

-             286:   22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 285

-                              Store 276(gl_FragColor) 286

-                              Return

-                              FunctionEnd

+spv.texture.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+WARNING: 0:15: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 290
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 289 47
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "blendscale"
+                              Name 10  "bias"
+                              Name 12  "lod"
+                              Name 14  "proj"
+                              Name 15  "coords1D"
+                              Name 18  "coords3D"
+                              Name 24  "coords4D"
+                              Name 26  "color"
+                              Name 32  "texSampler1D"
+                              Name 47  "coords2D"
+                              Name 72  "texSampler2D"
+                              Name 98  "texSampler3D"
+                              Name 124  "texSamplerCube"
+                              Name 139  "shadowSampler1D"
+                              Name 158  "shadowSampler2D"
+                              Name 207  "iCoords2D"
+                              Name 212  "iLod"
+                              Name 221  "gradX"
+                              Name 224  "gradY"
+                              Name 276  "gl_FragColor"
+                              Name 279  "u"
+                              Name 282  "blend"
+                              Name 288  "scale"
+                              Name 289  "t"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:    6(float) Constant 1071971828
+              11:    6(float) Constant 1073741824
+              13:    6(float) Constant 1077936128
+              16:             TypeVector 6(float) 3
+              17:             TypePointer Function 16(fvec3)
+              19:    6(float) Constant 1076753334
+              20:    6(float) Constant 1079836148
+              21:   16(fvec3) ConstantComposite 9 19 20
+              22:             TypeVector 6(float) 4
+              23:             TypePointer Function 22(fvec4)
+              25:   22(fvec4) ConstantComposite 9 19 20 11
+              27:    6(float) Constant 0
+              28:   22(fvec4) ConstantComposite 27 27 27 27
+              29:             TypeImage 6(float) 1D sampled format:Unknown
+              30:             TypeSampledImage 29
+              31:             TypePointer UniformConstant 30
+32(texSampler1D):     31(ptr) Variable UniformConstant
+              45:             TypeVector 6(float) 2
+              46:             TypePointer Input 45(fvec2)
+    47(coords2D):     46(ptr) Variable Input
+              69:             TypeImage 6(float) 2D sampled format:Unknown
+              70:             TypeSampledImage 69
+              71:             TypePointer UniformConstant 70
+72(texSampler2D):     71(ptr) Variable UniformConstant
+              95:             TypeImage 6(float) 3D sampled format:Unknown
+              96:             TypeSampledImage 95
+              97:             TypePointer UniformConstant 96
+98(texSampler3D):     97(ptr) Variable UniformConstant
+             121:             TypeImage 6(float) Cube sampled format:Unknown
+             122:             TypeSampledImage 121
+             123:             TypePointer UniformConstant 122
+124(texSamplerCube):    123(ptr) Variable UniformConstant
+             136:             TypeImage 6(float) 1D depth sampled format:Unknown
+             137:             TypeSampledImage 136
+             138:             TypePointer UniformConstant 137
+139(shadowSampler1D):    138(ptr) Variable UniformConstant
+             155:             TypeImage 6(float) 2D depth sampled format:Unknown
+             156:             TypeSampledImage 155
+             157:             TypePointer UniformConstant 156
+158(shadowSampler2D):    157(ptr) Variable UniformConstant
+             204:             TypeInt 32 1
+             205:             TypeVector 204(int) 2
+             206:             TypePointer Function 205(ivec2)
+             208:    204(int) Constant 0
+             209:    204(int) Constant 5
+             210:  205(ivec2) ConstantComposite 208 209
+             211:             TypePointer Function 204(int)
+             213:    204(int) Constant 1
+             220:             TypePointer Function 45(fvec2)
+             249:    204(int) Constant 3
+             250:    204(int) Constant 4294967289
+             251:  205(ivec2) ConstantComposite 249 250
+             275:             TypePointer Output 22(fvec4)
+276(gl_FragColor):    275(ptr) Variable Output
+             278:             TypePointer UniformConstant 22(fvec4)
+          279(u):    278(ptr) Variable UniformConstant
+             281:             TypePointer UniformConstant 6(float)
+      282(blend):    281(ptr) Variable UniformConstant
+             287:             TypePointer UniformConstant 45(fvec2)
+      288(scale):    287(ptr) Variable UniformConstant
+          289(t):     46(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+   8(blendscale):      7(ptr) Variable Function
+        10(bias):      7(ptr) Variable Function
+         12(lod):      7(ptr) Variable Function
+        14(proj):      7(ptr) Variable Function
+    15(coords1D):      7(ptr) Variable Function
+    18(coords3D):     17(ptr) Variable Function
+    24(coords4D):     23(ptr) Variable Function
+       26(color):     23(ptr) Variable Function
+  207(iCoords2D):    206(ptr) Variable Function
+       212(iLod):    211(ptr) Variable Function
+      221(gradX):    220(ptr) Variable Function
+      224(gradY):    220(ptr) Variable Function
+                              Store 8(blendscale) 9
+                              Store 10(bias) 11
+                              Store 12(lod) 13
+                              Store 14(proj) 11
+                              Store 15(coords1D) 9
+                              Store 18(coords3D) 21
+                              Store 24(coords4D) 25
+                              Store 26(color) 28
+              33:          30 Load 32(texSampler1D)
+              34:    6(float) Load 15(coords1D)
+              35:   22(fvec4) ImageSampleImplicitLod 33 34
+              36:   22(fvec4) Load 26(color)
+              37:   22(fvec4) FAdd 36 35
+                              Store 26(color) 37
+              38:          30 Load 32(texSampler1D)
+              39:    6(float) Load 15(coords1D)
+              40:    6(float) Load 10(bias)
+              41:   22(fvec4) ImageSampleImplicitLod 38 39 Bias 40
+              42:   22(fvec4) Load 26(color)
+              43:   22(fvec4) FAdd 42 41
+                              Store 26(color) 43
+              44:          30 Load 32(texSampler1D)
+              48:   45(fvec2) Load 47(coords2D)
+              49:   22(fvec4) ImageSampleProjImplicitLod 44 48
+              50:   22(fvec4) Load 26(color)
+              51:   22(fvec4) FAdd 50 49
+                              Store 26(color) 51
+              52:          30 Load 32(texSampler1D)
+              53:   22(fvec4) Load 24(coords4D)
+              54:   22(fvec4) ImageSampleProjImplicitLod 52 53
+              55:   22(fvec4) Load 26(color)
+              56:   22(fvec4) FAdd 55 54
+                              Store 26(color) 56
+              57:          30 Load 32(texSampler1D)
+              58:   45(fvec2) Load 47(coords2D)
+              59:    6(float) Load 10(bias)
+              60:   22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59
+              61:   22(fvec4) Load 26(color)
+              62:   22(fvec4) FAdd 61 60
+                              Store 26(color) 62
+              63:          30 Load 32(texSampler1D)
+              64:   22(fvec4) Load 24(coords4D)
+              65:    6(float) Load 10(bias)
+              66:   22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65
+              67:   22(fvec4) Load 26(color)
+              68:   22(fvec4) FAdd 67 66
+                              Store 26(color) 68
+              73:          70 Load 72(texSampler2D)
+              74:   45(fvec2) Load 47(coords2D)
+              75:   22(fvec4) ImageSampleImplicitLod 73 74
+              76:   22(fvec4) Load 26(color)
+              77:   22(fvec4) FAdd 76 75
+                              Store 26(color) 77
+              78:          70 Load 72(texSampler2D)
+              79:   45(fvec2) Load 47(coords2D)
+              80:    6(float) Load 10(bias)
+              81:   22(fvec4) ImageSampleImplicitLod 78 79 Bias 80
+              82:   22(fvec4) Load 26(color)
+              83:   22(fvec4) FAdd 82 81
+                              Store 26(color) 83
+              84:          70 Load 72(texSampler2D)
+              85:   16(fvec3) Load 18(coords3D)
+              86:   22(fvec4) ImageSampleProjImplicitLod 84 85
+              87:   22(fvec4) Load 26(color)
+              88:   22(fvec4) FAdd 87 86
+                              Store 26(color) 88
+              89:          70 Load 72(texSampler2D)
+              90:   22(fvec4) Load 24(coords4D)
+              91:    6(float) Load 10(bias)
+              92:   22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91
+              93:   22(fvec4) Load 26(color)
+              94:   22(fvec4) FAdd 93 92
+                              Store 26(color) 94
+              99:          96 Load 98(texSampler3D)
+             100:   16(fvec3) Load 18(coords3D)
+             101:   22(fvec4) ImageSampleImplicitLod 99 100
+             102:   22(fvec4) Load 26(color)
+             103:   22(fvec4) FAdd 102 101
+                              Store 26(color) 103
+             104:          96 Load 98(texSampler3D)
+             105:   16(fvec3) Load 18(coords3D)
+             106:    6(float) Load 10(bias)
+             107:   22(fvec4) ImageSampleImplicitLod 104 105 Bias 106
+             108:   22(fvec4) Load 26(color)
+             109:   22(fvec4) FAdd 108 107
+                              Store 26(color) 109
+             110:          96 Load 98(texSampler3D)
+             111:   22(fvec4) Load 24(coords4D)
+             112:   22(fvec4) ImageSampleProjImplicitLod 110 111
+             113:   22(fvec4) Load 26(color)
+             114:   22(fvec4) FAdd 113 112
+                              Store 26(color) 114
+             115:          96 Load 98(texSampler3D)
+             116:   22(fvec4) Load 24(coords4D)
+             117:    6(float) Load 10(bias)
+             118:   22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117
+             119:   22(fvec4) Load 26(color)
+             120:   22(fvec4) FAdd 119 118
+                              Store 26(color) 120
+             125:         122 Load 124(texSamplerCube)
+             126:   16(fvec3) Load 18(coords3D)
+             127:   22(fvec4) ImageSampleImplicitLod 125 126
+             128:   22(fvec4) Load 26(color)
+             129:   22(fvec4) FAdd 128 127
+                              Store 26(color) 129
+             130:         122 Load 124(texSamplerCube)
+             131:   16(fvec3) Load 18(coords3D)
+             132:    6(float) Load 10(bias)
+             133:   22(fvec4) ImageSampleImplicitLod 130 131 Bias 132
+             134:   22(fvec4) Load 26(color)
+             135:   22(fvec4) FAdd 134 133
+                              Store 26(color) 135
+             140:         137 Load 139(shadowSampler1D)
+             141:   16(fvec3) Load 18(coords3D)
+             142:    6(float) CompositeExtract 141 2
+             143:    6(float) ImageSampleDrefImplicitLod 140 141 142
+             144:   22(fvec4) Load 26(color)
+             145:   22(fvec4) CompositeConstruct 143 143 143 143
+             146:   22(fvec4) FAdd 144 145
+                              Store 26(color) 146
+             147:         137 Load 139(shadowSampler1D)
+             148:   16(fvec3) Load 18(coords3D)
+             149:    6(float) Load 10(bias)
+             150:    6(float) CompositeExtract 148 2
+             151:    6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149
+             152:   22(fvec4) Load 26(color)
+             153:   22(fvec4) CompositeConstruct 151 151 151 151
+             154:   22(fvec4) FAdd 152 153
+                              Store 26(color) 154
+             159:         156 Load 158(shadowSampler2D)
+             160:   16(fvec3) Load 18(coords3D)
+             161:    6(float) CompositeExtract 160 2
+             162:    6(float) ImageSampleDrefImplicitLod 159 160 161
+             163:   22(fvec4) Load 26(color)
+             164:   22(fvec4) CompositeConstruct 162 162 162 162
+             165:   22(fvec4) FAdd 163 164
+                              Store 26(color) 165
+             166:         156 Load 158(shadowSampler2D)
+             167:   16(fvec3) Load 18(coords3D)
+             168:    6(float) Load 10(bias)
+             169:    6(float) CompositeExtract 167 2
+             170:    6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168
+             171:   22(fvec4) Load 26(color)
+             172:   22(fvec4) CompositeConstruct 170 170 170 170
+             173:   22(fvec4) FAdd 171 172
+                              Store 26(color) 173
+             174:         137 Load 139(shadowSampler1D)
+             175:   22(fvec4) Load 24(coords4D)
+             176:    6(float) CompositeExtract 175 3
+             177:    6(float) ImageSampleProjDrefImplicitLod 174 175 176
+             178:   22(fvec4) Load 26(color)
+             179:   22(fvec4) CompositeConstruct 177 177 177 177
+             180:   22(fvec4) FAdd 178 179
+                              Store 26(color) 180
+             181:         137 Load 139(shadowSampler1D)
+             182:   22(fvec4) Load 24(coords4D)
+             183:    6(float) Load 10(bias)
+             184:    6(float) CompositeExtract 182 3
+             185:    6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183
+             186:   22(fvec4) Load 26(color)
+             187:   22(fvec4) CompositeConstruct 185 185 185 185
+             188:   22(fvec4) FAdd 186 187
+                              Store 26(color) 188
+             189:         156 Load 158(shadowSampler2D)
+             190:   22(fvec4) Load 24(coords4D)
+             191:    6(float) CompositeExtract 190 3
+             192:    6(float) ImageSampleProjDrefImplicitLod 189 190 191
+             193:   22(fvec4) Load 26(color)
+             194:   22(fvec4) CompositeConstruct 192 192 192 192
+             195:   22(fvec4) FAdd 193 194
+                              Store 26(color) 195
+             196:         156 Load 158(shadowSampler2D)
+             197:   22(fvec4) Load 24(coords4D)
+             198:    6(float) Load 10(bias)
+             199:    6(float) CompositeExtract 197 3
+             200:    6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198
+             201:   22(fvec4) Load 26(color)
+             202:   22(fvec4) CompositeConstruct 200 200 200 200
+             203:   22(fvec4) FAdd 201 202
+                              Store 26(color) 203
+                              Store 207(iCoords2D) 210
+                              Store 212(iLod) 213
+             214:          70 Load 72(texSampler2D)
+             215:  205(ivec2) Load 207(iCoords2D)
+             216:    204(int) Load 212(iLod)
+             217:   22(fvec4) ImageFetch 214 215 Lod 216
+             218:   22(fvec4) Load 26(color)
+             219:   22(fvec4) FAdd 218 217
+                              Store 26(color) 219
+             222:   45(fvec2) Load 47(coords2D)
+             223:   45(fvec2) DPdx 222
+                              Store 221(gradX) 223
+             225:   45(fvec2) Load 47(coords2D)
+             226:   45(fvec2) DPdy 225
+                              Store 224(gradY) 226
+             227:          70 Load 72(texSampler2D)
+             228:   45(fvec2) Load 47(coords2D)
+             229:   45(fvec2) Load 221(gradX)
+             230:   45(fvec2) Load 224(gradY)
+             231:   22(fvec4) ImageSampleExplicitLod 227 228 Grad 229 230
+             232:   22(fvec4) Load 26(color)
+             233:   22(fvec4) FAdd 232 231
+                              Store 26(color) 233
+             234:          70 Load 72(texSampler2D)
+             235:   45(fvec2) Load 47(coords2D)
+             236:    6(float) Load 14(proj)
+             237:    6(float) CompositeExtract 235 0
+             238:    6(float) CompositeExtract 235 1
+             239:   16(fvec3) CompositeConstruct 237 238 236
+             240:   45(fvec2) Load 221(gradX)
+             241:   45(fvec2) Load 224(gradY)
+             242:   22(fvec4) ImageSampleProjExplicitLod 234 239 Grad 240 241
+             243:   22(fvec4) Load 26(color)
+             244:   22(fvec4) FAdd 243 242
+                              Store 26(color) 244
+             245:          70 Load 72(texSampler2D)
+             246:   45(fvec2) Load 47(coords2D)
+             247:   45(fvec2) Load 221(gradX)
+             248:   45(fvec2) Load 224(gradY)
+             252:   22(fvec4) ImageSampleExplicitLod 245 246 Grad ConstOffset 247 248 251
+             253:   22(fvec4) Load 26(color)
+             254:   22(fvec4) FAdd 253 252
+                              Store 26(color) 254
+             255:          70 Load 72(texSampler2D)
+             256:   16(fvec3) Load 18(coords3D)
+             257:   45(fvec2) Load 221(gradX)
+             258:   45(fvec2) Load 224(gradY)
+             259:   22(fvec4) ImageSampleProjExplicitLod 255 256 Grad ConstOffset 257 258 251
+             260:   22(fvec4) Load 26(color)
+             261:   22(fvec4) FAdd 260 259
+                              Store 26(color) 261
+             262:         156 Load 158(shadowSampler2D)
+             263:   45(fvec2) Load 47(coords2D)
+             264:    6(float) Load 12(lod)
+             265:    6(float) CompositeExtract 263 0
+             266:    6(float) CompositeExtract 263 1
+             267:   16(fvec3) CompositeConstruct 265 266 264
+             268:   45(fvec2) Load 221(gradX)
+             269:   45(fvec2) Load 224(gradY)
+             270:    6(float) CompositeExtract 267 2
+             271:    6(float) ImageSampleDrefExplicitLod 262 267 270 Grad 268 269
+             272:   22(fvec4) Load 26(color)
+             273:   22(fvec4) CompositeConstruct 271 271 271 271
+             274:   22(fvec4) FAdd 272 273
+                              Store 26(color) 274
+             277:   22(fvec4) Load 26(color)
+             280:   22(fvec4) Load 279(u)
+             283:    6(float) Load 282(blend)
+             284:    6(float) Load 8(blendscale)
+             285:    6(float) FMul 283 284
+             286:   22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 285
+                              Store 276(gl_FragColor) 286
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out
index 807b03d..95090b8 100755
--- a/Test/baseResults/spv.texture.vert.out
+++ b/Test/baseResults/spv.texture.vert.out
@@ -1,195 +1,195 @@
-spv.texture.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 145

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 39 144

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "lod"

-                              Name 10  "coords1D"

-                              Name 14  "coords3D"

-                              Name 20  "coords4D"

-                              Name 23  "color"

-                              Name 29  "texSampler1D"

-                              Name 39  "coords2D"

-                              Name 54  "texSampler2D"

-                              Name 76  "texSampler3D"

-                              Name 92  "texSamplerCube"

-                              Name 102  "shadowSampler1D"

-                              Name 114  "shadowSampler2D"

-                              Name 140  "gl_Position"

-                              Name 144  "gl_VertexID"

-                              Decorate 140(gl_Position) BuiltIn Position

-                              Decorate 144(gl_VertexID) BuiltIn VertexId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypePointer Function 6(float)

-               9:    6(float) Constant 1077936128

-              11:    6(float) Constant 1071971828

-              12:             TypeVector 6(float) 3

-              13:             TypePointer Function 12(fvec3)

-              15:    6(float) Constant 1076753334

-              16:    6(float) Constant 1079836148

-              17:   12(fvec3) ConstantComposite 11 15 16

-              18:             TypeVector 6(float) 4

-              19:             TypePointer Function 18(fvec4)

-              21:    6(float) Constant 1073741824

-              22:   18(fvec4) ConstantComposite 11 15 16 21

-              24:    6(float) Constant 0

-              25:   18(fvec4) ConstantComposite 24 24 24 24

-              26:             TypeImage 6(float) 1D sampled format:Unknown

-              27:             TypeSampledImage 26

-              28:             TypePointer UniformConstant 27

-29(texSampler1D):     28(ptr) Variable UniformConstant

-              37:             TypeVector 6(float) 2

-              38:             TypePointer Input 37(fvec2)

-    39(coords2D):     38(ptr) Variable Input

-              51:             TypeImage 6(float) 2D sampled format:Unknown

-              52:             TypeSampledImage 51

-              53:             TypePointer UniformConstant 52

-54(texSampler2D):     53(ptr) Variable UniformConstant

-              73:             TypeImage 6(float) 3D sampled format:Unknown

-              74:             TypeSampledImage 73

-              75:             TypePointer UniformConstant 74

-76(texSampler3D):     75(ptr) Variable UniformConstant

-              89:             TypeImage 6(float) Cube sampled format:Unknown

-              90:             TypeSampledImage 89

-              91:             TypePointer UniformConstant 90

-92(texSamplerCube):     91(ptr) Variable UniformConstant

-              99:             TypeImage 6(float) 1D depth sampled format:Unknown

-             100:             TypeSampledImage 99

-             101:             TypePointer UniformConstant 100

-102(shadowSampler1D):    101(ptr) Variable UniformConstant

-             111:             TypeImage 6(float) 2D depth sampled format:Unknown

-             112:             TypeSampledImage 111

-             113:             TypePointer UniformConstant 112

-114(shadowSampler2D):    113(ptr) Variable UniformConstant

-             139:             TypePointer Output 18(fvec4)

-140(gl_Position):    139(ptr) Variable Output

-             142:             TypeInt 32 1

-             143:             TypePointer Input 142(int)

-144(gl_VertexID):    143(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-          8(lod):      7(ptr) Variable Function

-    10(coords1D):      7(ptr) Variable Function

-    14(coords3D):     13(ptr) Variable Function

-    20(coords4D):     19(ptr) Variable Function

-       23(color):     19(ptr) Variable Function

-                              Store 8(lod) 9

-                              Store 10(coords1D) 11

-                              Store 14(coords3D) 17

-                              Store 20(coords4D) 22

-                              Store 23(color) 25

-              30:          27 Load 29(texSampler1D)

-              31:    6(float) Load 10(coords1D)

-              32:    6(float) Load 8(lod)

-              33:   18(fvec4) ImageSampleExplicitLod 30 31 Lod 32

-              34:   18(fvec4) Load 23(color)

-              35:   18(fvec4) FAdd 34 33

-                              Store 23(color) 35

-              36:          27 Load 29(texSampler1D)

-              40:   37(fvec2) Load 39(coords2D)

-              41:    6(float) Load 8(lod)

-              42:   18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41

-              43:   18(fvec4) Load 23(color)

-              44:   18(fvec4) FAdd 43 42

-                              Store 23(color) 44

-              45:          27 Load 29(texSampler1D)

-              46:   18(fvec4) Load 20(coords4D)

-              47:    6(float) Load 8(lod)

-              48:   18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47

-              49:   18(fvec4) Load 23(color)

-              50:   18(fvec4) FAdd 49 48

-                              Store 23(color) 50

-              55:          52 Load 54(texSampler2D)

-              56:   37(fvec2) Load 39(coords2D)

-              57:    6(float) Load 8(lod)

-              58:   18(fvec4) ImageSampleExplicitLod 55 56 Lod 57

-              59:   18(fvec4) Load 23(color)

-              60:   18(fvec4) FAdd 59 58

-                              Store 23(color) 60

-              61:          52 Load 54(texSampler2D)

-              62:   12(fvec3) Load 14(coords3D)

-              63:    6(float) Load 8(lod)

-              64:   18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63

-              65:   18(fvec4) Load 23(color)

-              66:   18(fvec4) FAdd 65 64

-                              Store 23(color) 66

-              67:          52 Load 54(texSampler2D)

-              68:   18(fvec4) Load 20(coords4D)

-              69:    6(float) Load 8(lod)

-              70:   18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69

-              71:   18(fvec4) Load 23(color)

-              72:   18(fvec4) FAdd 71 70

-                              Store 23(color) 72

-              77:          74 Load 76(texSampler3D)

-              78:   12(fvec3) Load 14(coords3D)

-              79:    6(float) Load 8(lod)

-              80:   18(fvec4) ImageSampleExplicitLod 77 78 Lod 79

-              81:   18(fvec4) Load 23(color)

-              82:   18(fvec4) FAdd 81 80

-                              Store 23(color) 82

-              83:          74 Load 76(texSampler3D)

-              84:   18(fvec4) Load 20(coords4D)

-              85:    6(float) Load 8(lod)

-              86:   18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85

-              87:   18(fvec4) Load 23(color)

-              88:   18(fvec4) FAdd 87 86

-                              Store 23(color) 88

-              93:          90 Load 92(texSamplerCube)

-              94:   12(fvec3) Load 14(coords3D)

-              95:    6(float) Load 8(lod)

-              96:   18(fvec4) ImageSampleExplicitLod 93 94 Lod 95

-              97:   18(fvec4) Load 23(color)

-              98:   18(fvec4) FAdd 97 96

-                              Store 23(color) 98

-             103:         100 Load 102(shadowSampler1D)

-             104:   12(fvec3) Load 14(coords3D)

-             105:    6(float) Load 8(lod)

-             106:    6(float) CompositeExtract 104 2

-             107:    6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105

-             108:   18(fvec4) Load 23(color)

-             109:   18(fvec4) CompositeConstruct 107 107 107 107

-             110:   18(fvec4) FAdd 108 109

-                              Store 23(color) 110

-             115:         112 Load 114(shadowSampler2D)

-             116:   12(fvec3) Load 14(coords3D)

-             117:    6(float) Load 8(lod)

-             118:    6(float) CompositeExtract 116 2

-             119:    6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117

-             120:   18(fvec4) Load 23(color)

-             121:   18(fvec4) CompositeConstruct 119 119 119 119

-             122:   18(fvec4) FAdd 120 121

-                              Store 23(color) 122

-             123:         100 Load 102(shadowSampler1D)

-             124:   18(fvec4) Load 20(coords4D)

-             125:    6(float) Load 8(lod)

-             126:    6(float) CompositeExtract 124 3

-             127:    6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125

-             128:   18(fvec4) Load 23(color)

-             129:   18(fvec4) CompositeConstruct 127 127 127 127

-             130:   18(fvec4) FAdd 128 129

-                              Store 23(color) 130

-             131:         112 Load 114(shadowSampler2D)

-             132:   18(fvec4) Load 20(coords4D)

-             133:    6(float) Load 8(lod)

-             134:    6(float) CompositeExtract 132 3

-             135:    6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133

-             136:   18(fvec4) Load 23(color)

-             137:   18(fvec4) CompositeConstruct 135 135 135 135

-             138:   18(fvec4) FAdd 136 137

-                              Store 23(color) 138

-             141:   18(fvec4) Load 23(color)

-                              Store 140(gl_Position) 141

-                              Return

-                              FunctionEnd

+spv.texture.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 145
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 39 144
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "lod"
+                              Name 10  "coords1D"
+                              Name 14  "coords3D"
+                              Name 20  "coords4D"
+                              Name 23  "color"
+                              Name 29  "texSampler1D"
+                              Name 39  "coords2D"
+                              Name 54  "texSampler2D"
+                              Name 76  "texSampler3D"
+                              Name 92  "texSamplerCube"
+                              Name 102  "shadowSampler1D"
+                              Name 114  "shadowSampler2D"
+                              Name 140  "gl_Position"
+                              Name 144  "gl_VertexID"
+                              Decorate 140(gl_Position) BuiltIn Position
+                              Decorate 144(gl_VertexID) BuiltIn VertexId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:    6(float) Constant 1077936128
+              11:    6(float) Constant 1071971828
+              12:             TypeVector 6(float) 3
+              13:             TypePointer Function 12(fvec3)
+              15:    6(float) Constant 1076753334
+              16:    6(float) Constant 1079836148
+              17:   12(fvec3) ConstantComposite 11 15 16
+              18:             TypeVector 6(float) 4
+              19:             TypePointer Function 18(fvec4)
+              21:    6(float) Constant 1073741824
+              22:   18(fvec4) ConstantComposite 11 15 16 21
+              24:    6(float) Constant 0
+              25:   18(fvec4) ConstantComposite 24 24 24 24
+              26:             TypeImage 6(float) 1D sampled format:Unknown
+              27:             TypeSampledImage 26
+              28:             TypePointer UniformConstant 27
+29(texSampler1D):     28(ptr) Variable UniformConstant
+              37:             TypeVector 6(float) 2
+              38:             TypePointer Input 37(fvec2)
+    39(coords2D):     38(ptr) Variable Input
+              51:             TypeImage 6(float) 2D sampled format:Unknown
+              52:             TypeSampledImage 51
+              53:             TypePointer UniformConstant 52
+54(texSampler2D):     53(ptr) Variable UniformConstant
+              73:             TypeImage 6(float) 3D sampled format:Unknown
+              74:             TypeSampledImage 73
+              75:             TypePointer UniformConstant 74
+76(texSampler3D):     75(ptr) Variable UniformConstant
+              89:             TypeImage 6(float) Cube sampled format:Unknown
+              90:             TypeSampledImage 89
+              91:             TypePointer UniformConstant 90
+92(texSamplerCube):     91(ptr) Variable UniformConstant
+              99:             TypeImage 6(float) 1D depth sampled format:Unknown
+             100:             TypeSampledImage 99
+             101:             TypePointer UniformConstant 100
+102(shadowSampler1D):    101(ptr) Variable UniformConstant
+             111:             TypeImage 6(float) 2D depth sampled format:Unknown
+             112:             TypeSampledImage 111
+             113:             TypePointer UniformConstant 112
+114(shadowSampler2D):    113(ptr) Variable UniformConstant
+             139:             TypePointer Output 18(fvec4)
+140(gl_Position):    139(ptr) Variable Output
+             142:             TypeInt 32 1
+             143:             TypePointer Input 142(int)
+144(gl_VertexID):    143(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+          8(lod):      7(ptr) Variable Function
+    10(coords1D):      7(ptr) Variable Function
+    14(coords3D):     13(ptr) Variable Function
+    20(coords4D):     19(ptr) Variable Function
+       23(color):     19(ptr) Variable Function
+                              Store 8(lod) 9
+                              Store 10(coords1D) 11
+                              Store 14(coords3D) 17
+                              Store 20(coords4D) 22
+                              Store 23(color) 25
+              30:          27 Load 29(texSampler1D)
+              31:    6(float) Load 10(coords1D)
+              32:    6(float) Load 8(lod)
+              33:   18(fvec4) ImageSampleExplicitLod 30 31 Lod 32
+              34:   18(fvec4) Load 23(color)
+              35:   18(fvec4) FAdd 34 33
+                              Store 23(color) 35
+              36:          27 Load 29(texSampler1D)
+              40:   37(fvec2) Load 39(coords2D)
+              41:    6(float) Load 8(lod)
+              42:   18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41
+              43:   18(fvec4) Load 23(color)
+              44:   18(fvec4) FAdd 43 42
+                              Store 23(color) 44
+              45:          27 Load 29(texSampler1D)
+              46:   18(fvec4) Load 20(coords4D)
+              47:    6(float) Load 8(lod)
+              48:   18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47
+              49:   18(fvec4) Load 23(color)
+              50:   18(fvec4) FAdd 49 48
+                              Store 23(color) 50
+              55:          52 Load 54(texSampler2D)
+              56:   37(fvec2) Load 39(coords2D)
+              57:    6(float) Load 8(lod)
+              58:   18(fvec4) ImageSampleExplicitLod 55 56 Lod 57
+              59:   18(fvec4) Load 23(color)
+              60:   18(fvec4) FAdd 59 58
+                              Store 23(color) 60
+              61:          52 Load 54(texSampler2D)
+              62:   12(fvec3) Load 14(coords3D)
+              63:    6(float) Load 8(lod)
+              64:   18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63
+              65:   18(fvec4) Load 23(color)
+              66:   18(fvec4) FAdd 65 64
+                              Store 23(color) 66
+              67:          52 Load 54(texSampler2D)
+              68:   18(fvec4) Load 20(coords4D)
+              69:    6(float) Load 8(lod)
+              70:   18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69
+              71:   18(fvec4) Load 23(color)
+              72:   18(fvec4) FAdd 71 70
+                              Store 23(color) 72
+              77:          74 Load 76(texSampler3D)
+              78:   12(fvec3) Load 14(coords3D)
+              79:    6(float) Load 8(lod)
+              80:   18(fvec4) ImageSampleExplicitLod 77 78 Lod 79
+              81:   18(fvec4) Load 23(color)
+              82:   18(fvec4) FAdd 81 80
+                              Store 23(color) 82
+              83:          74 Load 76(texSampler3D)
+              84:   18(fvec4) Load 20(coords4D)
+              85:    6(float) Load 8(lod)
+              86:   18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85
+              87:   18(fvec4) Load 23(color)
+              88:   18(fvec4) FAdd 87 86
+                              Store 23(color) 88
+              93:          90 Load 92(texSamplerCube)
+              94:   12(fvec3) Load 14(coords3D)
+              95:    6(float) Load 8(lod)
+              96:   18(fvec4) ImageSampleExplicitLod 93 94 Lod 95
+              97:   18(fvec4) Load 23(color)
+              98:   18(fvec4) FAdd 97 96
+                              Store 23(color) 98
+             103:         100 Load 102(shadowSampler1D)
+             104:   12(fvec3) Load 14(coords3D)
+             105:    6(float) Load 8(lod)
+             106:    6(float) CompositeExtract 104 2
+             107:    6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105
+             108:   18(fvec4) Load 23(color)
+             109:   18(fvec4) CompositeConstruct 107 107 107 107
+             110:   18(fvec4) FAdd 108 109
+                              Store 23(color) 110
+             115:         112 Load 114(shadowSampler2D)
+             116:   12(fvec3) Load 14(coords3D)
+             117:    6(float) Load 8(lod)
+             118:    6(float) CompositeExtract 116 2
+             119:    6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117
+             120:   18(fvec4) Load 23(color)
+             121:   18(fvec4) CompositeConstruct 119 119 119 119
+             122:   18(fvec4) FAdd 120 121
+                              Store 23(color) 122
+             123:         100 Load 102(shadowSampler1D)
+             124:   18(fvec4) Load 20(coords4D)
+             125:    6(float) Load 8(lod)
+             126:    6(float) CompositeExtract 124 3
+             127:    6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125
+             128:   18(fvec4) Load 23(color)
+             129:   18(fvec4) CompositeConstruct 127 127 127 127
+             130:   18(fvec4) FAdd 128 129
+                              Store 23(color) 130
+             131:         112 Load 114(shadowSampler2D)
+             132:   18(fvec4) Load 20(coords4D)
+             133:    6(float) Load 8(lod)
+             134:    6(float) CompositeExtract 132 3
+             135:    6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133
+             136:   18(fvec4) Load 23(color)
+             137:   18(fvec4) CompositeConstruct 135 135 135 135
+             138:   18(fvec4) FAdd 136 137
+                              Store 23(color) 138
+             141:   18(fvec4) Load 23(color)
+                              Store 140(gl_Position) 141
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out
index 82b97a2..f4f8cea 100755
--- a/Test/baseResults/spv.types.frag.out
+++ b/Test/baseResults/spv.types.frag.out
@@ -1,344 +1,344 @@
-spv.types.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 268

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 94 104 114 124 134 144 154 164

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "b"

-                              Name 10  "u_b"

-                              Name 12  "i_b"

-                              Name 17  "b2"

-                              Name 19  "u_b2"

-                              Name 22  "i_b2"

-                              Name 35  "b3"

-                              Name 37  "u_b3"

-                              Name 40  "i_b3"

-                              Name 59  "b4"

-                              Name 61  "u_b4"

-                              Name 64  "i_b4"

-                              Name 89  "i"

-                              Name 91  "u_i"

-                              Name 94  "i_i"

-                              Name 99  "i2"

-                              Name 101  "u_i2"

-                              Name 104  "i_i2"

-                              Name 109  "i3"

-                              Name 111  "u_i3"

-                              Name 114  "i_i3"

-                              Name 119  "i4"

-                              Name 121  "u_i4"

-                              Name 124  "i_i4"

-                              Name 129  "f"

-                              Name 131  "u_f"

-                              Name 134  "i_f"

-                              Name 139  "f2"

-                              Name 141  "u_f2"

-                              Name 144  "i_f2"

-                              Name 149  "f3"

-                              Name 151  "u_f3"

-                              Name 154  "i_f3"

-                              Name 159  "f4"

-                              Name 161  "u_f4"

-                              Name 164  "i_f4"

-                              Name 168  "gl_FragColor"

-                              Decorate 94(i_i) Flat

-                              Decorate 104(i_i2) Flat

-                              Decorate 114(i_i3) Flat

-                              Decorate 124(i_i4) Flat

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeBool

-               7:             TypePointer Function 6(bool)

-               9:             TypePointer UniformConstant 6(bool)

-         10(u_b):      9(ptr) Variable UniformConstant

-         12(i_b):      9(ptr) Variable UniformConstant

-              15:             TypeVector 6(bool) 2

-              16:             TypePointer Function 15(bvec2)

-              18:             TypePointer UniformConstant 15(bvec2)

-        19(u_b2):     18(ptr) Variable UniformConstant

-        22(i_b2):     18(ptr) Variable UniformConstant

-              33:             TypeVector 6(bool) 3

-              34:             TypePointer Function 33(bvec3)

-              36:             TypePointer UniformConstant 33(bvec3)

-        37(u_b3):     36(ptr) Variable UniformConstant

-        40(i_b3):     36(ptr) Variable UniformConstant

-              57:             TypeVector 6(bool) 4

-              58:             TypePointer Function 57(bvec4)

-              60:             TypePointer UniformConstant 57(bvec4)

-        61(u_b4):     60(ptr) Variable UniformConstant

-        64(i_b4):     60(ptr) Variable UniformConstant

-              87:             TypeInt 32 1

-              88:             TypePointer Function 87(int)

-              90:             TypePointer UniformConstant 87(int)

-         91(u_i):     90(ptr) Variable UniformConstant

-              93:             TypePointer Input 87(int)

-         94(i_i):     93(ptr) Variable Input

-              97:             TypeVector 87(int) 2

-              98:             TypePointer Function 97(ivec2)

-             100:             TypePointer UniformConstant 97(ivec2)

-       101(u_i2):    100(ptr) Variable UniformConstant

-             103:             TypePointer Input 97(ivec2)

-       104(i_i2):    103(ptr) Variable Input

-             107:             TypeVector 87(int) 3

-             108:             TypePointer Function 107(ivec3)

-             110:             TypePointer UniformConstant 107(ivec3)

-       111(u_i3):    110(ptr) Variable UniformConstant

-             113:             TypePointer Input 107(ivec3)

-       114(i_i3):    113(ptr) Variable Input

-             117:             TypeVector 87(int) 4

-             118:             TypePointer Function 117(ivec4)

-             120:             TypePointer UniformConstant 117(ivec4)

-       121(u_i4):    120(ptr) Variable UniformConstant

-             123:             TypePointer Input 117(ivec4)

-       124(i_i4):    123(ptr) Variable Input

-             127:             TypeFloat 32

-             128:             TypePointer Function 127(float)

-             130:             TypePointer UniformConstant 127(float)

-        131(u_f):    130(ptr) Variable UniformConstant

-             133:             TypePointer Input 127(float)

-        134(i_f):    133(ptr) Variable Input

-             137:             TypeVector 127(float) 2

-             138:             TypePointer Function 137(fvec2)

-             140:             TypePointer UniformConstant 137(fvec2)

-       141(u_f2):    140(ptr) Variable UniformConstant

-             143:             TypePointer Input 137(fvec2)

-       144(i_f2):    143(ptr) Variable Input

-             147:             TypeVector 127(float) 3

-             148:             TypePointer Function 147(fvec3)

-             150:             TypePointer UniformConstant 147(fvec3)

-       151(u_f3):    150(ptr) Variable UniformConstant

-             153:             TypePointer Input 147(fvec3)

-       154(i_f3):    153(ptr) Variable Input

-             157:             TypeVector 127(float) 4

-             158:             TypePointer Function 157(fvec4)

-             160:             TypePointer UniformConstant 157(fvec4)

-       161(u_f4):    160(ptr) Variable UniformConstant

-             163:             TypePointer Input 157(fvec4)

-       164(i_f4):    163(ptr) Variable Input

-             167:             TypePointer Output 157(fvec4)

-168(gl_FragColor):    167(ptr) Variable Output

-             201:             TypeInt 32 0

-             202:    201(int) Constant 0

-             206:    201(int) Constant 1

-             216:    201(int) Constant 2

-             229:    201(int) Constant 3

-             265:  127(float) Constant 1065353216

-             266:  157(fvec4) ConstantComposite 265 265 265 265

-         4(main):           2 Function None 3

-               5:             Label

-            8(b):      7(ptr) Variable Function

-          17(b2):     16(ptr) Variable Function

-          35(b3):     34(ptr) Variable Function

-          59(b4):     58(ptr) Variable Function

-           89(i):     88(ptr) Variable Function

-          99(i2):     98(ptr) Variable Function

-         109(i3):    108(ptr) Variable Function

-         119(i4):    118(ptr) Variable Function

-          129(f):    128(ptr) Variable Function

-         139(f2):    138(ptr) Variable Function

-         149(f3):    148(ptr) Variable Function

-         159(f4):    158(ptr) Variable Function

-             169:    158(ptr) Variable Function

-              11:     6(bool) Load 10(u_b)

-              13:     6(bool) Load 12(i_b)

-              14:     6(bool) LogicalAnd 11 13

-                              Store 8(b) 14

-              20:   15(bvec2) Load 19(u_b2)

-              21:     6(bool) CompositeExtract 20 0

-              23:   15(bvec2) Load 22(i_b2)

-              24:     6(bool) CompositeExtract 23 0

-              25:     6(bool) LogicalAnd 21 24

-              26:   15(bvec2) Load 19(u_b2)

-              27:     6(bool) CompositeExtract 26 1

-              28:     6(bool) LogicalAnd 25 27

-              29:   15(bvec2) Load 22(i_b2)

-              30:     6(bool) CompositeExtract 29 1

-              31:     6(bool) LogicalAnd 28 30

-              32:   15(bvec2) CompositeConstruct 31 31

-                              Store 17(b2) 32

-              38:   33(bvec3) Load 37(u_b3)

-              39:     6(bool) CompositeExtract 38 0

-              41:   33(bvec3) Load 40(i_b3)

-              42:     6(bool) CompositeExtract 41 0

-              43:     6(bool) LogicalAnd 39 42

-              44:   33(bvec3) Load 37(u_b3)

-              45:     6(bool) CompositeExtract 44 1

-              46:     6(bool) LogicalAnd 43 45

-              47:   33(bvec3) Load 40(i_b3)

-              48:     6(bool) CompositeExtract 47 1

-              49:     6(bool) LogicalAnd 46 48

-              50:   33(bvec3) Load 37(u_b3)

-              51:     6(bool) CompositeExtract 50 2

-              52:     6(bool) LogicalAnd 49 51

-              53:   33(bvec3) Load 40(i_b3)

-              54:     6(bool) CompositeExtract 53 2

-              55:     6(bool) LogicalAnd 52 54

-              56:   33(bvec3) CompositeConstruct 55 55 55

-                              Store 35(b3) 56

-              62:   57(bvec4) Load 61(u_b4)

-              63:     6(bool) CompositeExtract 62 0

-              65:   57(bvec4) Load 64(i_b4)

-              66:     6(bool) CompositeExtract 65 0

-              67:     6(bool) LogicalAnd 63 66

-              68:   57(bvec4) Load 61(u_b4)

-              69:     6(bool) CompositeExtract 68 1

-              70:     6(bool) LogicalAnd 67 69

-              71:   57(bvec4) Load 64(i_b4)

-              72:     6(bool) CompositeExtract 71 1

-              73:     6(bool) LogicalAnd 70 72

-              74:   57(bvec4) Load 61(u_b4)

-              75:     6(bool) CompositeExtract 74 2

-              76:     6(bool) LogicalAnd 73 75

-              77:   57(bvec4) Load 64(i_b4)

-              78:     6(bool) CompositeExtract 77 2

-              79:     6(bool) LogicalAnd 76 78

-              80:   57(bvec4) Load 61(u_b4)

-              81:     6(bool) CompositeExtract 80 3

-              82:     6(bool) LogicalAnd 79 81

-              83:   57(bvec4) Load 64(i_b4)

-              84:     6(bool) CompositeExtract 83 3

-              85:     6(bool) LogicalAnd 82 84

-              86:   57(bvec4) CompositeConstruct 85 85 85 85

-                              Store 59(b4) 86

-              92:     87(int) Load 91(u_i)

-              95:     87(int) Load 94(i_i)

-              96:     87(int) IAdd 92 95

-                              Store 89(i) 96

-             102:   97(ivec2) Load 101(u_i2)

-             105:   97(ivec2) Load 104(i_i2)

-             106:   97(ivec2) IAdd 102 105

-                              Store 99(i2) 106

-             112:  107(ivec3) Load 111(u_i3)

-             115:  107(ivec3) Load 114(i_i3)

-             116:  107(ivec3) IAdd 112 115

-                              Store 109(i3) 116

-             122:  117(ivec4) Load 121(u_i4)

-             125:  117(ivec4) Load 124(i_i4)

-             126:  117(ivec4) IAdd 122 125

-                              Store 119(i4) 126

-             132:  127(float) Load 131(u_f)

-             135:  127(float) Load 134(i_f)

-             136:  127(float) FAdd 132 135

-                              Store 129(f) 136

-             142:  137(fvec2) Load 141(u_f2)

-             145:  137(fvec2) Load 144(i_f2)

-             146:  137(fvec2) FAdd 142 145

-                              Store 139(f2) 146

-             152:  147(fvec3) Load 151(u_f3)

-             155:  147(fvec3) Load 154(i_f3)

-             156:  147(fvec3) FAdd 152 155

-                              Store 149(f3) 156

-             162:  157(fvec4) Load 161(u_f4)

-             165:  157(fvec4) Load 164(i_f4)

-             166:  157(fvec4) FAdd 162 165

-                              Store 159(f4) 166

-             170:     6(bool) Load 8(b)

-             171:   15(bvec2) Load 17(b2)

-             172:     6(bool) CompositeExtract 171 0

-             173:     6(bool) LogicalOr 170 172

-             174:   15(bvec2) Load 17(b2)

-             175:     6(bool) CompositeExtract 174 1

-             176:     6(bool) LogicalOr 173 175

-             177:   33(bvec3) Load 35(b3)

-             178:     6(bool) CompositeExtract 177 0

-             179:     6(bool) LogicalOr 176 178

-             180:   33(bvec3) Load 35(b3)

-             181:     6(bool) CompositeExtract 180 1

-             182:     6(bool) LogicalOr 179 181

-             183:   33(bvec3) Load 35(b3)

-             184:     6(bool) CompositeExtract 183 2

-             185:     6(bool) LogicalOr 182 184

-             186:   57(bvec4) Load 59(b4)

-             187:     6(bool) CompositeExtract 186 0

-             188:     6(bool) LogicalOr 185 187

-             189:   57(bvec4) Load 59(b4)

-             190:     6(bool) CompositeExtract 189 1

-             191:     6(bool) LogicalOr 188 190

-             192:   57(bvec4) Load 59(b4)

-             193:     6(bool) CompositeExtract 192 2

-             194:     6(bool) LogicalOr 191 193

-             195:   57(bvec4) Load 59(b4)

-             196:     6(bool) CompositeExtract 195 3

-             197:     6(bool) LogicalOr 194 196

-                              SelectionMerge 199 None

-                              BranchConditional 197 198 264

-             198:               Label

-             200:     87(int)   Load 89(i)

-             203:     88(ptr)   AccessChain 99(i2) 202

-             204:     87(int)   Load 203

-             205:     87(int)   IAdd 200 204

-             207:     88(ptr)   AccessChain 99(i2) 206

-             208:     87(int)   Load 207

-             209:     87(int)   IAdd 205 208

-             210:     88(ptr)   AccessChain 109(i3) 202

-             211:     87(int)   Load 210

-             212:     87(int)   IAdd 209 211

-             213:     88(ptr)   AccessChain 109(i3) 206

-             214:     87(int)   Load 213

-             215:     87(int)   IAdd 212 214

-             217:     88(ptr)   AccessChain 109(i3) 216

-             218:     87(int)   Load 217

-             219:     87(int)   IAdd 215 218

-             220:     88(ptr)   AccessChain 119(i4) 202

-             221:     87(int)   Load 220

-             222:     87(int)   IAdd 219 221

-             223:     88(ptr)   AccessChain 119(i4) 206

-             224:     87(int)   Load 223

-             225:     87(int)   IAdd 222 224

-             226:     88(ptr)   AccessChain 119(i4) 216

-             227:     87(int)   Load 226

-             228:     87(int)   IAdd 225 227

-             230:     88(ptr)   AccessChain 119(i4) 229

-             231:     87(int)   Load 230

-             232:     87(int)   IAdd 228 231

-             233:  127(float)   ConvertSToF 232

-             234:  127(float)   Load 129(f)

-             235:  127(float)   FAdd 233 234

-             236:    128(ptr)   AccessChain 139(f2) 202

-             237:  127(float)   Load 236

-             238:  127(float)   FAdd 235 237

-             239:    128(ptr)   AccessChain 139(f2) 206

-             240:  127(float)   Load 239

-             241:  127(float)   FAdd 238 240

-             242:    128(ptr)   AccessChain 149(f3) 202

-             243:  127(float)   Load 242

-             244:  127(float)   FAdd 241 243

-             245:    128(ptr)   AccessChain 149(f3) 206

-             246:  127(float)   Load 245

-             247:  127(float)   FAdd 244 246

-             248:    128(ptr)   AccessChain 149(f3) 216

-             249:  127(float)   Load 248

-             250:  127(float)   FAdd 247 249

-             251:    128(ptr)   AccessChain 159(f4) 202

-             252:  127(float)   Load 251

-             253:  127(float)   FAdd 250 252

-             254:    128(ptr)   AccessChain 159(f4) 206

-             255:  127(float)   Load 254

-             256:  127(float)   FAdd 253 255

-             257:    128(ptr)   AccessChain 159(f4) 216

-             258:  127(float)   Load 257

-             259:  127(float)   FAdd 256 258

-             260:    128(ptr)   AccessChain 159(f4) 229

-             261:  127(float)   Load 260

-             262:  127(float)   FAdd 259 261

-             263:  157(fvec4)   CompositeConstruct 262 262 262 262

-                                Store 169 263

-                                Branch 199

-             264:               Label

-                                Store 169 266

-                                Branch 199

-             199:             Label

-             267:  157(fvec4) Load 169

-                              Store 168(gl_FragColor) 267

-                              Return

-                              FunctionEnd

+spv.types.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 268
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 94 104 114 124 134 144 154 164
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "b"
+                              Name 10  "u_b"
+                              Name 12  "i_b"
+                              Name 17  "b2"
+                              Name 19  "u_b2"
+                              Name 22  "i_b2"
+                              Name 35  "b3"
+                              Name 37  "u_b3"
+                              Name 40  "i_b3"
+                              Name 59  "b4"
+                              Name 61  "u_b4"
+                              Name 64  "i_b4"
+                              Name 89  "i"
+                              Name 91  "u_i"
+                              Name 94  "i_i"
+                              Name 99  "i2"
+                              Name 101  "u_i2"
+                              Name 104  "i_i2"
+                              Name 109  "i3"
+                              Name 111  "u_i3"
+                              Name 114  "i_i3"
+                              Name 119  "i4"
+                              Name 121  "u_i4"
+                              Name 124  "i_i4"
+                              Name 129  "f"
+                              Name 131  "u_f"
+                              Name 134  "i_f"
+                              Name 139  "f2"
+                              Name 141  "u_f2"
+                              Name 144  "i_f2"
+                              Name 149  "f3"
+                              Name 151  "u_f3"
+                              Name 154  "i_f3"
+                              Name 159  "f4"
+                              Name 161  "u_f4"
+                              Name 164  "i_f4"
+                              Name 168  "gl_FragColor"
+                              Decorate 94(i_i) Flat
+                              Decorate 104(i_i2) Flat
+                              Decorate 114(i_i3) Flat
+                              Decorate 124(i_i4) Flat
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeBool
+               7:             TypePointer Function 6(bool)
+               9:             TypePointer UniformConstant 6(bool)
+         10(u_b):      9(ptr) Variable UniformConstant
+         12(i_b):      9(ptr) Variable UniformConstant
+              15:             TypeVector 6(bool) 2
+              16:             TypePointer Function 15(bvec2)
+              18:             TypePointer UniformConstant 15(bvec2)
+        19(u_b2):     18(ptr) Variable UniformConstant
+        22(i_b2):     18(ptr) Variable UniformConstant
+              33:             TypeVector 6(bool) 3
+              34:             TypePointer Function 33(bvec3)
+              36:             TypePointer UniformConstant 33(bvec3)
+        37(u_b3):     36(ptr) Variable UniformConstant
+        40(i_b3):     36(ptr) Variable UniformConstant
+              57:             TypeVector 6(bool) 4
+              58:             TypePointer Function 57(bvec4)
+              60:             TypePointer UniformConstant 57(bvec4)
+        61(u_b4):     60(ptr) Variable UniformConstant
+        64(i_b4):     60(ptr) Variable UniformConstant
+              87:             TypeInt 32 1
+              88:             TypePointer Function 87(int)
+              90:             TypePointer UniformConstant 87(int)
+         91(u_i):     90(ptr) Variable UniformConstant
+              93:             TypePointer Input 87(int)
+         94(i_i):     93(ptr) Variable Input
+              97:             TypeVector 87(int) 2
+              98:             TypePointer Function 97(ivec2)
+             100:             TypePointer UniformConstant 97(ivec2)
+       101(u_i2):    100(ptr) Variable UniformConstant
+             103:             TypePointer Input 97(ivec2)
+       104(i_i2):    103(ptr) Variable Input
+             107:             TypeVector 87(int) 3
+             108:             TypePointer Function 107(ivec3)
+             110:             TypePointer UniformConstant 107(ivec3)
+       111(u_i3):    110(ptr) Variable UniformConstant
+             113:             TypePointer Input 107(ivec3)
+       114(i_i3):    113(ptr) Variable Input
+             117:             TypeVector 87(int) 4
+             118:             TypePointer Function 117(ivec4)
+             120:             TypePointer UniformConstant 117(ivec4)
+       121(u_i4):    120(ptr) Variable UniformConstant
+             123:             TypePointer Input 117(ivec4)
+       124(i_i4):    123(ptr) Variable Input
+             127:             TypeFloat 32
+             128:             TypePointer Function 127(float)
+             130:             TypePointer UniformConstant 127(float)
+        131(u_f):    130(ptr) Variable UniformConstant
+             133:             TypePointer Input 127(float)
+        134(i_f):    133(ptr) Variable Input
+             137:             TypeVector 127(float) 2
+             138:             TypePointer Function 137(fvec2)
+             140:             TypePointer UniformConstant 137(fvec2)
+       141(u_f2):    140(ptr) Variable UniformConstant
+             143:             TypePointer Input 137(fvec2)
+       144(i_f2):    143(ptr) Variable Input
+             147:             TypeVector 127(float) 3
+             148:             TypePointer Function 147(fvec3)
+             150:             TypePointer UniformConstant 147(fvec3)
+       151(u_f3):    150(ptr) Variable UniformConstant
+             153:             TypePointer Input 147(fvec3)
+       154(i_f3):    153(ptr) Variable Input
+             157:             TypeVector 127(float) 4
+             158:             TypePointer Function 157(fvec4)
+             160:             TypePointer UniformConstant 157(fvec4)
+       161(u_f4):    160(ptr) Variable UniformConstant
+             163:             TypePointer Input 157(fvec4)
+       164(i_f4):    163(ptr) Variable Input
+             167:             TypePointer Output 157(fvec4)
+168(gl_FragColor):    167(ptr) Variable Output
+             201:             TypeInt 32 0
+             202:    201(int) Constant 0
+             206:    201(int) Constant 1
+             216:    201(int) Constant 2
+             229:    201(int) Constant 3
+             265:  127(float) Constant 1065353216
+             266:  157(fvec4) ConstantComposite 265 265 265 265
+         4(main):           2 Function None 3
+               5:             Label
+            8(b):      7(ptr) Variable Function
+          17(b2):     16(ptr) Variable Function
+          35(b3):     34(ptr) Variable Function
+          59(b4):     58(ptr) Variable Function
+           89(i):     88(ptr) Variable Function
+          99(i2):     98(ptr) Variable Function
+         109(i3):    108(ptr) Variable Function
+         119(i4):    118(ptr) Variable Function
+          129(f):    128(ptr) Variable Function
+         139(f2):    138(ptr) Variable Function
+         149(f3):    148(ptr) Variable Function
+         159(f4):    158(ptr) Variable Function
+             169:    158(ptr) Variable Function
+              11:     6(bool) Load 10(u_b)
+              13:     6(bool) Load 12(i_b)
+              14:     6(bool) LogicalAnd 11 13
+                              Store 8(b) 14
+              20:   15(bvec2) Load 19(u_b2)
+              21:     6(bool) CompositeExtract 20 0
+              23:   15(bvec2) Load 22(i_b2)
+              24:     6(bool) CompositeExtract 23 0
+              25:     6(bool) LogicalAnd 21 24
+              26:   15(bvec2) Load 19(u_b2)
+              27:     6(bool) CompositeExtract 26 1
+              28:     6(bool) LogicalAnd 25 27
+              29:   15(bvec2) Load 22(i_b2)
+              30:     6(bool) CompositeExtract 29 1
+              31:     6(bool) LogicalAnd 28 30
+              32:   15(bvec2) CompositeConstruct 31 31
+                              Store 17(b2) 32
+              38:   33(bvec3) Load 37(u_b3)
+              39:     6(bool) CompositeExtract 38 0
+              41:   33(bvec3) Load 40(i_b3)
+              42:     6(bool) CompositeExtract 41 0
+              43:     6(bool) LogicalAnd 39 42
+              44:   33(bvec3) Load 37(u_b3)
+              45:     6(bool) CompositeExtract 44 1
+              46:     6(bool) LogicalAnd 43 45
+              47:   33(bvec3) Load 40(i_b3)
+              48:     6(bool) CompositeExtract 47 1
+              49:     6(bool) LogicalAnd 46 48
+              50:   33(bvec3) Load 37(u_b3)
+              51:     6(bool) CompositeExtract 50 2
+              52:     6(bool) LogicalAnd 49 51
+              53:   33(bvec3) Load 40(i_b3)
+              54:     6(bool) CompositeExtract 53 2
+              55:     6(bool) LogicalAnd 52 54
+              56:   33(bvec3) CompositeConstruct 55 55 55
+                              Store 35(b3) 56
+              62:   57(bvec4) Load 61(u_b4)
+              63:     6(bool) CompositeExtract 62 0
+              65:   57(bvec4) Load 64(i_b4)
+              66:     6(bool) CompositeExtract 65 0
+              67:     6(bool) LogicalAnd 63 66
+              68:   57(bvec4) Load 61(u_b4)
+              69:     6(bool) CompositeExtract 68 1
+              70:     6(bool) LogicalAnd 67 69
+              71:   57(bvec4) Load 64(i_b4)
+              72:     6(bool) CompositeExtract 71 1
+              73:     6(bool) LogicalAnd 70 72
+              74:   57(bvec4) Load 61(u_b4)
+              75:     6(bool) CompositeExtract 74 2
+              76:     6(bool) LogicalAnd 73 75
+              77:   57(bvec4) Load 64(i_b4)
+              78:     6(bool) CompositeExtract 77 2
+              79:     6(bool) LogicalAnd 76 78
+              80:   57(bvec4) Load 61(u_b4)
+              81:     6(bool) CompositeExtract 80 3
+              82:     6(bool) LogicalAnd 79 81
+              83:   57(bvec4) Load 64(i_b4)
+              84:     6(bool) CompositeExtract 83 3
+              85:     6(bool) LogicalAnd 82 84
+              86:   57(bvec4) CompositeConstruct 85 85 85 85
+                              Store 59(b4) 86
+              92:     87(int) Load 91(u_i)
+              95:     87(int) Load 94(i_i)
+              96:     87(int) IAdd 92 95
+                              Store 89(i) 96
+             102:   97(ivec2) Load 101(u_i2)
+             105:   97(ivec2) Load 104(i_i2)
+             106:   97(ivec2) IAdd 102 105
+                              Store 99(i2) 106
+             112:  107(ivec3) Load 111(u_i3)
+             115:  107(ivec3) Load 114(i_i3)
+             116:  107(ivec3) IAdd 112 115
+                              Store 109(i3) 116
+             122:  117(ivec4) Load 121(u_i4)
+             125:  117(ivec4) Load 124(i_i4)
+             126:  117(ivec4) IAdd 122 125
+                              Store 119(i4) 126
+             132:  127(float) Load 131(u_f)
+             135:  127(float) Load 134(i_f)
+             136:  127(float) FAdd 132 135
+                              Store 129(f) 136
+             142:  137(fvec2) Load 141(u_f2)
+             145:  137(fvec2) Load 144(i_f2)
+             146:  137(fvec2) FAdd 142 145
+                              Store 139(f2) 146
+             152:  147(fvec3) Load 151(u_f3)
+             155:  147(fvec3) Load 154(i_f3)
+             156:  147(fvec3) FAdd 152 155
+                              Store 149(f3) 156
+             162:  157(fvec4) Load 161(u_f4)
+             165:  157(fvec4) Load 164(i_f4)
+             166:  157(fvec4) FAdd 162 165
+                              Store 159(f4) 166
+             170:     6(bool) Load 8(b)
+             171:   15(bvec2) Load 17(b2)
+             172:     6(bool) CompositeExtract 171 0
+             173:     6(bool) LogicalOr 170 172
+             174:   15(bvec2) Load 17(b2)
+             175:     6(bool) CompositeExtract 174 1
+             176:     6(bool) LogicalOr 173 175
+             177:   33(bvec3) Load 35(b3)
+             178:     6(bool) CompositeExtract 177 0
+             179:     6(bool) LogicalOr 176 178
+             180:   33(bvec3) Load 35(b3)
+             181:     6(bool) CompositeExtract 180 1
+             182:     6(bool) LogicalOr 179 181
+             183:   33(bvec3) Load 35(b3)
+             184:     6(bool) CompositeExtract 183 2
+             185:     6(bool) LogicalOr 182 184
+             186:   57(bvec4) Load 59(b4)
+             187:     6(bool) CompositeExtract 186 0
+             188:     6(bool) LogicalOr 185 187
+             189:   57(bvec4) Load 59(b4)
+             190:     6(bool) CompositeExtract 189 1
+             191:     6(bool) LogicalOr 188 190
+             192:   57(bvec4) Load 59(b4)
+             193:     6(bool) CompositeExtract 192 2
+             194:     6(bool) LogicalOr 191 193
+             195:   57(bvec4) Load 59(b4)
+             196:     6(bool) CompositeExtract 195 3
+             197:     6(bool) LogicalOr 194 196
+                              SelectionMerge 199 None
+                              BranchConditional 197 198 264
+             198:               Label
+             200:     87(int)   Load 89(i)
+             203:     88(ptr)   AccessChain 99(i2) 202
+             204:     87(int)   Load 203
+             205:     87(int)   IAdd 200 204
+             207:     88(ptr)   AccessChain 99(i2) 206
+             208:     87(int)   Load 207
+             209:     87(int)   IAdd 205 208
+             210:     88(ptr)   AccessChain 109(i3) 202
+             211:     87(int)   Load 210
+             212:     87(int)   IAdd 209 211
+             213:     88(ptr)   AccessChain 109(i3) 206
+             214:     87(int)   Load 213
+             215:     87(int)   IAdd 212 214
+             217:     88(ptr)   AccessChain 109(i3) 216
+             218:     87(int)   Load 217
+             219:     87(int)   IAdd 215 218
+             220:     88(ptr)   AccessChain 119(i4) 202
+             221:     87(int)   Load 220
+             222:     87(int)   IAdd 219 221
+             223:     88(ptr)   AccessChain 119(i4) 206
+             224:     87(int)   Load 223
+             225:     87(int)   IAdd 222 224
+             226:     88(ptr)   AccessChain 119(i4) 216
+             227:     87(int)   Load 226
+             228:     87(int)   IAdd 225 227
+             230:     88(ptr)   AccessChain 119(i4) 229
+             231:     87(int)   Load 230
+             232:     87(int)   IAdd 228 231
+             233:  127(float)   ConvertSToF 232
+             234:  127(float)   Load 129(f)
+             235:  127(float)   FAdd 233 234
+             236:    128(ptr)   AccessChain 139(f2) 202
+             237:  127(float)   Load 236
+             238:  127(float)   FAdd 235 237
+             239:    128(ptr)   AccessChain 139(f2) 206
+             240:  127(float)   Load 239
+             241:  127(float)   FAdd 238 240
+             242:    128(ptr)   AccessChain 149(f3) 202
+             243:  127(float)   Load 242
+             244:  127(float)   FAdd 241 243
+             245:    128(ptr)   AccessChain 149(f3) 206
+             246:  127(float)   Load 245
+             247:  127(float)   FAdd 244 246
+             248:    128(ptr)   AccessChain 149(f3) 216
+             249:  127(float)   Load 248
+             250:  127(float)   FAdd 247 249
+             251:    128(ptr)   AccessChain 159(f4) 202
+             252:  127(float)   Load 251
+             253:  127(float)   FAdd 250 252
+             254:    128(ptr)   AccessChain 159(f4) 206
+             255:  127(float)   Load 254
+             256:  127(float)   FAdd 253 255
+             257:    128(ptr)   AccessChain 159(f4) 216
+             258:  127(float)   Load 257
+             259:  127(float)   FAdd 256 258
+             260:    128(ptr)   AccessChain 159(f4) 229
+             261:  127(float)   Load 260
+             262:  127(float)   FAdd 259 261
+             263:  157(fvec4)   CompositeConstruct 262 262 262 262
+                                Store 169 263
+                                Branch 199
+             264:               Label
+                                Store 169 266
+                                Branch 199
+             199:             Label
+             267:  157(fvec4) Load 169
+                              Store 168(gl_FragColor) 267
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out
index 3cf1a76..0a1650c 100755
--- a/Test/baseResults/spv.uint.frag.out
+++ b/Test/baseResults/spv.uint.frag.out
@@ -1,350 +1,350 @@
-spv.uint.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 207

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 15 200 77 68

-                              ExecutionMode 4 OriginLowerLeft

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "count"

-                              Name 12  "u"

-                              Name 15  "t"

-                              Name 55  "shiftedii"

-                              Name 57  "shiftedui"

-                              Name 59  "shiftediu"

-                              Name 60  "shifteduu"

-                              Name 68  "c"

-                              Name 72  "usampler"

-                              Name 77  "tc"

-                              Name 111  "af"

-                              Name 115  "ab"

-                              Name 118  "ai"

-                              Name 152  "mask1"

-                              Name 154  "mask2"

-                              Name 156  "mask3"

-                              Name 160  "mask4"

-                              Name 200  "f"

-                              Name 202  "v"

-                              Name 204  "i"

-                              Name 206  "b"

-                              Decorate 8(count) RelaxedPrecision

-                              Decorate 12(u) RelaxedPrecision

-                              Decorate 15(t) RelaxedPrecision

-                              Decorate 15(t) Flat

-                              Decorate 55(shiftedii) RelaxedPrecision

-                              Decorate 57(shiftedui) RelaxedPrecision

-                              Decorate 59(shiftediu) RelaxedPrecision

-                              Decorate 60(shifteduu) RelaxedPrecision

-                              Decorate 68(c) RelaxedPrecision

-                              Decorate 72(usampler) RelaxedPrecision

-                              Decorate 77(tc) RelaxedPrecision

-                              Decorate 111(af) RelaxedPrecision

-                              Decorate 118(ai) RelaxedPrecision

-                              Decorate 152(mask1) RelaxedPrecision

-                              Decorate 154(mask2) RelaxedPrecision

-                              Decorate 156(mask3) RelaxedPrecision

-                              Decorate 160(mask4) RelaxedPrecision

-                              Decorate 200(f) RelaxedPrecision

-                              Decorate 202(v) RelaxedPrecision

-                              Decorate 204(i) RelaxedPrecision

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 1

-              10:             TypeInt 32 0

-              11:             TypePointer Function 10(int)

-              13:             TypeVector 10(int) 2

-              14:             TypePointer Input 13(ivec2)

-           15(t):     14(ptr) Variable Input

-              16:     10(int) Constant 1

-              17:             TypePointer Input 10(int)

-              20:     10(int) Constant 3

-              22:             TypeBool

-              23:    22(bool) ConstantTrue

-              26:      6(int) Constant 2

-              31:      6(int) Constant 3

-              34:    22(bool) ConstantFalse

-              37:      6(int) Constant 5

-              42:      6(int) Constant 7

-              47:      6(int) Constant 11

-              52:      6(int) Constant 13

-              56:      6(int) Constant 4294967295

-              58:     10(int) Constant 4194303

-              66:             TypeVector 10(int) 4

-              67:             TypePointer Output 66(ivec4)

-           68(c):     67(ptr) Variable Output

-              69:             TypeImage 10(int) 2D sampled format:Unknown

-              70:             TypeSampledImage 69

-              71:             TypePointer UniformConstant 70

-    72(usampler):     71(ptr) Variable UniformConstant

-              74:             TypeFloat 32

-              75:             TypeVector 74(float) 2

-              76:             TypePointer Input 75(fvec2)

-          77(tc):     76(ptr) Variable Input

-              87:   74(float) Constant 1065353216

-              99:   74(float) Constant 1073741824

-             100:   75(fvec2) ConstantComposite 99 99

-             103:     10(int) Constant 0

-             106:     10(int) Constant 4

-             110:             TypePointer Function 74(float)

-             114:             TypePointer Function 22(bool)

-             134:      6(int) Constant 17

-             139:      6(int) Constant 19

-             144:      6(int) Constant 23

-             149:      6(int) Constant 27

-             153:     10(int) Constant 161

-             155:     10(int) Constant 2576

-             158:      6(int) Constant 4

-             161:     10(int) Constant 2737

-             199:             TypePointer Input 74(float)

-          200(f):    199(ptr) Variable Input

-             201:             TypePointer UniformConstant 66(ivec4)

-          202(v):    201(ptr) Variable UniformConstant

-             203:             TypePointer UniformConstant 6(int)

-          204(i):    203(ptr) Variable UniformConstant

-             205:             TypePointer UniformConstant 22(bool)

-          206(b):    205(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-        8(count):      7(ptr) Variable Function

-           12(u):     11(ptr) Variable Function

-   55(shiftedii):      7(ptr) Variable Function

-   57(shiftedui):     11(ptr) Variable Function

-   59(shiftediu):      7(ptr) Variable Function

-   60(shifteduu):     11(ptr) Variable Function

-         111(af):    110(ptr) Variable Function

-         115(ab):    114(ptr) Variable Function

-         118(ai):      7(ptr) Variable Function

-      152(mask1):     11(ptr) Variable Function

-      154(mask2):     11(ptr) Variable Function

-      156(mask3):     11(ptr) Variable Function

-      160(mask4):     11(ptr) Variable Function

-                              Store 8(count) 9

-              18:     17(ptr) AccessChain 15(t) 16

-              19:     10(int) Load 18

-              21:     10(int) IAdd 19 20

-                              Store 12(u) 21

-                              SelectionMerge 25 None

-                              BranchConditional 23 24 25

-              24:               Label

-              27:      6(int)   Load 8(count)

-              28:      6(int)   IMul 27 26

-                                Store 8(count) 28

-                                Branch 25

-              25:             Label

-                              SelectionMerge 30 None

-                              BranchConditional 23 29 30

-              29:               Label

-              32:      6(int)   Load 8(count)

-              33:      6(int)   IMul 32 31

-                                Store 8(count) 33

-                                Branch 30

-              30:             Label

-                              SelectionMerge 36 None

-                              BranchConditional 34 35 36

-              35:               Label

-              38:      6(int)   Load 8(count)

-              39:      6(int)   IMul 38 37

-                                Store 8(count) 39

-                                Branch 36

-              36:             Label

-                              SelectionMerge 41 None

-                              BranchConditional 23 40 41

-              40:               Label

-              43:      6(int)   Load 8(count)

-              44:      6(int)   IMul 43 42

-                                Store 8(count) 44

-                                Branch 41

-              41:             Label

-                              SelectionMerge 46 None

-                              BranchConditional 23 45 46

-              45:               Label

-              48:      6(int)   Load 8(count)

-              49:      6(int)   IMul 48 47

-                                Store 8(count) 49

-                                Branch 46

-              46:             Label

-                              SelectionMerge 51 None

-                              BranchConditional 34 50 51

-              50:               Label

-              53:      6(int)   Load 8(count)

-              54:      6(int)   IMul 53 52

-                                Store 8(count) 54

-                                Branch 51

-              51:             Label

-                              Store 55(shiftedii) 56

-                              Store 57(shiftedui) 58

-                              Store 59(shiftediu) 56

-                              Store 60(shifteduu) 58

-              61:      6(int) Load 55(shiftedii)

-              62:      6(int) Load 59(shiftediu)

-              63:    22(bool) IEqual 61 62

-                              SelectionMerge 65 None

-                              BranchConditional 63 64 65

-              64:               Label

-              73:          70   Load 72(usampler)

-              78:   75(fvec2)   Load 77(tc)

-              79:   66(ivec4)   ImageSampleImplicitLod 73 78

-                                Store 68(c) 79

-                                Branch 65

-              65:             Label

-              80:     10(int) Load 57(shiftedui)

-              81:     10(int) Load 60(shifteduu)

-              82:    22(bool) IEqual 80 81

-                              SelectionMerge 84 None

-                              BranchConditional 82 83 84

-              83:               Label

-              85:          70   Load 72(usampler)

-              86:   75(fvec2)   Load 77(tc)

-              88:   75(fvec2)   CompositeConstruct 87 87

-              89:   75(fvec2)   FAdd 86 88

-              90:   66(ivec4)   ImageSampleImplicitLod 85 89

-                                Store 68(c) 90

-                                Branch 84

-              84:             Label

-              91:      6(int) Load 55(shiftedii)

-              92:     10(int) Load 57(shiftedui)

-              93:      6(int) Bitcast 92

-              94:    22(bool) IEqual 91 93

-                              SelectionMerge 96 None

-                              BranchConditional 94 95 96

-              95:               Label

-              97:          70   Load 72(usampler)

-              98:   75(fvec2)   Load 77(tc)

-             101:   75(fvec2)   FSub 98 100

-             102:   66(ivec4)   ImageSampleImplicitLod 97 101

-                                Store 68(c) 102

-                                Branch 96

-              96:             Label

-             104:     17(ptr) AccessChain 15(t) 103

-             105:     10(int) Load 104

-             107:    22(bool) UGreaterThan 105 106

-                              SelectionMerge 109 None

-                              BranchConditional 107 108 109

-             108:               Label

-             112:     10(int)   Load 12(u)

-             113:   74(float)   ConvertUToF 112

-                                Store 111(af) 113

-             116:     10(int)   Load 12(u)

-             117:    22(bool)   INotEqual 116 103

-                                Store 115(ab) 117

-             119:     10(int)   Load 12(u)

-             120:      6(int)   Bitcast 119

-                                Store 118(ai) 120

-             121:   74(float)   Load 111(af)

-             122:     10(int)   ConvertFToU 121

-             123:    22(bool)   Load 115(ab)

-             124:     10(int)   Select 123 16 103

-             125:      6(int)   Load 118(ai)

-             126:     10(int)   Bitcast 125

-             127:      6(int)   Load 8(count)

-             128:     10(int)   Bitcast 127

-             129:   66(ivec4)   CompositeConstruct 122 124 126 128

-             130:   66(ivec4)   Load 68(c)

-             131:   66(ivec4)   IAdd 130 129

-                                Store 68(c) 131

-                                Branch 109

-             109:             Label

-                              SelectionMerge 133 None

-                              BranchConditional 23 132 133

-             132:               Label

-             135:      6(int)   Load 8(count)

-             136:      6(int)   IMul 135 134

-                                Store 8(count) 136

-                                Branch 133

-             133:             Label

-                              SelectionMerge 138 None

-                              BranchConditional 34 137 138

-             137:               Label

-             140:      6(int)   Load 8(count)

-             141:      6(int)   IMul 140 139

-                                Store 8(count) 141

-                                Branch 138

-             138:             Label

-                              SelectionMerge 143 None

-                              BranchConditional 23 142 143

-             142:               Label

-             145:      6(int)   Load 8(count)

-             146:      6(int)   IMul 145 144

-                                Store 8(count) 146

-                                Branch 143

-             143:             Label

-                              SelectionMerge 148 None

-                              BranchConditional 23 147 148

-             147:               Label

-             150:      6(int)   Load 8(count)

-             151:      6(int)   IMul 150 149

-                                Store 8(count) 151

-                                Branch 148

-             148:             Label

-                              Store 152(mask1) 153

-                              Store 154(mask2) 155

-             157:     10(int) Load 152(mask1)

-             159:     10(int) ShiftLeftLogical 157 158

-                              Store 156(mask3) 159

-                              Store 160(mask4) 161

-             162:     10(int) Load 156(mask3)

-             163:     10(int) Load 154(mask2)

-             164:    22(bool) IEqual 162 163

-                              SelectionMerge 166 None

-                              BranchConditional 164 165 166

-             165:               Label

-             167:      6(int)   Load 8(count)

-             168:      6(int)   IMul 167 26

-                                Store 8(count) 168

-                                Branch 166

-             166:             Label

-             169:     10(int) Load 156(mask3)

-             170:     10(int) Load 152(mask1)

-             171:     10(int) BitwiseAnd 169 170

-             172:    22(bool) INotEqual 171 103

-                              SelectionMerge 174 None

-                              BranchConditional 172 173 174

-             173:               Label

-             175:      6(int)   Load 8(count)

-             176:      6(int)   IMul 175 31

-                                Store 8(count) 176

-                                Branch 174

-             174:             Label

-             177:     10(int) Load 152(mask1)

-             178:     10(int) Load 156(mask3)

-             179:     10(int) BitwiseOr 177 178

-             180:     10(int) Load 160(mask4)

-             181:    22(bool) IEqual 179 180

-                              SelectionMerge 183 None

-                              BranchConditional 181 182 183

-             182:               Label

-             184:      6(int)   Load 8(count)

-             185:      6(int)   IMul 184 37

-                                Store 8(count) 185

-                                Branch 183

-             183:             Label

-             186:     10(int) Load 152(mask1)

-             187:     10(int) Load 160(mask4)

-             188:     10(int) BitwiseXor 186 187

-             189:    22(bool) IEqual 188 155

-                              SelectionMerge 191 None

-                              BranchConditional 189 190 191

-             190:               Label

-             192:      6(int)   Load 8(count)

-             193:      6(int)   IMul 192 42

-                                Store 8(count) 193

-                                Branch 191

-             191:             Label

-             194:      6(int) Load 8(count)

-             195:     10(int) Bitcast 194

-             196:   66(ivec4) CompositeConstruct 195 195 195 195

-             197:   66(ivec4) Load 68(c)

-             198:   66(ivec4) IAdd 197 196

-                              Store 68(c) 198

-                              Return

-                              FunctionEnd

+spv.uint.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 207
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 15 200 77 68
+                              ExecutionMode 4 OriginLowerLeft
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "count"
+                              Name 12  "u"
+                              Name 15  "t"
+                              Name 55  "shiftedii"
+                              Name 57  "shiftedui"
+                              Name 59  "shiftediu"
+                              Name 60  "shifteduu"
+                              Name 68  "c"
+                              Name 72  "usampler"
+                              Name 77  "tc"
+                              Name 111  "af"
+                              Name 115  "ab"
+                              Name 118  "ai"
+                              Name 152  "mask1"
+                              Name 154  "mask2"
+                              Name 156  "mask3"
+                              Name 160  "mask4"
+                              Name 200  "f"
+                              Name 202  "v"
+                              Name 204  "i"
+                              Name 206  "b"
+                              Decorate 8(count) RelaxedPrecision
+                              Decorate 12(u) RelaxedPrecision
+                              Decorate 15(t) RelaxedPrecision
+                              Decorate 15(t) Flat
+                              Decorate 55(shiftedii) RelaxedPrecision
+                              Decorate 57(shiftedui) RelaxedPrecision
+                              Decorate 59(shiftediu) RelaxedPrecision
+                              Decorate 60(shifteduu) RelaxedPrecision
+                              Decorate 68(c) RelaxedPrecision
+                              Decorate 72(usampler) RelaxedPrecision
+                              Decorate 77(tc) RelaxedPrecision
+                              Decorate 111(af) RelaxedPrecision
+                              Decorate 118(ai) RelaxedPrecision
+                              Decorate 152(mask1) RelaxedPrecision
+                              Decorate 154(mask2) RelaxedPrecision
+                              Decorate 156(mask3) RelaxedPrecision
+                              Decorate 160(mask4) RelaxedPrecision
+                              Decorate 200(f) RelaxedPrecision
+                              Decorate 202(v) RelaxedPrecision
+                              Decorate 204(i) RelaxedPrecision
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 1
+              10:             TypeInt 32 0
+              11:             TypePointer Function 10(int)
+              13:             TypeVector 10(int) 2
+              14:             TypePointer Input 13(ivec2)
+           15(t):     14(ptr) Variable Input
+              16:     10(int) Constant 1
+              17:             TypePointer Input 10(int)
+              20:     10(int) Constant 3
+              22:             TypeBool
+              23:    22(bool) ConstantTrue
+              26:      6(int) Constant 2
+              31:      6(int) Constant 3
+              34:    22(bool) ConstantFalse
+              37:      6(int) Constant 5
+              42:      6(int) Constant 7
+              47:      6(int) Constant 11
+              52:      6(int) Constant 13
+              56:      6(int) Constant 4294967295
+              58:     10(int) Constant 4194303
+              66:             TypeVector 10(int) 4
+              67:             TypePointer Output 66(ivec4)
+           68(c):     67(ptr) Variable Output
+              69:             TypeImage 10(int) 2D sampled format:Unknown
+              70:             TypeSampledImage 69
+              71:             TypePointer UniformConstant 70
+    72(usampler):     71(ptr) Variable UniformConstant
+              74:             TypeFloat 32
+              75:             TypeVector 74(float) 2
+              76:             TypePointer Input 75(fvec2)
+          77(tc):     76(ptr) Variable Input
+              87:   74(float) Constant 1065353216
+              99:   74(float) Constant 1073741824
+             100:   75(fvec2) ConstantComposite 99 99
+             103:     10(int) Constant 0
+             106:     10(int) Constant 4
+             110:             TypePointer Function 74(float)
+             114:             TypePointer Function 22(bool)
+             134:      6(int) Constant 17
+             139:      6(int) Constant 19
+             144:      6(int) Constant 23
+             149:      6(int) Constant 27
+             153:     10(int) Constant 161
+             155:     10(int) Constant 2576
+             158:      6(int) Constant 4
+             161:     10(int) Constant 2737
+             199:             TypePointer Input 74(float)
+          200(f):    199(ptr) Variable Input
+             201:             TypePointer UniformConstant 66(ivec4)
+          202(v):    201(ptr) Variable UniformConstant
+             203:             TypePointer UniformConstant 6(int)
+          204(i):    203(ptr) Variable UniformConstant
+             205:             TypePointer UniformConstant 22(bool)
+          206(b):    205(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+        8(count):      7(ptr) Variable Function
+           12(u):     11(ptr) Variable Function
+   55(shiftedii):      7(ptr) Variable Function
+   57(shiftedui):     11(ptr) Variable Function
+   59(shiftediu):      7(ptr) Variable Function
+   60(shifteduu):     11(ptr) Variable Function
+         111(af):    110(ptr) Variable Function
+         115(ab):    114(ptr) Variable Function
+         118(ai):      7(ptr) Variable Function
+      152(mask1):     11(ptr) Variable Function
+      154(mask2):     11(ptr) Variable Function
+      156(mask3):     11(ptr) Variable Function
+      160(mask4):     11(ptr) Variable Function
+                              Store 8(count) 9
+              18:     17(ptr) AccessChain 15(t) 16
+              19:     10(int) Load 18
+              21:     10(int) IAdd 19 20
+                              Store 12(u) 21
+                              SelectionMerge 25 None
+                              BranchConditional 23 24 25
+              24:               Label
+              27:      6(int)   Load 8(count)
+              28:      6(int)   IMul 27 26
+                                Store 8(count) 28
+                                Branch 25
+              25:             Label
+                              SelectionMerge 30 None
+                              BranchConditional 23 29 30
+              29:               Label
+              32:      6(int)   Load 8(count)
+              33:      6(int)   IMul 32 31
+                                Store 8(count) 33
+                                Branch 30
+              30:             Label
+                              SelectionMerge 36 None
+                              BranchConditional 34 35 36
+              35:               Label
+              38:      6(int)   Load 8(count)
+              39:      6(int)   IMul 38 37
+                                Store 8(count) 39
+                                Branch 36
+              36:             Label
+                              SelectionMerge 41 None
+                              BranchConditional 23 40 41
+              40:               Label
+              43:      6(int)   Load 8(count)
+              44:      6(int)   IMul 43 42
+                                Store 8(count) 44
+                                Branch 41
+              41:             Label
+                              SelectionMerge 46 None
+                              BranchConditional 23 45 46
+              45:               Label
+              48:      6(int)   Load 8(count)
+              49:      6(int)   IMul 48 47
+                                Store 8(count) 49
+                                Branch 46
+              46:             Label
+                              SelectionMerge 51 None
+                              BranchConditional 34 50 51
+              50:               Label
+              53:      6(int)   Load 8(count)
+              54:      6(int)   IMul 53 52
+                                Store 8(count) 54
+                                Branch 51
+              51:             Label
+                              Store 55(shiftedii) 56
+                              Store 57(shiftedui) 58
+                              Store 59(shiftediu) 56
+                              Store 60(shifteduu) 58
+              61:      6(int) Load 55(shiftedii)
+              62:      6(int) Load 59(shiftediu)
+              63:    22(bool) IEqual 61 62
+                              SelectionMerge 65 None
+                              BranchConditional 63 64 65
+              64:               Label
+              73:          70   Load 72(usampler)
+              78:   75(fvec2)   Load 77(tc)
+              79:   66(ivec4)   ImageSampleImplicitLod 73 78
+                                Store 68(c) 79
+                                Branch 65
+              65:             Label
+              80:     10(int) Load 57(shiftedui)
+              81:     10(int) Load 60(shifteduu)
+              82:    22(bool) IEqual 80 81
+                              SelectionMerge 84 None
+                              BranchConditional 82 83 84
+              83:               Label
+              85:          70   Load 72(usampler)
+              86:   75(fvec2)   Load 77(tc)
+              88:   75(fvec2)   CompositeConstruct 87 87
+              89:   75(fvec2)   FAdd 86 88
+              90:   66(ivec4)   ImageSampleImplicitLod 85 89
+                                Store 68(c) 90
+                                Branch 84
+              84:             Label
+              91:      6(int) Load 55(shiftedii)
+              92:     10(int) Load 57(shiftedui)
+              93:      6(int) Bitcast 92
+              94:    22(bool) IEqual 91 93
+                              SelectionMerge 96 None
+                              BranchConditional 94 95 96
+              95:               Label
+              97:          70   Load 72(usampler)
+              98:   75(fvec2)   Load 77(tc)
+             101:   75(fvec2)   FSub 98 100
+             102:   66(ivec4)   ImageSampleImplicitLod 97 101
+                                Store 68(c) 102
+                                Branch 96
+              96:             Label
+             104:     17(ptr) AccessChain 15(t) 103
+             105:     10(int) Load 104
+             107:    22(bool) UGreaterThan 105 106
+                              SelectionMerge 109 None
+                              BranchConditional 107 108 109
+             108:               Label
+             112:     10(int)   Load 12(u)
+             113:   74(float)   ConvertUToF 112
+                                Store 111(af) 113
+             116:     10(int)   Load 12(u)
+             117:    22(bool)   INotEqual 116 103
+                                Store 115(ab) 117
+             119:     10(int)   Load 12(u)
+             120:      6(int)   Bitcast 119
+                                Store 118(ai) 120
+             121:   74(float)   Load 111(af)
+             122:     10(int)   ConvertFToU 121
+             123:    22(bool)   Load 115(ab)
+             124:     10(int)   Select 123 16 103
+             125:      6(int)   Load 118(ai)
+             126:     10(int)   Bitcast 125
+             127:      6(int)   Load 8(count)
+             128:     10(int)   Bitcast 127
+             129:   66(ivec4)   CompositeConstruct 122 124 126 128
+             130:   66(ivec4)   Load 68(c)
+             131:   66(ivec4)   IAdd 130 129
+                                Store 68(c) 131
+                                Branch 109
+             109:             Label
+                              SelectionMerge 133 None
+                              BranchConditional 23 132 133
+             132:               Label
+             135:      6(int)   Load 8(count)
+             136:      6(int)   IMul 135 134
+                                Store 8(count) 136
+                                Branch 133
+             133:             Label
+                              SelectionMerge 138 None
+                              BranchConditional 34 137 138
+             137:               Label
+             140:      6(int)   Load 8(count)
+             141:      6(int)   IMul 140 139
+                                Store 8(count) 141
+                                Branch 138
+             138:             Label
+                              SelectionMerge 143 None
+                              BranchConditional 23 142 143
+             142:               Label
+             145:      6(int)   Load 8(count)
+             146:      6(int)   IMul 145 144
+                                Store 8(count) 146
+                                Branch 143
+             143:             Label
+                              SelectionMerge 148 None
+                              BranchConditional 23 147 148
+             147:               Label
+             150:      6(int)   Load 8(count)
+             151:      6(int)   IMul 150 149
+                                Store 8(count) 151
+                                Branch 148
+             148:             Label
+                              Store 152(mask1) 153
+                              Store 154(mask2) 155
+             157:     10(int) Load 152(mask1)
+             159:     10(int) ShiftLeftLogical 157 158
+                              Store 156(mask3) 159
+                              Store 160(mask4) 161
+             162:     10(int) Load 156(mask3)
+             163:     10(int) Load 154(mask2)
+             164:    22(bool) IEqual 162 163
+                              SelectionMerge 166 None
+                              BranchConditional 164 165 166
+             165:               Label
+             167:      6(int)   Load 8(count)
+             168:      6(int)   IMul 167 26
+                                Store 8(count) 168
+                                Branch 166
+             166:             Label
+             169:     10(int) Load 156(mask3)
+             170:     10(int) Load 152(mask1)
+             171:     10(int) BitwiseAnd 169 170
+             172:    22(bool) INotEqual 171 103
+                              SelectionMerge 174 None
+                              BranchConditional 172 173 174
+             173:               Label
+             175:      6(int)   Load 8(count)
+             176:      6(int)   IMul 175 31
+                                Store 8(count) 176
+                                Branch 174
+             174:             Label
+             177:     10(int) Load 152(mask1)
+             178:     10(int) Load 156(mask3)
+             179:     10(int) BitwiseOr 177 178
+             180:     10(int) Load 160(mask4)
+             181:    22(bool) IEqual 179 180
+                              SelectionMerge 183 None
+                              BranchConditional 181 182 183
+             182:               Label
+             184:      6(int)   Load 8(count)
+             185:      6(int)   IMul 184 37
+                                Store 8(count) 185
+                                Branch 183
+             183:             Label
+             186:     10(int) Load 152(mask1)
+             187:     10(int) Load 160(mask4)
+             188:     10(int) BitwiseXor 186 187
+             189:    22(bool) IEqual 188 155
+                              SelectionMerge 191 None
+                              BranchConditional 189 190 191
+             190:               Label
+             192:      6(int)   Load 8(count)
+             193:      6(int)   IMul 192 42
+                                Store 8(count) 193
+                                Branch 191
+             191:             Label
+             194:      6(int) Load 8(count)
+             195:     10(int) Bitcast 194
+             196:   66(ivec4) CompositeConstruct 195 195 195 195
+             197:   66(ivec4) Load 68(c)
+             198:   66(ivec4) IAdd 197 196
+                              Store 68(c) 198
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out
index 03439d9..6acf265 100755
--- a/Test/baseResults/spv.uniformArray.frag.out
+++ b/Test/baseResults/spv.uniformArray.frag.out
@@ -1,79 +1,79 @@
-spv.uniformArray.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 53

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main"

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "texColor"

-                              Name 14  "color"

-                              Name 25  "inColor"

-                              Name 35  "alpha"

-                              Name 47  "gl_FragColor"

-                              Name 52  "texSampler2D"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypeInt 32 0

-              11:     10(int) Constant 6

-              12:             TypeArray 7(fvec4) 11

-              13:             TypePointer UniformConstant 12

-       14(color):     13(ptr) Variable UniformConstant

-              15:             TypeInt 32 1

-              16:     15(int) Constant 1

-              17:             TypePointer UniformConstant 7(fvec4)

-              23:             TypeVector 6(float) 3

-              24:             TypePointer UniformConstant 23(fvec3)

-     25(inColor):     24(ptr) Variable UniformConstant

-              32:     10(int) Constant 16

-              33:             TypeArray 6(float) 32

-              34:             TypePointer UniformConstant 33

-       35(alpha):     34(ptr) Variable UniformConstant

-              36:     15(int) Constant 12

-              37:             TypePointer UniformConstant 6(float)

-              40:     10(int) Constant 3

-              41:             TypePointer Function 6(float)

-              46:             TypePointer Output 7(fvec4)

-47(gl_FragColor):     46(ptr) Variable Output

-              49:             TypeImage 6(float) 2D sampled format:Unknown

-              50:             TypeSampledImage 49

-              51:             TypePointer UniformConstant 50

-52(texSampler2D):     51(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-     9(texColor):      8(ptr) Variable Function

-              18:     17(ptr) AccessChain 14(color) 16

-              19:    7(fvec4) Load 18

-              20:     17(ptr) AccessChain 14(color) 16

-              21:    7(fvec4) Load 20

-              22:    7(fvec4) FAdd 19 21

-                              Store 9(texColor) 22

-              26:   23(fvec3) Load 25(inColor)

-              27:    7(fvec4) Load 9(texColor)

-              28:   23(fvec3) VectorShuffle 27 27 0 1 2

-              29:   23(fvec3) FAdd 28 26

-              30:    7(fvec4) Load 9(texColor)

-              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3

-                              Store 9(texColor) 31

-              38:     37(ptr) AccessChain 35(alpha) 36

-              39:    6(float) Load 38

-              42:     41(ptr) AccessChain 9(texColor) 40

-              43:    6(float) Load 42

-              44:    6(float) FAdd 43 39

-              45:     41(ptr) AccessChain 9(texColor) 40

-                              Store 45 44

-              48:    7(fvec4) Load 9(texColor)

-                              Store 47(gl_FragColor) 48

-                              Return

-                              FunctionEnd

+spv.uniformArray.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 53
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main"
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "texColor"
+                              Name 14  "color"
+                              Name 25  "inColor"
+                              Name 35  "alpha"
+                              Name 47  "gl_FragColor"
+                              Name 52  "texSampler2D"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypeInt 32 0
+              11:     10(int) Constant 6
+              12:             TypeArray 7(fvec4) 11
+              13:             TypePointer UniformConstant 12
+       14(color):     13(ptr) Variable UniformConstant
+              15:             TypeInt 32 1
+              16:     15(int) Constant 1
+              17:             TypePointer UniformConstant 7(fvec4)
+              23:             TypeVector 6(float) 3
+              24:             TypePointer UniformConstant 23(fvec3)
+     25(inColor):     24(ptr) Variable UniformConstant
+              32:     10(int) Constant 16
+              33:             TypeArray 6(float) 32
+              34:             TypePointer UniformConstant 33
+       35(alpha):     34(ptr) Variable UniformConstant
+              36:     15(int) Constant 12
+              37:             TypePointer UniformConstant 6(float)
+              40:     10(int) Constant 3
+              41:             TypePointer Function 6(float)
+              46:             TypePointer Output 7(fvec4)
+47(gl_FragColor):     46(ptr) Variable Output
+              49:             TypeImage 6(float) 2D sampled format:Unknown
+              50:             TypeSampledImage 49
+              51:             TypePointer UniformConstant 50
+52(texSampler2D):     51(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+     9(texColor):      8(ptr) Variable Function
+              18:     17(ptr) AccessChain 14(color) 16
+              19:    7(fvec4) Load 18
+              20:     17(ptr) AccessChain 14(color) 16
+              21:    7(fvec4) Load 20
+              22:    7(fvec4) FAdd 19 21
+                              Store 9(texColor) 22
+              26:   23(fvec3) Load 25(inColor)
+              27:    7(fvec4) Load 9(texColor)
+              28:   23(fvec3) VectorShuffle 27 27 0 1 2
+              29:   23(fvec3) FAdd 28 26
+              30:    7(fvec4) Load 9(texColor)
+              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3
+                              Store 9(texColor) 31
+              38:     37(ptr) AccessChain 35(alpha) 36
+              39:    6(float) Load 38
+              42:     41(ptr) AccessChain 9(texColor) 40
+              43:    6(float) Load 42
+              44:    6(float) FAdd 43 39
+              45:     41(ptr) AccessChain 9(texColor) 40
+                              Store 45 44
+              48:    7(fvec4) Load 9(texColor)
+                              Store 47(gl_FragColor) 48
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out
index 1aa0871..ab3f27a 100755
--- a/Test/baseResults/spv.variableArrayIndex.frag.out
+++ b/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -1,144 +1,144 @@
-spv.variableArrayIndex.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 93

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 63

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 8  "iLocal"

-                              Name 10  "Count"

-                              Name 13  "lunarStruct1"

-                              MemberName 13(lunarStruct1) 0  "i"

-                              MemberName 13(lunarStruct1) 1  "f"

-                              Name 14  "lunarStruct2"

-                              MemberName 14(lunarStruct2) 0  "i"

-                              MemberName 14(lunarStruct2) 1  "f"

-                              MemberName 14(lunarStruct2) 2  "s1_1"

-                              Name 18  "lunarStruct3"

-                              MemberName 18(lunarStruct3) 0  "s2_1"

-                              MemberName 18(lunarStruct3) 1  "i"

-                              MemberName 18(lunarStruct3) 2  "f"

-                              MemberName 18(lunarStruct3) 3  "s1_1"

-                              Name 20  "foo3"

-                              Name 30  "scale"

-                              Name 34  "foo2"

-                              Name 36  "foo"

-                              Name 54  "gl_FragColor"

-                              Name 59  "samp2D"

-                              Name 63  "coord"

-                              Name 69  "constructed"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:             TypePointer UniformConstant 6(int)

-       10(Count):      9(ptr) Variable UniformConstant

-              12:             TypeFloat 32

-13(lunarStruct1):             TypeStruct 6(int) 12(float)

-14(lunarStruct2):             TypeStruct 6(int) 12(float) 13(lunarStruct1)

-              15:             TypeInt 32 0

-              16:     15(int) Constant 3

-              17:             TypeArray 14(lunarStruct2) 16

-18(lunarStruct3):             TypeStruct 17 6(int) 12(float) 13(lunarStruct1)

-              19:             TypePointer UniformConstant 18(lunarStruct3)

-        20(foo3):     19(ptr) Variable UniformConstant

-              21:      6(int) Constant 0

-              22:      6(int) Constant 1

-              25:             TypeBool

-              29:             TypePointer Function 12(float)

-              31:     15(int) Constant 5

-              32:             TypeArray 14(lunarStruct2) 31

-              33:             TypePointer UniformConstant 32

-        34(foo2):     33(ptr) Variable UniformConstant

-              35:             TypePointer UniformConstant 13(lunarStruct1)

-         36(foo):     35(ptr) Variable UniformConstant

-              41:      6(int) Constant 2

-              46:             TypePointer UniformConstant 12(float)

-              52:             TypeVector 12(float) 4

-              53:             TypePointer Output 52(fvec4)

-54(gl_FragColor):     53(ptr) Variable Output

-              56:             TypeImage 12(float) 2D sampled format:Unknown

-              57:             TypeSampledImage 56

-              58:             TypePointer UniformConstant 57

-      59(samp2D):     58(ptr) Variable UniformConstant

-              61:             TypeVector 12(float) 2

-              62:             TypePointer Input 61(fvec2)

-       63(coord):     62(ptr) Variable Input

-              67:             TypeArray 61(fvec2) 16

-              68:             TypePointer Function 67

-              73:   12(float) Constant 1065353216

-              74:   12(float) Constant 1073741824

-              75:   61(fvec2) ConstantComposite 73 74

-              79:             TypePointer Function 61(fvec2)

-         4(main):           2 Function None 3

-               5:             Label

-       8(iLocal):      7(ptr) Variable Function

-       30(scale):     29(ptr) Variable Function

- 69(constructed):     68(ptr) Variable Function

-              11:      6(int) Load 10(Count)

-                              Store 8(iLocal) 11

-              23:      9(ptr) AccessChain 20(foo3) 21 22 21

-              24:      6(int) Load 23

-              26:    25(bool) SGreaterThan 24 21

-                              SelectionMerge 28 None

-                              BranchConditional 26 27 49

-              27:               Label

-              37:      9(ptr)   AccessChain 36(foo) 21

-              38:      6(int)   Load 37

-              39:      9(ptr)   AccessChain 20(foo3) 21 38 21

-              40:      6(int)   Load 39

-              42:      6(int)   IAdd 40 41

-              43:      6(int)   Load 8(iLocal)

-              44:      6(int)   IAdd 43 22

-                                Store 8(iLocal) 44

-              45:      6(int)   IAdd 42 44

-              47:     46(ptr)   AccessChain 34(foo2) 45 41 22

-              48:   12(float)   Load 47

-                                Store 30(scale) 48

-                                Branch 28

-              49:               Label

-              50:     46(ptr)   AccessChain 20(foo3) 21 21 41 22

-              51:   12(float)   Load 50

-                                Store 30(scale) 51

-                                Branch 28

-              28:             Label

-              55:   12(float) Load 30(scale)

-              60:          57 Load 59(samp2D)

-              64:   61(fvec2) Load 63(coord)

-              65:   52(fvec4) ImageSampleImplicitLod 60 64

-              66:   52(fvec4) VectorTimesScalar 65 55

-                              Store 54(gl_FragColor) 66

-              70:   61(fvec2) Load 63(coord)

-              71:   12(float) Load 30(scale)

-              72:   61(fvec2) CompositeConstruct 71 71

-              76:          67 CompositeConstruct 70 72 75

-                              Store 69(constructed) 76

-              77:      9(ptr) AccessChain 36(foo) 21

-              78:      6(int) Load 77

-              80:     79(ptr) AccessChain 69(constructed) 78

-              81:   61(fvec2) Load 80

-              82:      9(ptr) AccessChain 36(foo) 21

-              83:      6(int) Load 82

-              84:     79(ptr) AccessChain 69(constructed) 83

-              85:   61(fvec2) Load 84

-              86:   12(float) CompositeExtract 81 0

-              87:   12(float) CompositeExtract 81 1

-              88:   12(float) CompositeExtract 85 0

-              89:   12(float) CompositeExtract 85 1

-              90:   52(fvec4) CompositeConstruct 86 87 88 89

-              91:   52(fvec4) Load 54(gl_FragColor)

-              92:   52(fvec4) FAdd 91 90

-                              Store 54(gl_FragColor) 92

-                              Return

-                              FunctionEnd

+spv.variableArrayIndex.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 93
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 63
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 8  "iLocal"
+                              Name 10  "Count"
+                              Name 13  "lunarStruct1"
+                              MemberName 13(lunarStruct1) 0  "i"
+                              MemberName 13(lunarStruct1) 1  "f"
+                              Name 14  "lunarStruct2"
+                              MemberName 14(lunarStruct2) 0  "i"
+                              MemberName 14(lunarStruct2) 1  "f"
+                              MemberName 14(lunarStruct2) 2  "s1_1"
+                              Name 18  "lunarStruct3"
+                              MemberName 18(lunarStruct3) 0  "s2_1"
+                              MemberName 18(lunarStruct3) 1  "i"
+                              MemberName 18(lunarStruct3) 2  "f"
+                              MemberName 18(lunarStruct3) 3  "s1_1"
+                              Name 20  "foo3"
+                              Name 30  "scale"
+                              Name 34  "foo2"
+                              Name 36  "foo"
+                              Name 54  "gl_FragColor"
+                              Name 59  "samp2D"
+                              Name 63  "coord"
+                              Name 69  "constructed"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:             TypePointer UniformConstant 6(int)
+       10(Count):      9(ptr) Variable UniformConstant
+              12:             TypeFloat 32
+13(lunarStruct1):             TypeStruct 6(int) 12(float)
+14(lunarStruct2):             TypeStruct 6(int) 12(float) 13(lunarStruct1)
+              15:             TypeInt 32 0
+              16:     15(int) Constant 3
+              17:             TypeArray 14(lunarStruct2) 16
+18(lunarStruct3):             TypeStruct 17 6(int) 12(float) 13(lunarStruct1)
+              19:             TypePointer UniformConstant 18(lunarStruct3)
+        20(foo3):     19(ptr) Variable UniformConstant
+              21:      6(int) Constant 0
+              22:      6(int) Constant 1
+              25:             TypeBool
+              29:             TypePointer Function 12(float)
+              31:     15(int) Constant 5
+              32:             TypeArray 14(lunarStruct2) 31
+              33:             TypePointer UniformConstant 32
+        34(foo2):     33(ptr) Variable UniformConstant
+              35:             TypePointer UniformConstant 13(lunarStruct1)
+         36(foo):     35(ptr) Variable UniformConstant
+              41:      6(int) Constant 2
+              46:             TypePointer UniformConstant 12(float)
+              52:             TypeVector 12(float) 4
+              53:             TypePointer Output 52(fvec4)
+54(gl_FragColor):     53(ptr) Variable Output
+              56:             TypeImage 12(float) 2D sampled format:Unknown
+              57:             TypeSampledImage 56
+              58:             TypePointer UniformConstant 57
+      59(samp2D):     58(ptr) Variable UniformConstant
+              61:             TypeVector 12(float) 2
+              62:             TypePointer Input 61(fvec2)
+       63(coord):     62(ptr) Variable Input
+              67:             TypeArray 61(fvec2) 16
+              68:             TypePointer Function 67
+              73:   12(float) Constant 1065353216
+              74:   12(float) Constant 1073741824
+              75:   61(fvec2) ConstantComposite 73 74
+              79:             TypePointer Function 61(fvec2)
+         4(main):           2 Function None 3
+               5:             Label
+       8(iLocal):      7(ptr) Variable Function
+       30(scale):     29(ptr) Variable Function
+ 69(constructed):     68(ptr) Variable Function
+              11:      6(int) Load 10(Count)
+                              Store 8(iLocal) 11
+              23:      9(ptr) AccessChain 20(foo3) 21 22 21
+              24:      6(int) Load 23
+              26:    25(bool) SGreaterThan 24 21
+                              SelectionMerge 28 None
+                              BranchConditional 26 27 49
+              27:               Label
+              37:      9(ptr)   AccessChain 36(foo) 21
+              38:      6(int)   Load 37
+              39:      9(ptr)   AccessChain 20(foo3) 21 38 21
+              40:      6(int)   Load 39
+              42:      6(int)   IAdd 40 41
+              43:      6(int)   Load 8(iLocal)
+              44:      6(int)   IAdd 43 22
+                                Store 8(iLocal) 44
+              45:      6(int)   IAdd 42 44
+              47:     46(ptr)   AccessChain 34(foo2) 45 41 22
+              48:   12(float)   Load 47
+                                Store 30(scale) 48
+                                Branch 28
+              49:               Label
+              50:     46(ptr)   AccessChain 20(foo3) 21 21 41 22
+              51:   12(float)   Load 50
+                                Store 30(scale) 51
+                                Branch 28
+              28:             Label
+              55:   12(float) Load 30(scale)
+              60:          57 Load 59(samp2D)
+              64:   61(fvec2) Load 63(coord)
+              65:   52(fvec4) ImageSampleImplicitLod 60 64
+              66:   52(fvec4) VectorTimesScalar 65 55
+                              Store 54(gl_FragColor) 66
+              70:   61(fvec2) Load 63(coord)
+              71:   12(float) Load 30(scale)
+              72:   61(fvec2) CompositeConstruct 71 71
+              76:          67 CompositeConstruct 70 72 75
+                              Store 69(constructed) 76
+              77:      9(ptr) AccessChain 36(foo) 21
+              78:      6(int) Load 77
+              80:     79(ptr) AccessChain 69(constructed) 78
+              81:   61(fvec2) Load 80
+              82:      9(ptr) AccessChain 36(foo) 21
+              83:      6(int) Load 82
+              84:     79(ptr) AccessChain 69(constructed) 83
+              85:   61(fvec2) Load 84
+              86:   12(float) CompositeExtract 81 0
+              87:   12(float) CompositeExtract 81 1
+              88:   12(float) CompositeExtract 85 0
+              89:   12(float) CompositeExtract 85 1
+              90:   52(fvec4) CompositeConstruct 86 87 88 89
+              91:   52(fvec4) Load 54(gl_FragColor)
+              92:   52(fvec4) FAdd 91 90
+                              Store 54(gl_FragColor) 92
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out
index afadee3..dc0c21b 100755
--- a/Test/baseResults/spv.varyingArray.frag.out
+++ b/Test/baseResults/spv.varyingArray.frag.out
@@ -1,93 +1,93 @@
-spv.varyingArray.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-WARNING: 0:8: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 61

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 34 39 19 19 48

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "texColor"

-                              Name 13  "texSampler2D"

-                              Name 19  "gl_TexCoord"

-                              Name 34  "color"

-                              Name 39  "alpha"

-                              Name 45  "gl_FragColor"

-                              Name 48  "foo"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypeImage 6(float) 2D sampled format:Unknown

-              11:             TypeSampledImage 10

-              12:             TypePointer UniformConstant 11

-13(texSampler2D):     12(ptr) Variable UniformConstant

-              15:             TypeInt 32 0

-              16:     15(int) Constant 6

-              17:             TypeArray 7(fvec4) 16

-              18:             TypePointer Input 17

- 19(gl_TexCoord):     18(ptr) Variable Input

-              20:             TypeInt 32 1

-              21:     20(int) Constant 4

-              22:             TypePointer Input 7(fvec4)

-              25:     20(int) Constant 5

-              29:             TypeVector 6(float) 2

-       34(color):     22(ptr) Variable Input

-              38:             TypePointer Input 6(float)

-       39(alpha):     38(ptr) Variable Input

-              41:     15(int) Constant 3

-              42:             TypePointer Function 6(float)

-              44:             TypePointer Output 7(fvec4)

-45(gl_FragColor):     44(ptr) Variable Output

-              46:             TypeArray 7(fvec4) 41

-              47:             TypePointer Input 46

-         48(foo):     47(ptr) Variable Input

-              49:     20(int) Constant 1

-              52:     20(int) Constant 0

-         4(main):           2 Function None 3

-               5:             Label

-     9(texColor):      8(ptr) Variable Function

-              14:          11 Load 13(texSampler2D)

-              23:     22(ptr) AccessChain 19(gl_TexCoord) 21

-              24:    7(fvec4) Load 23

-              26:     22(ptr) AccessChain 19(gl_TexCoord) 25

-              27:    7(fvec4) Load 26

-              28:    7(fvec4) FAdd 24 27

-              30:    6(float) CompositeExtract 28 0

-              31:    6(float) CompositeExtract 28 1

-              32:   29(fvec2) CompositeConstruct 30 31

-              33:    7(fvec4) ImageSampleImplicitLod 14 32

-                              Store 9(texColor) 33

-              35:    7(fvec4) Load 34(color)

-              36:    7(fvec4) Load 9(texColor)

-              37:    7(fvec4) FAdd 36 35

-                              Store 9(texColor) 37

-              40:    6(float) Load 39(alpha)

-              43:     42(ptr) AccessChain 9(texColor) 41

-                              Store 43 40

-              50:     22(ptr) AccessChain 48(foo) 49

-              51:    7(fvec4) Load 50

-              53:     22(ptr) AccessChain 19(gl_TexCoord) 52

-              54:    7(fvec4) Load 53

-              55:    7(fvec4) FAdd 51 54

-              56:     22(ptr) AccessChain 19(gl_TexCoord) 21

-              57:    7(fvec4) Load 56

-              58:    7(fvec4) FAdd 55 57

-              59:    7(fvec4) Load 9(texColor)

-              60:    7(fvec4) FAdd 58 59

-                              Store 45(gl_FragColor) 60

-                              Return

-                              FunctionEnd

+spv.varyingArray.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:8: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 61
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 34 39 19 19 48
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "texColor"
+                              Name 13  "texSampler2D"
+                              Name 19  "gl_TexCoord"
+                              Name 34  "color"
+                              Name 39  "alpha"
+                              Name 45  "gl_FragColor"
+                              Name 48  "foo"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypeImage 6(float) 2D sampled format:Unknown
+              11:             TypeSampledImage 10
+              12:             TypePointer UniformConstant 11
+13(texSampler2D):     12(ptr) Variable UniformConstant
+              15:             TypeInt 32 0
+              16:     15(int) Constant 6
+              17:             TypeArray 7(fvec4) 16
+              18:             TypePointer Input 17
+ 19(gl_TexCoord):     18(ptr) Variable Input
+              20:             TypeInt 32 1
+              21:     20(int) Constant 4
+              22:             TypePointer Input 7(fvec4)
+              25:     20(int) Constant 5
+              29:             TypeVector 6(float) 2
+       34(color):     22(ptr) Variable Input
+              38:             TypePointer Input 6(float)
+       39(alpha):     38(ptr) Variable Input
+              41:     15(int) Constant 3
+              42:             TypePointer Function 6(float)
+              44:             TypePointer Output 7(fvec4)
+45(gl_FragColor):     44(ptr) Variable Output
+              46:             TypeArray 7(fvec4) 41
+              47:             TypePointer Input 46
+         48(foo):     47(ptr) Variable Input
+              49:     20(int) Constant 1
+              52:     20(int) Constant 0
+         4(main):           2 Function None 3
+               5:             Label
+     9(texColor):      8(ptr) Variable Function
+              14:          11 Load 13(texSampler2D)
+              23:     22(ptr) AccessChain 19(gl_TexCoord) 21
+              24:    7(fvec4) Load 23
+              26:     22(ptr) AccessChain 19(gl_TexCoord) 25
+              27:    7(fvec4) Load 26
+              28:    7(fvec4) FAdd 24 27
+              30:    6(float) CompositeExtract 28 0
+              31:    6(float) CompositeExtract 28 1
+              32:   29(fvec2) CompositeConstruct 30 31
+              33:    7(fvec4) ImageSampleImplicitLod 14 32
+                              Store 9(texColor) 33
+              35:    7(fvec4) Load 34(color)
+              36:    7(fvec4) Load 9(texColor)
+              37:    7(fvec4) FAdd 36 35
+                              Store 9(texColor) 37
+              40:    6(float) Load 39(alpha)
+              43:     42(ptr) AccessChain 9(texColor) 41
+                              Store 43 40
+              50:     22(ptr) AccessChain 48(foo) 49
+              51:    7(fvec4) Load 50
+              53:     22(ptr) AccessChain 19(gl_TexCoord) 52
+              54:    7(fvec4) Load 53
+              55:    7(fvec4) FAdd 51 54
+              56:     22(ptr) AccessChain 19(gl_TexCoord) 21
+              57:    7(fvec4) Load 56
+              58:    7(fvec4) FAdd 55 57
+              59:    7(fvec4) Load 9(texColor)
+              60:    7(fvec4) FAdd 58 59
+                              Store 45(gl_FragColor) 60
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out
index ba5bb2e..024f19b 100755
--- a/Test/baseResults/spv.varyingArrayIndirect.frag.out
+++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -1,104 +1,104 @@
-spv.varyingArrayIndirect.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-WARNING: 0:8: varying deprecated in version 130; may be removed in future release

-

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 70

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 45 50 30 30 19

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 130

-                              Name 4  "main"

-                              Name 9  "texColor"

-                              Name 13  "texSampler2D"

-                              Name 19  "userIn"

-                              Name 22  "b"

-                              Name 30  "gl_TexCoord"

-                              Name 31  "a"

-                              Name 45  "color"

-                              Name 50  "alpha"

-                              Name 56  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypeImage 6(float) 2D sampled format:Unknown

-              11:             TypeSampledImage 10

-              12:             TypePointer UniformConstant 11

-13(texSampler2D):     12(ptr) Variable UniformConstant

-              15:             TypeInt 32 0

-              16:     15(int) Constant 2

-              17:             TypeArray 7(fvec4) 16

-              18:             TypePointer Input 17

-      19(userIn):     18(ptr) Variable Input

-              20:             TypeInt 32 1

-              21:             TypePointer UniformConstant 20(int)

-           22(b):     21(ptr) Variable UniformConstant

-              24:             TypePointer Input 7(fvec4)

-              27:     15(int) Constant 6

-              28:             TypeArray 7(fvec4) 27

-              29:             TypePointer Input 28

- 30(gl_TexCoord):     29(ptr) Variable Input

-           31(a):     21(ptr) Variable UniformConstant

-              36:     20(int) Constant 5

-              40:             TypeVector 6(float) 2

-       45(color):     24(ptr) Variable Input

-              49:             TypePointer Input 6(float)

-       50(alpha):     49(ptr) Variable Input

-              52:     15(int) Constant 3

-              53:             TypePointer Function 6(float)

-              55:             TypePointer Output 7(fvec4)

-56(gl_FragColor):     55(ptr) Variable Output

-              57:     20(int) Constant 0

-         4(main):           2 Function None 3

-               5:             Label

-     9(texColor):      8(ptr) Variable Function

-              14:          11 Load 13(texSampler2D)

-              23:     20(int) Load 22(b)

-              25:     24(ptr) AccessChain 19(userIn) 23

-              26:    7(fvec4) Load 25

-              32:     20(int) Load 31(a)

-              33:     24(ptr) AccessChain 30(gl_TexCoord) 32

-              34:    7(fvec4) Load 33

-              35:    7(fvec4) FAdd 26 34

-              37:     24(ptr) AccessChain 30(gl_TexCoord) 36

-              38:    7(fvec4) Load 37

-              39:    7(fvec4) FAdd 35 38

-              41:    6(float) CompositeExtract 39 0

-              42:    6(float) CompositeExtract 39 1

-              43:   40(fvec2) CompositeConstruct 41 42

-              44:    7(fvec4) ImageSampleImplicitLod 14 43

-                              Store 9(texColor) 44

-              46:    7(fvec4) Load 45(color)

-              47:    7(fvec4) Load 9(texColor)

-              48:    7(fvec4) FAdd 47 46

-                              Store 9(texColor) 48

-              51:    6(float) Load 50(alpha)

-              54:     53(ptr) AccessChain 9(texColor) 52

-                              Store 54 51

-              58:     24(ptr) AccessChain 30(gl_TexCoord) 57

-              59:    7(fvec4) Load 58

-              60:     20(int) Load 22(b)

-              61:     24(ptr) AccessChain 30(gl_TexCoord) 60

-              62:    7(fvec4) Load 61

-              63:    7(fvec4) FAdd 59 62

-              64:    7(fvec4) Load 9(texColor)

-              65:    7(fvec4) FAdd 63 64

-              66:     20(int) Load 31(a)

-              67:     24(ptr) AccessChain 19(userIn) 66

-              68:    7(fvec4) Load 67

-              69:    7(fvec4) FAdd 65 68

-                              Store 56(gl_FragColor) 69

-                              Return

-                              FunctionEnd

+spv.varyingArrayIndirect.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:8: varying deprecated in version 130; may be removed in future release
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 70
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 45 50 30 30 19
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 130
+                              Name 4  "main"
+                              Name 9  "texColor"
+                              Name 13  "texSampler2D"
+                              Name 19  "userIn"
+                              Name 22  "b"
+                              Name 30  "gl_TexCoord"
+                              Name 31  "a"
+                              Name 45  "color"
+                              Name 50  "alpha"
+                              Name 56  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypeImage 6(float) 2D sampled format:Unknown
+              11:             TypeSampledImage 10
+              12:             TypePointer UniformConstant 11
+13(texSampler2D):     12(ptr) Variable UniformConstant
+              15:             TypeInt 32 0
+              16:     15(int) Constant 2
+              17:             TypeArray 7(fvec4) 16
+              18:             TypePointer Input 17
+      19(userIn):     18(ptr) Variable Input
+              20:             TypeInt 32 1
+              21:             TypePointer UniformConstant 20(int)
+           22(b):     21(ptr) Variable UniformConstant
+              24:             TypePointer Input 7(fvec4)
+              27:     15(int) Constant 6
+              28:             TypeArray 7(fvec4) 27
+              29:             TypePointer Input 28
+ 30(gl_TexCoord):     29(ptr) Variable Input
+           31(a):     21(ptr) Variable UniformConstant
+              36:     20(int) Constant 5
+              40:             TypeVector 6(float) 2
+       45(color):     24(ptr) Variable Input
+              49:             TypePointer Input 6(float)
+       50(alpha):     49(ptr) Variable Input
+              52:     15(int) Constant 3
+              53:             TypePointer Function 6(float)
+              55:             TypePointer Output 7(fvec4)
+56(gl_FragColor):     55(ptr) Variable Output
+              57:     20(int) Constant 0
+         4(main):           2 Function None 3
+               5:             Label
+     9(texColor):      8(ptr) Variable Function
+              14:          11 Load 13(texSampler2D)
+              23:     20(int) Load 22(b)
+              25:     24(ptr) AccessChain 19(userIn) 23
+              26:    7(fvec4) Load 25
+              32:     20(int) Load 31(a)
+              33:     24(ptr) AccessChain 30(gl_TexCoord) 32
+              34:    7(fvec4) Load 33
+              35:    7(fvec4) FAdd 26 34
+              37:     24(ptr) AccessChain 30(gl_TexCoord) 36
+              38:    7(fvec4) Load 37
+              39:    7(fvec4) FAdd 35 38
+              41:    6(float) CompositeExtract 39 0
+              42:    6(float) CompositeExtract 39 1
+              43:   40(fvec2) CompositeConstruct 41 42
+              44:    7(fvec4) ImageSampleImplicitLod 14 43
+                              Store 9(texColor) 44
+              46:    7(fvec4) Load 45(color)
+              47:    7(fvec4) Load 9(texColor)
+              48:    7(fvec4) FAdd 47 46
+                              Store 9(texColor) 48
+              51:    6(float) Load 50(alpha)
+              54:     53(ptr) AccessChain 9(texColor) 52
+                              Store 54 51
+              58:     24(ptr) AccessChain 30(gl_TexCoord) 57
+              59:    7(fvec4) Load 58
+              60:     20(int) Load 22(b)
+              61:     24(ptr) AccessChain 30(gl_TexCoord) 60
+              62:    7(fvec4) Load 61
+              63:    7(fvec4) FAdd 59 62
+              64:    7(fvec4) Load 9(texColor)
+              65:    7(fvec4) FAdd 63 64
+              66:     20(int) Load 31(a)
+              67:     24(ptr) AccessChain 19(userIn) 66
+              68:    7(fvec4) Load 67
+              69:    7(fvec4) FAdd 65 68
+                              Store 56(gl_FragColor) 69
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out
index 0fa9565..01e6ce5 100755
--- a/Test/baseResults/spv.voidFunction.frag.out
+++ b/Test/baseResults/spv.voidFunction.frag.out
@@ -1,76 +1,76 @@
-spv.voidFunction.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 44

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 41

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 120

-                              Name 4  "main"

-                              Name 6  "foo("

-                              Name 8  "foo2("

-                              Name 12  "bar"

-                              Name 22  "outColor"

-                              Name 24  "bigColor"

-                              Name 37  "gl_FragColor"

-                              Name 41  "BaseColor"

-                              Name 43  "d"

-               2:             TypeVoid

-               3:             TypeFunction 2

-              10:             TypeFloat 32

-              11:             TypePointer Private 10(float)

-         12(bar):     11(ptr) Variable Private

-              13:   10(float) Constant 1073741824

-              15:   10(float) Constant 1065353216

-              20:             TypeVector 10(float) 4

-              21:             TypePointer Function 20(fvec4)

-              23:             TypePointer UniformConstant 20(fvec4)

-    24(bigColor):     23(ptr) Variable UniformConstant

-              29:             TypeInt 32 0

-              30:     29(int) Constant 0

-              31:             TypePointer Function 10(float)

-              36:             TypePointer Output 20(fvec4)

-37(gl_FragColor):     36(ptr) Variable Output

-              40:             TypePointer Input 20(fvec4)

-   41(BaseColor):     40(ptr) Variable Input

-              42:             TypePointer UniformConstant 10(float)

-           43(d):     42(ptr) Variable UniformConstant

-         4(main):           2 Function None 3

-               5:             Label

-    22(outColor):     21(ptr) Variable Function

-                              Store 12(bar) 13

-              25:   20(fvec4) Load 24(bigColor)

-                              Store 22(outColor) 25

-              26:           2 FunctionCall 6(foo()

-              27:           2 FunctionCall 8(foo2()

-              28:   10(float) Load 12(bar)

-              32:     31(ptr) AccessChain 22(outColor) 30

-              33:   10(float) Load 32

-              34:   10(float) FAdd 33 28

-              35:     31(ptr) AccessChain 22(outColor) 30

-                              Store 35 34

-              38:   20(fvec4) Load 22(outColor)

-                              Store 37(gl_FragColor) 38

-                              Return

-                              FunctionEnd

-         6(foo():           2 Function None 3

-               7:             Label

-              14:   10(float) Load 12(bar)

-              16:   10(float) FAdd 14 15

-                              Store 12(bar) 16

-                              Return

-                              FunctionEnd

-        8(foo2():           2 Function None 3

-               9:             Label

-              18:   10(float) Load 12(bar)

-              19:   10(float) FAdd 18 15

-                              Store 12(bar) 19

-                              Return

-                              FunctionEnd

+spv.voidFunction.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 44
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 41
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 120
+                              Name 4  "main"
+                              Name 6  "foo("
+                              Name 8  "foo2("
+                              Name 12  "bar"
+                              Name 22  "outColor"
+                              Name 24  "bigColor"
+                              Name 37  "gl_FragColor"
+                              Name 41  "BaseColor"
+                              Name 43  "d"
+               2:             TypeVoid
+               3:             TypeFunction 2
+              10:             TypeFloat 32
+              11:             TypePointer Private 10(float)
+         12(bar):     11(ptr) Variable Private
+              13:   10(float) Constant 1073741824
+              15:   10(float) Constant 1065353216
+              20:             TypeVector 10(float) 4
+              21:             TypePointer Function 20(fvec4)
+              23:             TypePointer UniformConstant 20(fvec4)
+    24(bigColor):     23(ptr) Variable UniformConstant
+              29:             TypeInt 32 0
+              30:     29(int) Constant 0
+              31:             TypePointer Function 10(float)
+              36:             TypePointer Output 20(fvec4)
+37(gl_FragColor):     36(ptr) Variable Output
+              40:             TypePointer Input 20(fvec4)
+   41(BaseColor):     40(ptr) Variable Input
+              42:             TypePointer UniformConstant 10(float)
+           43(d):     42(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+    22(outColor):     21(ptr) Variable Function
+                              Store 12(bar) 13
+              25:   20(fvec4) Load 24(bigColor)
+                              Store 22(outColor) 25
+              26:           2 FunctionCall 6(foo()
+              27:           2 FunctionCall 8(foo2()
+              28:   10(float) Load 12(bar)
+              32:     31(ptr) AccessChain 22(outColor) 30
+              33:   10(float) Load 32
+              34:   10(float) FAdd 33 28
+              35:     31(ptr) AccessChain 22(outColor) 30
+                              Store 35 34
+              38:   20(fvec4) Load 22(outColor)
+                              Store 37(gl_FragColor) 38
+                              Return
+                              FunctionEnd
+         6(foo():           2 Function None 3
+               7:             Label
+              14:   10(float) Load 12(bar)
+              16:   10(float) FAdd 14 15
+                              Store 12(bar) 16
+                              Return
+                              FunctionEnd
+        8(foo2():           2 Function None 3
+               9:             Label
+              18:   10(float) Load 12(bar)
+              19:   10(float) FAdd 18 15
+                              Store 12(bar) 19
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out
index 5305b98..5d6094f 100755
--- a/Test/baseResults/spv.while-continue-break.vert.out
+++ b/Test/baseResults/spv.while-continue-break.vert.out
@@ -1,86 +1,86 @@
-spv.while-continue-break.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 42

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 40 41

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 17  "A"

-                              Name 25  "B"

-                              Name 27  "C"

-                              Name 37  "D"

-                              Name 40  "gl_VertexID"

-                              Name 41  "gl_InstanceID"

-                              Decorate 40(gl_VertexID) BuiltIn VertexId

-                              Decorate 41(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 0

-              14:      6(int) Constant 10

-              15:             TypeBool

-              18:      6(int) Constant 1

-              20:      6(int) Constant 2

-              29:      6(int) Constant 5

-              38:      6(int) Constant 3

-              39:             TypePointer Input 6(int)

- 40(gl_VertexID):     39(ptr) Variable Input

-41(gl_InstanceID):     39(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-           17(A):      7(ptr) Variable Function

-           25(B):      7(ptr) Variable Function

-           27(C):      7(ptr) Variable Function

-           37(D):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:      6(int) Load 8(i)

-              16:    15(bool) SLessThan 13 14

-                              LoopMerge 11 10 None

-                              BranchConditional 16 12 11

-              12:               Label

-                                Store 17(A) 18

-              19:      6(int)   Load 8(i)

-              21:      6(int)   SMod 19 20

-              22:    15(bool)   IEqual 21 9

-                                SelectionMerge 24 None

-                                BranchConditional 22 23 24

-              23:                 Label

-                                  Store 25(B) 20

-                                  Branch 10

-              26:                 Label

-                                  Store 27(C) 20

-                                  Branch 24

-              24:               Label

-              28:      6(int)   Load 8(i)

-              30:      6(int)   SMod 28 29

-              31:    15(bool)   IEqual 30 9

-                                SelectionMerge 33 None

-                                BranchConditional 31 32 33

-              32:                 Label

-                                  Store 25(B) 20

-                                  Branch 11

-              34:                 Label

-                                  Store 27(C) 20

-                                  Branch 33

-              33:               Label

-              35:      6(int)   Load 8(i)

-              36:      6(int)   IAdd 35 18

-                                Store 8(i) 36

-                                Branch 10

-              11:             Label

-                              Store 37(D) 38

-                              Return

-                              FunctionEnd

+spv.while-continue-break.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 42
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 40 41
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 17  "A"
+                              Name 25  "B"
+                              Name 27  "C"
+                              Name 37  "D"
+                              Name 40  "gl_VertexID"
+                              Name 41  "gl_InstanceID"
+                              Decorate 40(gl_VertexID) BuiltIn VertexId
+                              Decorate 41(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 0
+              14:      6(int) Constant 10
+              15:             TypeBool
+              18:      6(int) Constant 1
+              20:      6(int) Constant 2
+              29:      6(int) Constant 5
+              38:      6(int) Constant 3
+              39:             TypePointer Input 6(int)
+ 40(gl_VertexID):     39(ptr) Variable Input
+41(gl_InstanceID):     39(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+           17(A):      7(ptr) Variable Function
+           25(B):      7(ptr) Variable Function
+           27(C):      7(ptr) Variable Function
+           37(D):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:      6(int) Load 8(i)
+              16:    15(bool) SLessThan 13 14
+                              LoopMerge 11 10 None
+                              BranchConditional 16 12 11
+              12:               Label
+                                Store 17(A) 18
+              19:      6(int)   Load 8(i)
+              21:      6(int)   SMod 19 20
+              22:    15(bool)   IEqual 21 9
+                                SelectionMerge 24 None
+                                BranchConditional 22 23 24
+              23:                 Label
+                                  Store 25(B) 20
+                                  Branch 10
+              26:                 Label
+                                  Store 27(C) 20
+                                  Branch 24
+              24:               Label
+              28:      6(int)   Load 8(i)
+              30:      6(int)   SMod 28 29
+              31:    15(bool)   IEqual 30 9
+                                SelectionMerge 33 None
+                                BranchConditional 31 32 33
+              32:                 Label
+                                  Store 25(B) 20
+                                  Branch 11
+              34:                 Label
+                                  Store 27(C) 20
+                                  Branch 33
+              33:               Label
+              35:      6(int)   Load 8(i)
+              36:      6(int)   IAdd 35 18
+                                Store 8(i) 36
+                                Branch 10
+              11:             Label
+                              Store 37(D) 38
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out
index 14d46dd..40acceb 100755
--- a/Test/baseResults/spv.while-simple.vert.out
+++ b/Test/baseResults/spv.while-simple.vert.out
@@ -1,49 +1,49 @@
-spv.while-simple.vert

-

-Linked vertex stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 23

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Vertex 4  "main" 21 22

-                              Source ESSL 300

-                              Name 4  "main"

-                              Name 8  "i"

-                              Name 21  "gl_VertexID"

-                              Name 22  "gl_InstanceID"

-                              Decorate 21(gl_VertexID) BuiltIn VertexId

-                              Decorate 22(gl_InstanceID) BuiltIn InstanceId

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeInt 32 1

-               7:             TypePointer Function 6(int)

-               9:      6(int) Constant 0

-              14:      6(int) Constant 10

-              15:             TypeBool

-              18:      6(int) Constant 1

-              20:             TypePointer Input 6(int)

- 21(gl_VertexID):     20(ptr) Variable Input

-22(gl_InstanceID):     20(ptr) Variable Input

-         4(main):           2 Function None 3

-               5:             Label

-            8(i):      7(ptr) Variable Function

-                              Store 8(i) 9

-                              Branch 10

-              10:             Label

-              13:      6(int) Load 8(i)

-              16:    15(bool) SLessThan 13 14

-                              LoopMerge 11 10 None

-                              BranchConditional 16 12 11

-              12:               Label

-              17:      6(int)   Load 8(i)

-              19:      6(int)   IAdd 17 18

-                                Store 8(i) 19

-                                Branch 10

-              11:             Label

-                              Return

-                              FunctionEnd

+spv.while-simple.vert
+
+Linked vertex stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 23
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 21 22
+                              Source ESSL 300
+                              Name 4  "main"
+                              Name 8  "i"
+                              Name 21  "gl_VertexID"
+                              Name 22  "gl_InstanceID"
+                              Decorate 21(gl_VertexID) BuiltIn VertexId
+                              Decorate 22(gl_InstanceID) BuiltIn InstanceId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               9:      6(int) Constant 0
+              14:      6(int) Constant 10
+              15:             TypeBool
+              18:      6(int) Constant 1
+              20:             TypePointer Input 6(int)
+ 21(gl_VertexID):     20(ptr) Variable Input
+22(gl_InstanceID):     20(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+            8(i):      7(ptr) Variable Function
+                              Store 8(i) 9
+                              Branch 10
+              10:             Label
+              13:      6(int) Load 8(i)
+              16:    15(bool) SLessThan 13 14
+                              LoopMerge 11 10 None
+                              BranchConditional 16 12 11
+              12:               Label
+              17:      6(int)   Load 8(i)
+              19:      6(int)   IAdd 17 18
+                                Store 8(i) 19
+                                Branch 10
+              11:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out
index 591129c..c3b535b 100755
--- a/Test/baseResults/spv.whileLoop.frag.out
+++ b/Test/baseResults/spv.whileLoop.frag.out
@@ -1,62 +1,62 @@
-spv.whileLoop.frag

-

-Linked fragment stage:

-

-

-// Module Version 10000

-// Generated by (magic number): 80001

-// Id's are bound by 34

-

-                              Capability Shader

-               1:             ExtInstImport  "GLSL.std.450"

-                              MemoryModel Logical GLSL450

-                              EntryPoint Fragment 4  "main" 11

-                              ExecutionMode 4 OriginLowerLeft

-                              Source GLSL 110

-                              Name 4  "main"

-                              Name 9  "color"

-                              Name 11  "BaseColor"

-                              Name 22  "d"

-                              Name 27  "bigColor"

-                              Name 32  "gl_FragColor"

-               2:             TypeVoid

-               3:             TypeFunction 2

-               6:             TypeFloat 32

-               7:             TypeVector 6(float) 4

-               8:             TypePointer Function 7(fvec4)

-              10:             TypePointer Input 7(fvec4)

-   11(BaseColor):     10(ptr) Variable Input

-              16:             TypeInt 32 0

-              17:     16(int) Constant 0

-              18:             TypePointer Function 6(float)

-              21:             TypePointer UniformConstant 6(float)

-           22(d):     21(ptr) Variable UniformConstant

-              24:             TypeBool

-              26:             TypePointer UniformConstant 7(fvec4)

-    27(bigColor):     26(ptr) Variable UniformConstant

-              31:             TypePointer Output 7(fvec4)

-32(gl_FragColor):     31(ptr) Variable Output

-         4(main):           2 Function None 3

-               5:             Label

-        9(color):      8(ptr) Variable Function

-              12:    7(fvec4) Load 11(BaseColor)

-                              Store 9(color) 12

-                              Branch 13

-              13:             Label

-              19:     18(ptr) AccessChain 9(color) 17

-              20:    6(float) Load 19

-              23:    6(float) Load 22(d)

-              25:    24(bool) FOrdLessThan 20 23

-                              LoopMerge 14 13 None

-                              BranchConditional 25 15 14

-              15:               Label

-              28:    7(fvec4)   Load 27(bigColor)

-              29:    7(fvec4)   Load 9(color)

-              30:    7(fvec4)   FAdd 29 28

-                                Store 9(color) 30

-                                Branch 13

-              14:             Label

-              33:    7(fvec4) Load 9(color)

-                              Store 32(gl_FragColor) 33

-                              Return

-                              FunctionEnd

+spv.whileLoop.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 34
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 11
+                              ExecutionMode 4 OriginLowerLeft
+                              Source GLSL 110
+                              Name 4  "main"
+                              Name 9  "color"
+                              Name 11  "BaseColor"
+                              Name 22  "d"
+                              Name 27  "bigColor"
+                              Name 32  "gl_FragColor"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:             TypePointer Input 7(fvec4)
+   11(BaseColor):     10(ptr) Variable Input
+              16:             TypeInt 32 0
+              17:     16(int) Constant 0
+              18:             TypePointer Function 6(float)
+              21:             TypePointer UniformConstant 6(float)
+           22(d):     21(ptr) Variable UniformConstant
+              24:             TypeBool
+              26:             TypePointer UniformConstant 7(fvec4)
+    27(bigColor):     26(ptr) Variable UniformConstant
+              31:             TypePointer Output 7(fvec4)
+32(gl_FragColor):     31(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+        9(color):      8(ptr) Variable Function
+              12:    7(fvec4) Load 11(BaseColor)
+                              Store 9(color) 12
+                              Branch 13
+              13:             Label
+              19:     18(ptr) AccessChain 9(color) 17
+              20:    6(float) Load 19
+              23:    6(float) Load 22(d)
+              25:    24(bool) FOrdLessThan 20 23
+                              LoopMerge 14 13 None
+                              BranchConditional 25 15 14
+              15:               Label
+              28:    7(fvec4)   Load 27(bigColor)
+              29:    7(fvec4)   Load 9(color)
+              30:    7(fvec4)   FAdd 29 28
+                                Store 9(color) 30
+                                Branch 13
+              14:             Label
+              33:    7(fvec4) Load 9(color)
+                              Store 32(gl_FragColor) 33
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/structAssignment.frag.out b/Test/baseResults/structAssignment.frag.out
index 8a6b585..75cc44c 100644
--- a/Test/baseResults/structAssignment.frag.out
+++ b/Test/baseResults/structAssignment.frag.out
@@ -1,103 +1,103 @@
-structAssignment.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:29  Function Definition: main( (global void)

-0:29    Function Parameters: 

-0:?     Sequence

-0:33      Test condition and select (temp void)

-0:33        Condition

-0:33        Compare Greater Than (temp bool)

-0:33          i: direct index for structure (global int)

-0:33            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:33              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:33              Constant:

-0:33                0 (const int)

-0:33            Constant:

-0:33              0 (const int)

-0:33          Constant:

-0:33            0 (const int)

-0:33        true case

-0:34        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34          s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34            'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34            Constant:

-0:34              0 (const int)

-0:33        false case

-0:36        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:36          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:36          'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:38      move second child to first child (temp 4-component vector of float)

-0:38        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:38        vector-scale (temp 4-component vector of float)

-0:38          f: direct index for structure (global float)

-0:38            s1_1: direct index for structure (global structure{global int i, global float f})

-0:38              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:38              Constant:

-0:38                2 (const int)

-0:38            Constant:

-0:38              1 (const int)

-0:38          texture (global 4-component vector of float)

-0:38            'sampler' (uniform sampler2D)

-0:38            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo' (uniform structure{global int i, global float f})

-0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:29  Function Definition: main( (global void)

-0:29    Function Parameters: 

-0:?     Sequence

-0:33      Test condition and select (temp void)

-0:33        Condition

-0:33        Compare Greater Than (temp bool)

-0:33          i: direct index for structure (global int)

-0:33            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:33              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:33              Constant:

-0:33                0 (const int)

-0:33            Constant:

-0:33              0 (const int)

-0:33          Constant:

-0:33            0 (const int)

-0:33        true case

-0:34        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34          s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34            'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34            Constant:

-0:34              0 (const int)

-0:33        false case

-0:36        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:36          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:36          'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:38      move second child to first child (temp 4-component vector of float)

-0:38        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:38        vector-scale (temp 4-component vector of float)

-0:38          f: direct index for structure (global float)

-0:38            s1_1: direct index for structure (global structure{global int i, global float f})

-0:38              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:38              Constant:

-0:38                2 (const int)

-0:38            Constant:

-0:38              1 (const int)

-0:38          texture (global 4-component vector of float)

-0:38            'sampler' (uniform sampler2D)

-0:38            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo' (uniform structure{global int i, global float f})

-0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-

+structAssignment.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:29  Function Definition: main( (global void)
+0:29    Function Parameters: 
+0:?     Sequence
+0:33      Test condition and select (temp void)
+0:33        Condition
+0:33        Compare Greater Than (temp bool)
+0:33          i: direct index for structure (global int)
+0:33            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33              Constant:
+0:33                0 (const int)
+0:33            Constant:
+0:33              0 (const int)
+0:33          Constant:
+0:33            0 (const int)
+0:33        true case
+0:34        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34          s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34            'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34            Constant:
+0:34              0 (const int)
+0:33        false case
+0:36        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36          'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38      move second child to first child (temp 4-component vector of float)
+0:38        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:38        vector-scale (temp 4-component vector of float)
+0:38          f: direct index for structure (global float)
+0:38            s1_1: direct index for structure (global structure{global int i, global float f})
+0:38              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38              Constant:
+0:38                2 (const int)
+0:38            Constant:
+0:38              1 (const int)
+0:38          texture (global 4-component vector of float)
+0:38            'sampler' (uniform sampler2D)
+0:38            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo' (uniform structure{global int i, global float f})
+0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:29  Function Definition: main( (global void)
+0:29    Function Parameters: 
+0:?     Sequence
+0:33      Test condition and select (temp void)
+0:33        Condition
+0:33        Compare Greater Than (temp bool)
+0:33          i: direct index for structure (global int)
+0:33            s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33              'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:33              Constant:
+0:33                0 (const int)
+0:33            Constant:
+0:33              0 (const int)
+0:33          Constant:
+0:33            0 (const int)
+0:33        true case
+0:34        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34          s2_1: direct index for structure (global structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34            'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34            Constant:
+0:34              0 (const int)
+0:33        false case
+0:36        move second child to first child (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36          'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:36          'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38      move second child to first child (temp 4-component vector of float)
+0:38        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:38        vector-scale (temp 4-component vector of float)
+0:38          f: direct index for structure (global float)
+0:38            s1_1: direct index for structure (global structure{global int i, global float f})
+0:38              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:38              Constant:
+0:38                2 (const int)
+0:38            Constant:
+0:38              1 (const int)
+0:38          texture (global 4-component vector of float)
+0:38            'sampler' (uniform sampler2D)
+0:38            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo' (uniform structure{global int i, global float f})
+0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'foo3' (uniform structure{global structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+
diff --git a/Test/baseResults/structDeref.frag.out b/Test/baseResults/structDeref.frag.out
index ae52e25..fc9d377 100644
--- a/Test/baseResults/structDeref.frag.out
+++ b/Test/baseResults/structDeref.frag.out
@@ -1,345 +1,345 @@
-structDeref.frag

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:41  Function Definition: main( (global void)

-0:41    Function Parameters: 

-0:?     Sequence

-0:51      Test condition and select (temp void)

-0:51        Condition

-0:51        Compare Greater Than (temp bool)

-0:51          i: direct index for structure (global int)

-0:51            direct index (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:51              s2_1: direct index for structure (global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:51                'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:51                Constant:

-0:51                  0 (const int)

-0:51              Constant:

-0:51                9 (const int)

-0:51            Constant:

-0:51              0 (const int)

-0:51          Constant:

-0:51            0 (const int)

-0:51        true case

-0:52        Sequence

-0:52          move second child to first child (temp float)

-0:52            f: direct index for structure (global float)

-0:52              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:52              Constant:

-0:52                1 (const int)

-0:52            Constant:

-0:52              1.000000

-0:53          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:53            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:53              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:53              Constant:

-0:53                2 (const int)

-0:53            Constant:

-0:53              0 (const int)

-0:53              1.000000

-0:53              0 (const int)

-0:54          move second child to first child (temp 6-element array of float)

-0:54            'fArray' (temp 6-element array of float)

-0:54            Constant:

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:55          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:55            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:55              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})

-0:55              Constant:

-0:55                6 (const int)

-0:55            'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})

-0:56          move second child to first child (temp structure{global int i})

-0:56            'locals0' (temp structure{global int i})

-0:56            Constant:

-0:56              0 (const int)

-0:57          move second child to first child (temp structure{global structure{global int i} s0_0})

-0:57            'locals00' (temp structure{global structure{global int i} s0_0})

-0:57            Constant:

-0:57              0 (const int)

-0:51        false case

-0:59        Sequence

-0:59          move second child to first child (temp float)

-0:59            f: direct index for structure (global float)

-0:59              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:59              Constant:

-0:59                1 (const int)

-0:59            direct index (temp float)

-0:59              'coord' (smooth in 2-component vector of float)

-0:59              Constant:

-0:59                0 (const int)

-0:60          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:60            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:60              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:60              Constant:

-0:60                2 (const int)

-0:60            Construct structure (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:60              Constant:

-0:60                1 (const int)

-0:60              direct index (temp float)

-0:60                'coord' (smooth in 2-component vector of float)

-0:60                Constant:

-0:60                  1 (const int)

-0:60              'foo0' (uniform structure{global int i})

-0:61          move second child to first child (temp 6-element array of float)

-0:61            'fArray' (temp 6-element array of float)

-0:61            Constant:

-0:61              0.000000

-0:61              1.000000

-0:61              2.000000

-0:61              3.000000

-0:61              4.000000

-0:61              5.000000

-0:62          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:62            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:62              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})

-0:62              Constant:

-0:62                6 (const int)

-0:62            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:62              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:62              Constant:

-0:62                2 (const int)

-0:63          move second child to first child (temp structure{global int i})

-0:63            'locals0' (temp structure{global int i})

-0:63            s0_1: direct index for structure (global structure{global int i})

-0:63              'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})

-0:63              Constant:

-0:63                2 (const int)

-0:64          move second child to first child (temp structure{global structure{global int i} s0_0})

-0:64            'locals00' (temp structure{global structure{global int i} s0_0})

-0:64            'foo00' (uniform structure{global structure{global int i} s0_0})

-0:67      Test condition and select (temp void)

-0:67        Condition

-0:67        Compare Greater Than (temp bool)

-0:67          i: direct index for structure (global int)

-0:67            'locals0' (temp structure{global int i})

-0:67            Constant:

-0:67              0 (const int)

-0:67          Constant:

-0:67            5 (const int)

-0:67        true case

-0:68        move second child to first child (temp structure{global int i})

-0:68          'locals0' (temp structure{global int i})

-0:68          s0_0: direct index for structure (global structure{global int i})

-0:68            'locals00' (temp structure{global structure{global int i} s0_0})

-0:68            Constant:

-0:68              0 (const int)

-0:70      move second child to first child (temp 4-component vector of float)

-0:70        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:70        vector-scale (temp 4-component vector of float)

-0:70          add (temp float)

-0:70            add (temp float)

-0:70              add (temp float)

-0:70                Convert int to float (temp float)

-0:70                  i: direct index for structure (global int)

-0:70                    'locals0' (temp structure{global int i})

-0:70                    Constant:

-0:70                      0 (const int)

-0:70                f: direct index for structure (global float)

-0:70                  direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:70                    'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})

-0:70                    Constant:

-0:70                      6 (const int)

-0:70                  Constant:

-0:70                    1 (const int)

-0:70              direct index (temp float)

-0:70                'fArray' (temp 6-element array of float)

-0:70                Constant:

-0:70                  3 (const int)

-0:70            f: direct index for structure (global float)

-0:70              s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:70                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:70                Constant:

-0:70                  2 (const int)

-0:70              Constant:

-0:70                1 (const int)

-0:70          texture (global 4-component vector of float)

-0:70            'sampler' (uniform sampler2D)

-0:70            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo0' (uniform structure{global int i})

-0:?     'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})

-0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:?     'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:?     'foo00' (uniform structure{global structure{global int i} s0_0})

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:41  Function Definition: main( (global void)

-0:41    Function Parameters: 

-0:?     Sequence

-0:51      Test condition and select (temp void)

-0:51        Condition

-0:51        Compare Greater Than (temp bool)

-0:51          i: direct index for structure (global int)

-0:51            direct index (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:51              s2_1: direct index for structure (global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:51                'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:51                Constant:

-0:51                  0 (const int)

-0:51              Constant:

-0:51                9 (const int)

-0:51            Constant:

-0:51              0 (const int)

-0:51          Constant:

-0:51            0 (const int)

-0:51        true case

-0:52        Sequence

-0:52          move second child to first child (temp float)

-0:52            f: direct index for structure (global float)

-0:52              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:52              Constant:

-0:52                1 (const int)

-0:52            Constant:

-0:52              1.000000

-0:53          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:53            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:53              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:53              Constant:

-0:53                2 (const int)

-0:53            Constant:

-0:53              0 (const int)

-0:53              1.000000

-0:53              0 (const int)

-0:54          move second child to first child (temp 6-element array of float)

-0:54            'fArray' (temp 6-element array of float)

-0:54            Constant:

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:54              0.000000

-0:55          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:55            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:55              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})

-0:55              Constant:

-0:55                6 (const int)

-0:55            'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})

-0:56          move second child to first child (temp structure{global int i})

-0:56            'locals0' (temp structure{global int i})

-0:56            Constant:

-0:56              0 (const int)

-0:57          move second child to first child (temp structure{global structure{global int i} s0_0})

-0:57            'locals00' (temp structure{global structure{global int i} s0_0})

-0:57            Constant:

-0:57              0 (const int)

-0:51        false case

-0:59        Sequence

-0:59          move second child to first child (temp float)

-0:59            f: direct index for structure (global float)

-0:59              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:59              Constant:

-0:59                1 (const int)

-0:59            direct index (temp float)

-0:59              'coord' (smooth in 2-component vector of float)

-0:59              Constant:

-0:59                0 (const int)

-0:60          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:60            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:60              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:60              Constant:

-0:60                2 (const int)

-0:60            Construct structure (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:60              Constant:

-0:60                1 (const int)

-0:60              direct index (temp float)

-0:60                'coord' (smooth in 2-component vector of float)

-0:60                Constant:

-0:60                  1 (const int)

-0:60              'foo0' (uniform structure{global int i})

-0:61          move second child to first child (temp 6-element array of float)

-0:61            'fArray' (temp 6-element array of float)

-0:61            Constant:

-0:61              0.000000

-0:61              1.000000

-0:61              2.000000

-0:61              3.000000

-0:61              4.000000

-0:61              5.000000

-0:62          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:62            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:62              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})

-0:62              Constant:

-0:62                6 (const int)

-0:62            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:62              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:62              Constant:

-0:62                2 (const int)

-0:63          move second child to first child (temp structure{global int i})

-0:63            'locals0' (temp structure{global int i})

-0:63            s0_1: direct index for structure (global structure{global int i})

-0:63              'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})

-0:63              Constant:

-0:63                2 (const int)

-0:64          move second child to first child (temp structure{global structure{global int i} s0_0})

-0:64            'locals00' (temp structure{global structure{global int i} s0_0})

-0:64            'foo00' (uniform structure{global structure{global int i} s0_0})

-0:67      Test condition and select (temp void)

-0:67        Condition

-0:67        Compare Greater Than (temp bool)

-0:67          i: direct index for structure (global int)

-0:67            'locals0' (temp structure{global int i})

-0:67            Constant:

-0:67              0 (const int)

-0:67          Constant:

-0:67            5 (const int)

-0:67        true case

-0:68        move second child to first child (temp structure{global int i})

-0:68          'locals0' (temp structure{global int i})

-0:68          s0_0: direct index for structure (global structure{global int i})

-0:68            'locals00' (temp structure{global structure{global int i} s0_0})

-0:68            Constant:

-0:68              0 (const int)

-0:70      move second child to first child (temp 4-component vector of float)

-0:70        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:70        vector-scale (temp 4-component vector of float)

-0:70          add (temp float)

-0:70            add (temp float)

-0:70              add (temp float)

-0:70                Convert int to float (temp float)

-0:70                  i: direct index for structure (global int)

-0:70                    'locals0' (temp structure{global int i})

-0:70                    Constant:

-0:70                      0 (const int)

-0:70                f: direct index for structure (global float)

-0:70                  direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})

-0:70                    'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})

-0:70                    Constant:

-0:70                      6 (const int)

-0:70                  Constant:

-0:70                    1 (const int)

-0:70              direct index (temp float)

-0:70                'fArray' (temp 6-element array of float)

-0:70                Constant:

-0:70                  3 (const int)

-0:70            f: direct index for structure (global float)

-0:70              s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})

-0:70                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:70                Constant:

-0:70                  2 (const int)

-0:70              Constant:

-0:70                1 (const int)

-0:70          texture (global 4-component vector of float)

-0:70            'sampler' (uniform sampler2D)

-0:70            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo0' (uniform structure{global int i})

-0:?     'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})

-0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:?     'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})

-0:?     'foo00' (uniform structure{global structure{global int i} s0_0})

-

+structDeref.frag
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:41  Function Definition: main( (global void)
+0:41    Function Parameters: 
+0:?     Sequence
+0:51      Test condition and select (temp void)
+0:51        Condition
+0:51        Compare Greater Than (temp bool)
+0:51          i: direct index for structure (global int)
+0:51            direct index (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51              s2_1: direct index for structure (global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51                'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51                Constant:
+0:51                  0 (const int)
+0:51              Constant:
+0:51                9 (const int)
+0:51            Constant:
+0:51              0 (const int)
+0:51          Constant:
+0:51            0 (const int)
+0:51        true case
+0:52        Sequence
+0:52          move second child to first child (temp float)
+0:52            f: direct index for structure (global float)
+0:52              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:52              Constant:
+0:52                1 (const int)
+0:52            Constant:
+0:52              1.000000
+0:53          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:53            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:53              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:53              Constant:
+0:53                2 (const int)
+0:53            Constant:
+0:53              0 (const int)
+0:53              1.000000
+0:53              0 (const int)
+0:54          move second child to first child (temp 6-element array of float)
+0:54            'fArray' (temp 6-element array of float)
+0:54            Constant:
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:55          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:55              Constant:
+0:55                6 (const int)
+0:55            'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:56          move second child to first child (temp structure{global int i})
+0:56            'locals0' (temp structure{global int i})
+0:56            Constant:
+0:56              0 (const int)
+0:57          move second child to first child (temp structure{global structure{global int i} s0_0})
+0:57            'locals00' (temp structure{global structure{global int i} s0_0})
+0:57            Constant:
+0:57              0 (const int)
+0:51        false case
+0:59        Sequence
+0:59          move second child to first child (temp float)
+0:59            f: direct index for structure (global float)
+0:59              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:59              Constant:
+0:59                1 (const int)
+0:59            direct index (temp float)
+0:59              'coord' (smooth in 2-component vector of float)
+0:59              Constant:
+0:59                0 (const int)
+0:60          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:60              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:60              Constant:
+0:60                2 (const int)
+0:60            Construct structure (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60              Constant:
+0:60                1 (const int)
+0:60              direct index (temp float)
+0:60                'coord' (smooth in 2-component vector of float)
+0:60                Constant:
+0:60                  1 (const int)
+0:60              'foo0' (uniform structure{global int i})
+0:61          move second child to first child (temp 6-element array of float)
+0:61            'fArray' (temp 6-element array of float)
+0:61            Constant:
+0:61              0.000000
+0:61              1.000000
+0:61              2.000000
+0:61              3.000000
+0:61              4.000000
+0:61              5.000000
+0:62          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:62              Constant:
+0:62                6 (const int)
+0:62            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:62              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:62              Constant:
+0:62                2 (const int)
+0:63          move second child to first child (temp structure{global int i})
+0:63            'locals0' (temp structure{global int i})
+0:63            s0_1: direct index for structure (global structure{global int i})
+0:63              'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:63              Constant:
+0:63                2 (const int)
+0:64          move second child to first child (temp structure{global structure{global int i} s0_0})
+0:64            'locals00' (temp structure{global structure{global int i} s0_0})
+0:64            'foo00' (uniform structure{global structure{global int i} s0_0})
+0:67      Test condition and select (temp void)
+0:67        Condition
+0:67        Compare Greater Than (temp bool)
+0:67          i: direct index for structure (global int)
+0:67            'locals0' (temp structure{global int i})
+0:67            Constant:
+0:67              0 (const int)
+0:67          Constant:
+0:67            5 (const int)
+0:67        true case
+0:68        move second child to first child (temp structure{global int i})
+0:68          'locals0' (temp structure{global int i})
+0:68          s0_0: direct index for structure (global structure{global int i})
+0:68            'locals00' (temp structure{global structure{global int i} s0_0})
+0:68            Constant:
+0:68              0 (const int)
+0:70      move second child to first child (temp 4-component vector of float)
+0:70        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:70        vector-scale (temp 4-component vector of float)
+0:70          add (temp float)
+0:70            add (temp float)
+0:70              add (temp float)
+0:70                Convert int to float (temp float)
+0:70                  i: direct index for structure (global int)
+0:70                    'locals0' (temp structure{global int i})
+0:70                    Constant:
+0:70                      0 (const int)
+0:70                f: direct index for structure (global float)
+0:70                  direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:70                    'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:70                    Constant:
+0:70                      6 (const int)
+0:70                  Constant:
+0:70                    1 (const int)
+0:70              direct index (temp float)
+0:70                'fArray' (temp 6-element array of float)
+0:70                Constant:
+0:70                  3 (const int)
+0:70            f: direct index for structure (global float)
+0:70              s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:70                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:70                Constant:
+0:70                  2 (const int)
+0:70              Constant:
+0:70                1 (const int)
+0:70          texture (global 4-component vector of float)
+0:70            'sampler' (uniform sampler2D)
+0:70            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo0' (uniform structure{global int i})
+0:?     'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:?     'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:?     'foo00' (uniform structure{global structure{global int i} s0_0})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:41  Function Definition: main( (global void)
+0:41    Function Parameters: 
+0:?     Sequence
+0:51      Test condition and select (temp void)
+0:51        Condition
+0:51        Compare Greater Than (temp bool)
+0:51          i: direct index for structure (global int)
+0:51            direct index (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51              s2_1: direct index for structure (global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51                'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:51                Constant:
+0:51                  0 (const int)
+0:51              Constant:
+0:51                9 (const int)
+0:51            Constant:
+0:51              0 (const int)
+0:51          Constant:
+0:51            0 (const int)
+0:51        true case
+0:52        Sequence
+0:52          move second child to first child (temp float)
+0:52            f: direct index for structure (global float)
+0:52              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:52              Constant:
+0:52                1 (const int)
+0:52            Constant:
+0:52              1.000000
+0:53          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:53            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:53              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:53              Constant:
+0:53                2 (const int)
+0:53            Constant:
+0:53              0 (const int)
+0:53              1.000000
+0:53              0 (const int)
+0:54          move second child to first child (temp 6-element array of float)
+0:54            'fArray' (temp 6-element array of float)
+0:54            Constant:
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:54              0.000000
+0:55          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:55              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:55              Constant:
+0:55                6 (const int)
+0:55            'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:56          move second child to first child (temp structure{global int i})
+0:56            'locals0' (temp structure{global int i})
+0:56            Constant:
+0:56              0 (const int)
+0:57          move second child to first child (temp structure{global structure{global int i} s0_0})
+0:57            'locals00' (temp structure{global structure{global int i} s0_0})
+0:57            Constant:
+0:57              0 (const int)
+0:51        false case
+0:59        Sequence
+0:59          move second child to first child (temp float)
+0:59            f: direct index for structure (global float)
+0:59              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:59              Constant:
+0:59                1 (const int)
+0:59            direct index (temp float)
+0:59              'coord' (smooth in 2-component vector of float)
+0:59              Constant:
+0:59                0 (const int)
+0:60          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:60              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:60              Constant:
+0:60                2 (const int)
+0:60            Construct structure (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:60              Constant:
+0:60                1 (const int)
+0:60              direct index (temp float)
+0:60                'coord' (smooth in 2-component vector of float)
+0:60                Constant:
+0:60                  1 (const int)
+0:60              'foo0' (uniform structure{global int i})
+0:61          move second child to first child (temp 6-element array of float)
+0:61            'fArray' (temp 6-element array of float)
+0:61            Constant:
+0:61              0.000000
+0:61              1.000000
+0:61              2.000000
+0:61              3.000000
+0:61              4.000000
+0:61              5.000000
+0:62          move second child to first child (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62            direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:62              'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:62              Constant:
+0:62                6 (const int)
+0:62            s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:62              'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:62              Constant:
+0:62                2 (const int)
+0:63          move second child to first child (temp structure{global int i})
+0:63            'locals0' (temp structure{global int i})
+0:63            s0_1: direct index for structure (global structure{global int i})
+0:63              'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:63              Constant:
+0:63                2 (const int)
+0:64          move second child to first child (temp structure{global structure{global int i} s0_0})
+0:64            'locals00' (temp structure{global structure{global int i} s0_0})
+0:64            'foo00' (uniform structure{global structure{global int i} s0_0})
+0:67      Test condition and select (temp void)
+0:67        Condition
+0:67        Compare Greater Than (temp bool)
+0:67          i: direct index for structure (global int)
+0:67            'locals0' (temp structure{global int i})
+0:67            Constant:
+0:67              0 (const int)
+0:67          Constant:
+0:67            5 (const int)
+0:67        true case
+0:68        move second child to first child (temp structure{global int i})
+0:68          'locals0' (temp structure{global int i})
+0:68          s0_0: direct index for structure (global structure{global int i})
+0:68            'locals00' (temp structure{global structure{global int i} s0_0})
+0:68            Constant:
+0:68              0 (const int)
+0:70      move second child to first child (temp 4-component vector of float)
+0:70        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:70        vector-scale (temp 4-component vector of float)
+0:70          add (temp float)
+0:70            add (temp float)
+0:70              add (temp float)
+0:70                Convert int to float (temp float)
+0:70                  i: direct index for structure (global int)
+0:70                    'locals0' (temp structure{global int i})
+0:70                    Constant:
+0:70                      0 (const int)
+0:70                f: direct index for structure (global float)
+0:70                  direct index (temp structure{global int i, global float f, global structure{global int i} s0_1})
+0:70                    'locals1Array' (temp 10-element array of structure{global int i, global float f, global structure{global int i} s0_1})
+0:70                    Constant:
+0:70                      6 (const int)
+0:70                  Constant:
+0:70                    1 (const int)
+0:70              direct index (temp float)
+0:70                'fArray' (temp 6-element array of float)
+0:70                Constant:
+0:70                  3 (const int)
+0:70            f: direct index for structure (global float)
+0:70              s1_1: direct index for structure (global structure{global int i, global float f, global structure{global int i} s0_1})
+0:70                'locals2' (temp structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:70                Constant:
+0:70                  2 (const int)
+0:70              Constant:
+0:70                1 (const int)
+0:70          texture (global 4-component vector of float)
+0:70            'sampler' (uniform sampler2D)
+0:70            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo0' (uniform structure{global int i})
+0:?     'foo1' (uniform structure{global int i, global float f, global structure{global int i} s0_1})
+0:?     'foo2' (uniform structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:?     'foo3' (uniform structure{global 12-element array of structure{global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f, global structure{global int i} s0_1} s1_1})
+0:?     'foo00' (uniform structure{global structure{global int i} s0_0})
+
diff --git a/Test/baseResults/structure.frag.out b/Test/baseResults/structure.frag.out
index d061653..666b140 100644
--- a/Test/baseResults/structure.frag.out
+++ b/Test/baseResults/structure.frag.out
@@ -1,165 +1,165 @@
-structure.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:22    Sequence

-0:22      Sequence

-0:22        move second child to first child (temp float)

-0:22          'scale' (temp float)

-0:22          Constant:

-0:22            0.000000

-0:24      Test condition and select (temp void)

-0:24        Condition

-0:24        Compare Greater Than (temp bool)

-0:24          direct index (temp int)

-0:24            i: direct index for structure (global 5-element array of int)

-0:24              direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:24                'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:24                Constant:

-0:24                  3 (const int)

-0:24              Constant:

-0:24                0 (const int)

-0:24            Constant:

-0:24              4 (const int)

-0:24          Constant:

-0:24            0 (const int)

-0:24        true case

-0:25        move second child to first child (temp float)

-0:25          'scale' (temp float)

-0:25          direct index (temp float)

-0:25            direct index (temp 4-component vector of float)

-0:25              color: direct index for structure (global 5-element array of 4-component vector of float)

-0:25                direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:25                  s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:25                    direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:25                      'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:25                      Constant:

-0:25                        3 (const int)

-0:25                    Constant:

-0:25                      2 (const int)

-0:25                  Constant:

-0:25                    2 (const int)

-0:25                Constant:

-0:25                  2 (const int)

-0:25              Constant:

-0:25                3 (const int)

-0:25            Constant:

-0:25              0 (const int)

-0:24        false case

-0:27        move second child to first child (temp float)

-0:27          'scale' (temp float)

-0:27          direct index (temp float)

-0:27            f: direct index for structure (global 4-element array of float)

-0:27              direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:27                s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:27                  direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:27                    'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:27                    Constant:

-0:27                      3 (const int)

-0:27                  Constant:

-0:27                    2 (const int)

-0:27                Constant:

-0:27                  2 (const int)

-0:27              Constant:

-0:27                1 (const int)

-0:27            Constant:

-0:27              3 (const int)

-0:29      move second child to first child (temp 4-component vector of float)

-0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:29        vector-scale (temp 4-component vector of float)

-0:29          'scale' (temp float)

-0:29          texture (global 4-component vector of float)

-0:29            'sampler' (uniform sampler2D)

-0:29            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo' (uniform structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:?     'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:20  Function Definition: main( (global void)

-0:20    Function Parameters: 

-0:22    Sequence

-0:22      Sequence

-0:22        move second child to first child (temp float)

-0:22          'scale' (temp float)

-0:22          Constant:

-0:22            0.000000

-0:24      Test condition and select (temp void)

-0:24        Condition

-0:24        Compare Greater Than (temp bool)

-0:24          direct index (temp int)

-0:24            i: direct index for structure (global 5-element array of int)

-0:24              direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:24                'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:24                Constant:

-0:24                  3 (const int)

-0:24              Constant:

-0:24                0 (const int)

-0:24            Constant:

-0:24              4 (const int)

-0:24          Constant:

-0:24            0 (const int)

-0:24        true case

-0:25        move second child to first child (temp float)

-0:25          'scale' (temp float)

-0:25          direct index (temp float)

-0:25            direct index (temp 4-component vector of float)

-0:25              color: direct index for structure (global 5-element array of 4-component vector of float)

-0:25                direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:25                  s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:25                    direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:25                      'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:25                      Constant:

-0:25                        3 (const int)

-0:25                    Constant:

-0:25                      2 (const int)

-0:25                  Constant:

-0:25                    2 (const int)

-0:25                Constant:

-0:25                  2 (const int)

-0:25              Constant:

-0:25                3 (const int)

-0:25            Constant:

-0:25              0 (const int)

-0:24        false case

-0:27        move second child to first child (temp float)

-0:27          'scale' (temp float)

-0:27          direct index (temp float)

-0:27            f: direct index for structure (global 4-element array of float)

-0:27              direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:27                s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:27                  direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:27                    'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-0:27                    Constant:

-0:27                      3 (const int)

-0:27                  Constant:

-0:27                    2 (const int)

-0:27                Constant:

-0:27                  2 (const int)

-0:27              Constant:

-0:27                1 (const int)

-0:27            Constant:

-0:27              3 (const int)

-0:29      move second child to first child (temp 4-component vector of float)

-0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:29        vector-scale (temp 4-component vector of float)

-0:29          'scale' (temp float)

-0:29          texture (global 4-component vector of float)

-0:29            'sampler' (uniform sampler2D)

-0:29            'coord' (smooth in 2-component vector of float)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo' (uniform structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})

-0:?     'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})

-

+structure.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'scale' (temp float)
+0:22          Constant:
+0:22            0.000000
+0:24      Test condition and select (temp void)
+0:24        Condition
+0:24        Compare Greater Than (temp bool)
+0:24          direct index (temp int)
+0:24            i: direct index for structure (global 5-element array of int)
+0:24              direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24                'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24                Constant:
+0:24                  3 (const int)
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              4 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:24        true case
+0:25        move second child to first child (temp float)
+0:25          'scale' (temp float)
+0:25          direct index (temp float)
+0:25            direct index (temp 4-component vector of float)
+0:25              color: direct index for structure (global 5-element array of 4-component vector of float)
+0:25                direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25                  s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25                    direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25                      'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25                      Constant:
+0:25                        3 (const int)
+0:25                    Constant:
+0:25                      2 (const int)
+0:25                  Constant:
+0:25                    2 (const int)
+0:25                Constant:
+0:25                  2 (const int)
+0:25              Constant:
+0:25                3 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:24        false case
+0:27        move second child to first child (temp float)
+0:27          'scale' (temp float)
+0:27          direct index (temp float)
+0:27            f: direct index for structure (global 4-element array of float)
+0:27              direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27                s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27                  direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27                    'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27                    Constant:
+0:27                      3 (const int)
+0:27                  Constant:
+0:27                    2 (const int)
+0:27                Constant:
+0:27                  2 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27            Constant:
+0:27              3 (const int)
+0:29      move second child to first child (temp 4-component vector of float)
+0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29        vector-scale (temp 4-component vector of float)
+0:29          'scale' (temp float)
+0:29          texture (global 4-component vector of float)
+0:29            'sampler' (uniform sampler2D)
+0:29            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo' (uniform structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:?     'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:20  Function Definition: main( (global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'scale' (temp float)
+0:22          Constant:
+0:22            0.000000
+0:24      Test condition and select (temp void)
+0:24        Condition
+0:24        Compare Greater Than (temp bool)
+0:24          direct index (temp int)
+0:24            i: direct index for structure (global 5-element array of int)
+0:24              direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24                'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:24                Constant:
+0:24                  3 (const int)
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              4 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:24        true case
+0:25        move second child to first child (temp float)
+0:25          'scale' (temp float)
+0:25          direct index (temp float)
+0:25            direct index (temp 4-component vector of float)
+0:25              color: direct index for structure (global 5-element array of 4-component vector of float)
+0:25                direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25                  s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:25                    direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25                      'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:25                      Constant:
+0:25                        3 (const int)
+0:25                    Constant:
+0:25                      2 (const int)
+0:25                  Constant:
+0:25                    2 (const int)
+0:25                Constant:
+0:25                  2 (const int)
+0:25              Constant:
+0:25                3 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:24        false case
+0:27        move second child to first child (temp float)
+0:27          'scale' (temp float)
+0:27          direct index (temp float)
+0:27            f: direct index for structure (global 4-element array of float)
+0:27              direct index (temp structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27                s1_1: direct index for structure (global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:27                  direct index (temp structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27                    'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+0:27                    Constant:
+0:27                      3 (const int)
+0:27                  Constant:
+0:27                    2 (const int)
+0:27                Constant:
+0:27                  2 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27            Constant:
+0:27              3 (const int)
+0:29      move second child to first child (temp 4-component vector of float)
+0:29        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:29        vector-scale (temp 4-component vector of float)
+0:29          'scale' (temp float)
+0:29          texture (global 4-component vector of float)
+0:29            'sampler' (uniform sampler2D)
+0:29            'coord' (smooth in 2-component vector of float)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo' (uniform structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color})
+0:?     'foo2' (uniform 5-element array of structure{global 5-element array of int i, global float f, global 7-element array of structure{global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1})
+
diff --git a/Test/baseResults/switch.frag.out b/Test/baseResults/switch.frag.out
index b3d3ce0c..f8b179c 100644
--- a/Test/baseResults/switch.frag.out
+++ b/Test/baseResults/switch.frag.out
@@ -1,691 +1,691 @@
-switch.frag

-ERROR: 0:11: 'switch' : condition must be a scalar integer expression 

-ERROR: 0:14: 'switch' : condition must be a scalar integer expression 

-ERROR: 0:21: 'switch' : last case/default label not followed by statements 

-ERROR: 0:28: 'switch' : cannot have statements before first case/default label 

-ERROR: 0:43: 'default' : duplicate label 

-ERROR: 0:63: 'case' : duplicated value 

-ERROR: 0:65: 'case' : scalar integer expression required 

-ERROR: 0:67: 'case' : constant expression required 

-ERROR: 0:89: '' : break statement only allowed in switch and loops 

-ERROR: 0:99: 'case' : cannot be nested inside control flow 

-ERROR: 0:104: 'case' : cannot be nested inside control flow 

-ERROR: 0:108: 'case' : cannot be nested inside control flow 

-ERROR: 0:115: 'default' : cannot be nested inside control flow 

-ERROR: 0:119: 'case' : cannot appear outside switch statement 

-ERROR: 0:120: 'default' : cannot appear outside switch statement 

-ERROR: 0:126: 'onlyInSwitch' : undeclared identifier 

-ERROR: 0:128: 'switch' : last case/default label not followed by statements 

-ERROR: 0:140: 'nestedX' : undeclared identifier 

-ERROR: 0:157: 'nestedZ' : undeclared identifier 

-ERROR: 19 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:?     Sequence

-0:11      'f' (temp highp float)

-0:14      'a' (temp 2-element array of mediump int)

-0:17      'c' (uniform mediump int)

-0:21      switch

-0:21      condition

-0:21        'c' (uniform mediump int)

-0:21      body

-0:21        Sequence

-0:23          case:  with expression

-0:23            Constant:

-0:23              2 (const int)

-0:21          Sequence

-0:21            Branch: Break

-0:26      switch

-0:26      condition

-0:26        'c' (uniform mediump int)

-0:26      body

-0:26        Sequence

-0:28          Sequence

-0:28            move second child to first child (temp highp float)

-0:28              'f' (temp highp float)

-0:28              sine (global highp float)

-0:28                'x' (smooth in highp float)

-0:29          case:  with expression

-0:29            Constant:

-0:29              2 (const int)

-0:?           Sequence

-0:30            move second child to first child (temp highp float)

-0:30              'f' (temp highp float)

-0:30              cosine (global highp float)

-0:30                'x' (smooth in highp float)

-0:31            Branch: Break

-0:34      switch

-0:34      condition

-0:34        'c' (uniform mediump int)

-0:34      body

-0:34        Sequence

-0:35          default: 

-0:?           Sequence

-0:36            Branch: Break

-0:37          case:  with expression

-0:37            Constant:

-0:37              1 (const int)

-0:?           Sequence

-0:38            move second child to first child (temp highp float)

-0:38              'f' (temp highp float)

-0:38              sine (global highp float)

-0:38                'x' (smooth in highp float)

-0:39            Branch: Break

-0:40          case:  with expression

-0:40            Constant:

-0:40              2 (const int)

-0:?           Sequence

-0:41            move second child to first child (temp highp float)

-0:41              'f' (temp highp float)

-0:41              cosine (global highp float)

-0:41                'x' (smooth in highp float)

-0:42            Branch: Break

-0:43          default: 

-0:?           Sequence

-0:44            move second child to first child (temp highp float)

-0:44              'f' (temp highp float)

-0:44              tangent (global highp float)

-0:44                'x' (smooth in highp float)

-0:47      switch

-0:47      condition

-0:47        'c' (uniform mediump int)

-0:47      body

-0:47        Sequence

-0:48          case:  with expression

-0:48            Constant:

-0:48              1 (const int)

-0:?           Sequence

-0:49            move second child to first child (temp highp float)

-0:49              'f' (temp highp float)

-0:49              sine (global highp float)

-0:49                'x' (smooth in highp float)

-0:50            Branch: Break

-0:51          case:  with expression

-0:51            Constant:

-0:51              2 (const int)

-0:?           Sequence

-0:52            switch

-0:52            condition

-0:52              'd' (uniform mediump int)

-0:52            body

-0:52              Sequence

-0:53                case:  with expression

-0:53                  Constant:

-0:53                    1 (const int)

-0:?                 Sequence

-0:54                  move second child to first child (temp highp float)

-0:54                    'f' (temp highp float)

-0:54                    component-wise multiply (temp highp float)

-0:54                      component-wise multiply (temp highp float)

-0:54                        'x' (smooth in highp float)

-0:54                        'x' (smooth in highp float)

-0:54                      'x' (smooth in highp float)

-0:55                  Branch: Break

-0:56                case:  with expression

-0:56                  Constant:

-0:56                    2 (const int)

-0:?                 Sequence

-0:57                  move second child to first child (temp highp float)

-0:57                    'f' (temp highp float)

-0:57                    component-wise multiply (temp highp float)

-0:57                      'x' (smooth in highp float)

-0:57                      'x' (smooth in highp float)

-0:58                  Branch: Break

-0:60            Branch: Break

-0:61          default: 

-0:?           Sequence

-0:62            move second child to first child (temp highp float)

-0:62              'f' (temp highp float)

-0:62              tangent (global highp float)

-0:62                'x' (smooth in highp float)

-0:63          case:  with expression

-0:63            Constant:

-0:63              1 (const int)

-0:?           Sequence

-0:64            Branch: Break

-0:65          case:  with expression

-0:65            Constant:

-0:65              3.800000

-0:?           Sequence

-0:66            Branch: Break

-0:67          case:  with expression

-0:67            'c' (uniform mediump int)

-0:?           Sequence

-0:68            Branch: Break

-0:71      switch

-0:71      condition

-0:71        'c' (uniform mediump int)

-0:71      body

-0:71        Sequence

-0:72          case:  with expression

-0:72            Constant:

-0:72              1 (const int)

-0:?           Sequence

-0:73            move second child to first child (temp highp float)

-0:73              'f' (temp highp float)

-0:73              sine (global highp float)

-0:73                'x' (smooth in highp float)

-0:74            Branch: Break

-0:75          case:  with expression

-0:75            Constant:

-0:75              2 (const int)

-0:?           Sequence

-0:76            switch

-0:76            condition

-0:76              'd' (uniform mediump int)

-0:76            body

-0:76              Sequence

-0:77                case:  with expression

-0:77                  Constant:

-0:77                    1 (const int)

-0:?                 Sequence

-0:78                  move second child to first child (temp highp float)

-0:78                    'f' (temp highp float)

-0:78                    component-wise multiply (temp highp float)

-0:78                      component-wise multiply (temp highp float)

-0:78                        'x' (smooth in highp float)

-0:78                        'x' (smooth in highp float)

-0:78                      'x' (smooth in highp float)

-0:79                  Branch: Break

-0:80                case:  with expression

-0:80                  Constant:

-0:80                    2 (const int)

-0:?                 Sequence

-0:81                  move second child to first child (temp highp float)

-0:81                    'f' (temp highp float)

-0:81                    component-wise multiply (temp highp float)

-0:81                      'x' (smooth in highp float)

-0:81                      'x' (smooth in highp float)

-0:82                  Branch: Break

-0:84            Branch: Break

-0:85          default: 

-0:?           Sequence

-0:86            move second child to first child (temp highp float)

-0:86              'f' (temp highp float)

-0:86              tangent (global highp float)

-0:86                'x' (smooth in highp float)

-0:89      Branch: Break

-0:91      switch

-0:91      condition

-0:91        'c' (uniform mediump int)

-0:91      body

-0:91        Sequence

-0:92          case:  with expression

-0:92            Constant:

-0:92              1 (const int)

-0:?           Sequence

-0:93            move second child to first child (temp highp float)

-0:93              'f' (temp highp float)

-0:93              sine (global highp float)

-0:93                'x' (smooth in highp float)

-0:94            Branch: Break

-0:95          case:  with expression

-0:95            Constant:

-0:95              2 (const int)

-0:?           Sequence

-0:96            switch

-0:96            condition

-0:96              'd' (uniform mediump int)

-0:96            body

-0:96              Sequence

-0:97                case:  with expression

-0:97                  Constant:

-0:97                    1 (const int)

-0:?                 Sequence

-0:?                   Sequence

-0:100                    Branch: Break

-0:102                  move second child to first child (temp highp float)

-0:102                    'f' (temp highp float)

-0:102                    component-wise multiply (temp highp float)

-0:102                      component-wise multiply (temp highp float)

-0:102                        'x' (smooth in highp float)

-0:102                        'x' (smooth in highp float)

-0:102                      'x' (smooth in highp float)

-0:103                  Test condition and select (temp void)

-0:103                    Condition

-0:103                    Compare Less Than (temp bool)

-0:103                      'c' (uniform mediump int)

-0:103                      'd' (uniform mediump int)

-0:103                    true case

-0:?                     Sequence

-0:105                      move second child to first child (temp highp float)

-0:105                        'f' (temp highp float)

-0:105                        component-wise multiply (temp highp float)

-0:105                          'x' (smooth in highp float)

-0:105                          'x' (smooth in highp float)

-0:107                  Test condition and select (temp void)

-0:107                    Condition

-0:107                    Compare Less Than (temp bool)

-0:107                      'd' (uniform mediump int)

-0:107                      'c' (uniform mediump int)

-0:107                    true case is null

-0:109                  Branch: Break

-0:111            Branch: Break

-0:112          case:  with expression

-0:112            Constant:

-0:112              4 (const int)

-0:?           Sequence

-0:113            move second child to first child (temp highp float)

-0:113              'f' (temp highp float)

-0:113              tangent (global highp float)

-0:113                'x' (smooth in highp float)

-0:114            Test condition and select (temp void)

-0:114              Condition

-0:114              Compare Less Than (temp bool)

-0:114                'f' (temp highp float)

-0:114                Constant:

-0:114                  0.000000

-0:114              true case is null

-0:116            Branch: Break

-0:122      switch

-0:122      condition

-0:122        Constant:

-0:122          0 (const int)

-0:122      body

-0:122        Sequence

-0:123          default: 

-0:?           Sequence

-0:124            Sequence

-0:124              move second child to first child (temp mediump int)

-0:124                'onlyInSwitch' (temp mediump int)

-0:124                Constant:

-0:124                  0 (const int)

-0:126      'onlyInSwitch' (temp float)

-0:128      switch

-0:128      condition

-0:128        Constant:

-0:128          0 (const int)

-0:128      body

-0:128        Sequence

-0:129          default: 

-0:128          Sequence

-0:128            Branch: Break

-0:133      switch

-0:133      condition

-0:133        'c' (uniform mediump int)

-0:133      body

-0:133        Sequence

-0:134          case:  with expression

-0:134            Constant:

-0:134              1 (const int)

-0:?           Sequence

-0:?             Sequence

-0:137              Branch: Break

-0:139          case:  with expression

-0:139            Constant:

-0:139              2 (const int)

-0:?           Sequence

-0:140            'nestedX' (temp float)

-0:143            Branch: Break

-0:144          case:  with expression

-0:144            Constant:

-0:144              3 (const int)

-0:?           Sequence

-0:146            Branch: Break

-0:147            Branch: Break

-0:148          case:  with expression

-0:148            Constant:

-0:148              4 (const int)

-0:?           Sequence

-0:149            Sequence

-0:149              move second child to first child (temp mediump int)

-0:149                'linearY' (temp mediump int)

-0:149                'linearZ' (temp mediump int)

-0:150            Branch: Break

-0:151          case:  with expression

-0:151            Constant:

-0:151              5 (const int)

-0:?           Sequence

-0:153            Branch: Break

-0:154          case:  with expression

-0:154            Constant:

-0:154              6 (const int)

-0:?           Sequence

-0:155            Constant:

-0:155              4 (const int)

-0:157      'nestedZ' (temp float)

-0:?   Linker Objects

-0:?     'c' (uniform mediump int)

-0:?     'd' (uniform mediump int)

-0:?     'x' (smooth in highp float)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:6  Function Definition: main( (global void)

-0:6    Function Parameters: 

-0:?     Sequence

-0:11      'f' (temp highp float)

-0:14      'a' (temp 2-element array of mediump int)

-0:17      'c' (uniform mediump int)

-0:21      switch

-0:21      condition

-0:21        'c' (uniform mediump int)

-0:21      body

-0:21        Sequence

-0:23          case:  with expression

-0:23            Constant:

-0:23              2 (const int)

-0:21          Sequence

-0:21            Branch: Break

-0:26      switch

-0:26      condition

-0:26        'c' (uniform mediump int)

-0:26      body

-0:26        Sequence

-0:28          Sequence

-0:28            move second child to first child (temp highp float)

-0:28              'f' (temp highp float)

-0:28              sine (global highp float)

-0:28                'x' (smooth in highp float)

-0:29          case:  with expression

-0:29            Constant:

-0:29              2 (const int)

-0:?           Sequence

-0:30            move second child to first child (temp highp float)

-0:30              'f' (temp highp float)

-0:30              cosine (global highp float)

-0:30                'x' (smooth in highp float)

-0:31            Branch: Break

-0:34      switch

-0:34      condition

-0:34        'c' (uniform mediump int)

-0:34      body

-0:34        Sequence

-0:35          default: 

-0:?           Sequence

-0:36            Branch: Break

-0:37          case:  with expression

-0:37            Constant:

-0:37              1 (const int)

-0:?           Sequence

-0:38            move second child to first child (temp highp float)

-0:38              'f' (temp highp float)

-0:38              sine (global highp float)

-0:38                'x' (smooth in highp float)

-0:39            Branch: Break

-0:40          case:  with expression

-0:40            Constant:

-0:40              2 (const int)

-0:?           Sequence

-0:41            move second child to first child (temp highp float)

-0:41              'f' (temp highp float)

-0:41              cosine (global highp float)

-0:41                'x' (smooth in highp float)

-0:42            Branch: Break

-0:43          default: 

-0:?           Sequence

-0:44            move second child to first child (temp highp float)

-0:44              'f' (temp highp float)

-0:44              tangent (global highp float)

-0:44                'x' (smooth in highp float)

-0:47      switch

-0:47      condition

-0:47        'c' (uniform mediump int)

-0:47      body

-0:47        Sequence

-0:48          case:  with expression

-0:48            Constant:

-0:48              1 (const int)

-0:?           Sequence

-0:49            move second child to first child (temp highp float)

-0:49              'f' (temp highp float)

-0:49              sine (global highp float)

-0:49                'x' (smooth in highp float)

-0:50            Branch: Break

-0:51          case:  with expression

-0:51            Constant:

-0:51              2 (const int)

-0:?           Sequence

-0:52            switch

-0:52            condition

-0:52              'd' (uniform mediump int)

-0:52            body

-0:52              Sequence

-0:53                case:  with expression

-0:53                  Constant:

-0:53                    1 (const int)

-0:?                 Sequence

-0:54                  move second child to first child (temp highp float)

-0:54                    'f' (temp highp float)

-0:54                    component-wise multiply (temp highp float)

-0:54                      component-wise multiply (temp highp float)

-0:54                        'x' (smooth in highp float)

-0:54                        'x' (smooth in highp float)

-0:54                      'x' (smooth in highp float)

-0:55                  Branch: Break

-0:56                case:  with expression

-0:56                  Constant:

-0:56                    2 (const int)

-0:?                 Sequence

-0:57                  move second child to first child (temp highp float)

-0:57                    'f' (temp highp float)

-0:57                    component-wise multiply (temp highp float)

-0:57                      'x' (smooth in highp float)

-0:57                      'x' (smooth in highp float)

-0:58                  Branch: Break

-0:60            Branch: Break

-0:61          default: 

-0:?           Sequence

-0:62            move second child to first child (temp highp float)

-0:62              'f' (temp highp float)

-0:62              tangent (global highp float)

-0:62                'x' (smooth in highp float)

-0:63          case:  with expression

-0:63            Constant:

-0:63              1 (const int)

-0:?           Sequence

-0:64            Branch: Break

-0:65          case:  with expression

-0:65            Constant:

-0:65              3.800000

-0:?           Sequence

-0:66            Branch: Break

-0:67          case:  with expression

-0:67            'c' (uniform mediump int)

-0:?           Sequence

-0:68            Branch: Break

-0:71      switch

-0:71      condition

-0:71        'c' (uniform mediump int)

-0:71      body

-0:71        Sequence

-0:72          case:  with expression

-0:72            Constant:

-0:72              1 (const int)

-0:?           Sequence

-0:73            move second child to first child (temp highp float)

-0:73              'f' (temp highp float)

-0:73              sine (global highp float)

-0:73                'x' (smooth in highp float)

-0:74            Branch: Break

-0:75          case:  with expression

-0:75            Constant:

-0:75              2 (const int)

-0:?           Sequence

-0:76            switch

-0:76            condition

-0:76              'd' (uniform mediump int)

-0:76            body

-0:76              Sequence

-0:77                case:  with expression

-0:77                  Constant:

-0:77                    1 (const int)

-0:?                 Sequence

-0:78                  move second child to first child (temp highp float)

-0:78                    'f' (temp highp float)

-0:78                    component-wise multiply (temp highp float)

-0:78                      component-wise multiply (temp highp float)

-0:78                        'x' (smooth in highp float)

-0:78                        'x' (smooth in highp float)

-0:78                      'x' (smooth in highp float)

-0:79                  Branch: Break

-0:80                case:  with expression

-0:80                  Constant:

-0:80                    2 (const int)

-0:?                 Sequence

-0:81                  move second child to first child (temp highp float)

-0:81                    'f' (temp highp float)

-0:81                    component-wise multiply (temp highp float)

-0:81                      'x' (smooth in highp float)

-0:81                      'x' (smooth in highp float)

-0:82                  Branch: Break

-0:84            Branch: Break

-0:85          default: 

-0:?           Sequence

-0:86            move second child to first child (temp highp float)

-0:86              'f' (temp highp float)

-0:86              tangent (global highp float)

-0:86                'x' (smooth in highp float)

-0:89      Branch: Break

-0:91      switch

-0:91      condition

-0:91        'c' (uniform mediump int)

-0:91      body

-0:91        Sequence

-0:92          case:  with expression

-0:92            Constant:

-0:92              1 (const int)

-0:?           Sequence

-0:93            move second child to first child (temp highp float)

-0:93              'f' (temp highp float)

-0:93              sine (global highp float)

-0:93                'x' (smooth in highp float)

-0:94            Branch: Break

-0:95          case:  with expression

-0:95            Constant:

-0:95              2 (const int)

-0:?           Sequence

-0:96            switch

-0:96            condition

-0:96              'd' (uniform mediump int)

-0:96            body

-0:96              Sequence

-0:97                case:  with expression

-0:97                  Constant:

-0:97                    1 (const int)

-0:?                 Sequence

-0:?                   Sequence

-0:100                    Branch: Break

-0:102                  move second child to first child (temp highp float)

-0:102                    'f' (temp highp float)

-0:102                    component-wise multiply (temp highp float)

-0:102                      component-wise multiply (temp highp float)

-0:102                        'x' (smooth in highp float)

-0:102                        'x' (smooth in highp float)

-0:102                      'x' (smooth in highp float)

-0:103                  Test condition and select (temp void)

-0:103                    Condition

-0:103                    Compare Less Than (temp bool)

-0:103                      'c' (uniform mediump int)

-0:103                      'd' (uniform mediump int)

-0:103                    true case

-0:?                     Sequence

-0:105                      move second child to first child (temp highp float)

-0:105                        'f' (temp highp float)

-0:105                        component-wise multiply (temp highp float)

-0:105                          'x' (smooth in highp float)

-0:105                          'x' (smooth in highp float)

-0:107                  Test condition and select (temp void)

-0:107                    Condition

-0:107                    Compare Less Than (temp bool)

-0:107                      'd' (uniform mediump int)

-0:107                      'c' (uniform mediump int)

-0:107                    true case is null

-0:109                  Branch: Break

-0:111            Branch: Break

-0:112          case:  with expression

-0:112            Constant:

-0:112              4 (const int)

-0:?           Sequence

-0:113            move second child to first child (temp highp float)

-0:113              'f' (temp highp float)

-0:113              tangent (global highp float)

-0:113                'x' (smooth in highp float)

-0:114            Test condition and select (temp void)

-0:114              Condition

-0:114              Compare Less Than (temp bool)

-0:114                'f' (temp highp float)

-0:114                Constant:

-0:114                  0.000000

-0:114              true case is null

-0:116            Branch: Break

-0:122      switch

-0:122      condition

-0:122        Constant:

-0:122          0 (const int)

-0:122      body

-0:122        Sequence

-0:123          default: 

-0:?           Sequence

-0:124            Sequence

-0:124              move second child to first child (temp mediump int)

-0:124                'onlyInSwitch' (temp mediump int)

-0:124                Constant:

-0:124                  0 (const int)

-0:126      'onlyInSwitch' (temp float)

-0:128      switch

-0:128      condition

-0:128        Constant:

-0:128          0 (const int)

-0:128      body

-0:128        Sequence

-0:129          default: 

-0:128          Sequence

-0:128            Branch: Break

-0:133      switch

-0:133      condition

-0:133        'c' (uniform mediump int)

-0:133      body

-0:133        Sequence

-0:134          case:  with expression

-0:134            Constant:

-0:134              1 (const int)

-0:?           Sequence

-0:?             Sequence

-0:137              Branch: Break

-0:139          case:  with expression

-0:139            Constant:

-0:139              2 (const int)

-0:?           Sequence

-0:140            'nestedX' (temp float)

-0:143            Branch: Break

-0:144          case:  with expression

-0:144            Constant:

-0:144              3 (const int)

-0:?           Sequence

-0:146            Branch: Break

-0:147            Branch: Break

-0:148          case:  with expression

-0:148            Constant:

-0:148              4 (const int)

-0:?           Sequence

-0:149            Sequence

-0:149              move second child to first child (temp mediump int)

-0:149                'linearY' (temp mediump int)

-0:149                'linearZ' (temp mediump int)

-0:150            Branch: Break

-0:151          case:  with expression

-0:151            Constant:

-0:151              5 (const int)

-0:?           Sequence

-0:153            Branch: Break

-0:154          case:  with expression

-0:154            Constant:

-0:154              6 (const int)

-0:?           Sequence

-0:155            Constant:

-0:155              4 (const int)

-0:157      'nestedZ' (temp float)

-0:?   Linker Objects

-0:?     'c' (uniform mediump int)

-0:?     'd' (uniform mediump int)

-0:?     'x' (smooth in highp float)

-

+switch.frag
+ERROR: 0:11: 'switch' : condition must be a scalar integer expression 
+ERROR: 0:14: 'switch' : condition must be a scalar integer expression 
+ERROR: 0:21: 'switch' : last case/default label not followed by statements 
+ERROR: 0:28: 'switch' : cannot have statements before first case/default label 
+ERROR: 0:43: 'default' : duplicate label 
+ERROR: 0:63: 'case' : duplicated value 
+ERROR: 0:65: 'case' : scalar integer expression required 
+ERROR: 0:67: 'case' : constant expression required 
+ERROR: 0:89: '' : break statement only allowed in switch and loops 
+ERROR: 0:99: 'case' : cannot be nested inside control flow 
+ERROR: 0:104: 'case' : cannot be nested inside control flow 
+ERROR: 0:108: 'case' : cannot be nested inside control flow 
+ERROR: 0:115: 'default' : cannot be nested inside control flow 
+ERROR: 0:119: 'case' : cannot appear outside switch statement 
+ERROR: 0:120: 'default' : cannot appear outside switch statement 
+ERROR: 0:126: 'onlyInSwitch' : undeclared identifier 
+ERROR: 0:128: 'switch' : last case/default label not followed by statements 
+ERROR: 0:140: 'nestedX' : undeclared identifier 
+ERROR: 0:157: 'nestedZ' : undeclared identifier 
+ERROR: 19 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:?     Sequence
+0:11      'f' (temp highp float)
+0:14      'a' (temp 2-element array of mediump int)
+0:17      'c' (uniform mediump int)
+0:21      switch
+0:21      condition
+0:21        'c' (uniform mediump int)
+0:21      body
+0:21        Sequence
+0:23          case:  with expression
+0:23            Constant:
+0:23              2 (const int)
+0:21          Sequence
+0:21            Branch: Break
+0:26      switch
+0:26      condition
+0:26        'c' (uniform mediump int)
+0:26      body
+0:26        Sequence
+0:28          Sequence
+0:28            move second child to first child (temp highp float)
+0:28              'f' (temp highp float)
+0:28              sine (global highp float)
+0:28                'x' (smooth in highp float)
+0:29          case:  with expression
+0:29            Constant:
+0:29              2 (const int)
+0:?           Sequence
+0:30            move second child to first child (temp highp float)
+0:30              'f' (temp highp float)
+0:30              cosine (global highp float)
+0:30                'x' (smooth in highp float)
+0:31            Branch: Break
+0:34      switch
+0:34      condition
+0:34        'c' (uniform mediump int)
+0:34      body
+0:34        Sequence
+0:35          default: 
+0:?           Sequence
+0:36            Branch: Break
+0:37          case:  with expression
+0:37            Constant:
+0:37              1 (const int)
+0:?           Sequence
+0:38            move second child to first child (temp highp float)
+0:38              'f' (temp highp float)
+0:38              sine (global highp float)
+0:38                'x' (smooth in highp float)
+0:39            Branch: Break
+0:40          case:  with expression
+0:40            Constant:
+0:40              2 (const int)
+0:?           Sequence
+0:41            move second child to first child (temp highp float)
+0:41              'f' (temp highp float)
+0:41              cosine (global highp float)
+0:41                'x' (smooth in highp float)
+0:42            Branch: Break
+0:43          default: 
+0:?           Sequence
+0:44            move second child to first child (temp highp float)
+0:44              'f' (temp highp float)
+0:44              tangent (global highp float)
+0:44                'x' (smooth in highp float)
+0:47      switch
+0:47      condition
+0:47        'c' (uniform mediump int)
+0:47      body
+0:47        Sequence
+0:48          case:  with expression
+0:48            Constant:
+0:48              1 (const int)
+0:?           Sequence
+0:49            move second child to first child (temp highp float)
+0:49              'f' (temp highp float)
+0:49              sine (global highp float)
+0:49                'x' (smooth in highp float)
+0:50            Branch: Break
+0:51          case:  with expression
+0:51            Constant:
+0:51              2 (const int)
+0:?           Sequence
+0:52            switch
+0:52            condition
+0:52              'd' (uniform mediump int)
+0:52            body
+0:52              Sequence
+0:53                case:  with expression
+0:53                  Constant:
+0:53                    1 (const int)
+0:?                 Sequence
+0:54                  move second child to first child (temp highp float)
+0:54                    'f' (temp highp float)
+0:54                    component-wise multiply (temp highp float)
+0:54                      component-wise multiply (temp highp float)
+0:54                        'x' (smooth in highp float)
+0:54                        'x' (smooth in highp float)
+0:54                      'x' (smooth in highp float)
+0:55                  Branch: Break
+0:56                case:  with expression
+0:56                  Constant:
+0:56                    2 (const int)
+0:?                 Sequence
+0:57                  move second child to first child (temp highp float)
+0:57                    'f' (temp highp float)
+0:57                    component-wise multiply (temp highp float)
+0:57                      'x' (smooth in highp float)
+0:57                      'x' (smooth in highp float)
+0:58                  Branch: Break
+0:60            Branch: Break
+0:61          default: 
+0:?           Sequence
+0:62            move second child to first child (temp highp float)
+0:62              'f' (temp highp float)
+0:62              tangent (global highp float)
+0:62                'x' (smooth in highp float)
+0:63          case:  with expression
+0:63            Constant:
+0:63              1 (const int)
+0:?           Sequence
+0:64            Branch: Break
+0:65          case:  with expression
+0:65            Constant:
+0:65              3.800000
+0:?           Sequence
+0:66            Branch: Break
+0:67          case:  with expression
+0:67            'c' (uniform mediump int)
+0:?           Sequence
+0:68            Branch: Break
+0:71      switch
+0:71      condition
+0:71        'c' (uniform mediump int)
+0:71      body
+0:71        Sequence
+0:72          case:  with expression
+0:72            Constant:
+0:72              1 (const int)
+0:?           Sequence
+0:73            move second child to first child (temp highp float)
+0:73              'f' (temp highp float)
+0:73              sine (global highp float)
+0:73                'x' (smooth in highp float)
+0:74            Branch: Break
+0:75          case:  with expression
+0:75            Constant:
+0:75              2 (const int)
+0:?           Sequence
+0:76            switch
+0:76            condition
+0:76              'd' (uniform mediump int)
+0:76            body
+0:76              Sequence
+0:77                case:  with expression
+0:77                  Constant:
+0:77                    1 (const int)
+0:?                 Sequence
+0:78                  move second child to first child (temp highp float)
+0:78                    'f' (temp highp float)
+0:78                    component-wise multiply (temp highp float)
+0:78                      component-wise multiply (temp highp float)
+0:78                        'x' (smooth in highp float)
+0:78                        'x' (smooth in highp float)
+0:78                      'x' (smooth in highp float)
+0:79                  Branch: Break
+0:80                case:  with expression
+0:80                  Constant:
+0:80                    2 (const int)
+0:?                 Sequence
+0:81                  move second child to first child (temp highp float)
+0:81                    'f' (temp highp float)
+0:81                    component-wise multiply (temp highp float)
+0:81                      'x' (smooth in highp float)
+0:81                      'x' (smooth in highp float)
+0:82                  Branch: Break
+0:84            Branch: Break
+0:85          default: 
+0:?           Sequence
+0:86            move second child to first child (temp highp float)
+0:86              'f' (temp highp float)
+0:86              tangent (global highp float)
+0:86                'x' (smooth in highp float)
+0:89      Branch: Break
+0:91      switch
+0:91      condition
+0:91        'c' (uniform mediump int)
+0:91      body
+0:91        Sequence
+0:92          case:  with expression
+0:92            Constant:
+0:92              1 (const int)
+0:?           Sequence
+0:93            move second child to first child (temp highp float)
+0:93              'f' (temp highp float)
+0:93              sine (global highp float)
+0:93                'x' (smooth in highp float)
+0:94            Branch: Break
+0:95          case:  with expression
+0:95            Constant:
+0:95              2 (const int)
+0:?           Sequence
+0:96            switch
+0:96            condition
+0:96              'd' (uniform mediump int)
+0:96            body
+0:96              Sequence
+0:97                case:  with expression
+0:97                  Constant:
+0:97                    1 (const int)
+0:?                 Sequence
+0:?                   Sequence
+0:100                    Branch: Break
+0:102                  move second child to first child (temp highp float)
+0:102                    'f' (temp highp float)
+0:102                    component-wise multiply (temp highp float)
+0:102                      component-wise multiply (temp highp float)
+0:102                        'x' (smooth in highp float)
+0:102                        'x' (smooth in highp float)
+0:102                      'x' (smooth in highp float)
+0:103                  Test condition and select (temp void)
+0:103                    Condition
+0:103                    Compare Less Than (temp bool)
+0:103                      'c' (uniform mediump int)
+0:103                      'd' (uniform mediump int)
+0:103                    true case
+0:?                     Sequence
+0:105                      move second child to first child (temp highp float)
+0:105                        'f' (temp highp float)
+0:105                        component-wise multiply (temp highp float)
+0:105                          'x' (smooth in highp float)
+0:105                          'x' (smooth in highp float)
+0:107                  Test condition and select (temp void)
+0:107                    Condition
+0:107                    Compare Less Than (temp bool)
+0:107                      'd' (uniform mediump int)
+0:107                      'c' (uniform mediump int)
+0:107                    true case is null
+0:109                  Branch: Break
+0:111            Branch: Break
+0:112          case:  with expression
+0:112            Constant:
+0:112              4 (const int)
+0:?           Sequence
+0:113            move second child to first child (temp highp float)
+0:113              'f' (temp highp float)
+0:113              tangent (global highp float)
+0:113                'x' (smooth in highp float)
+0:114            Test condition and select (temp void)
+0:114              Condition
+0:114              Compare Less Than (temp bool)
+0:114                'f' (temp highp float)
+0:114                Constant:
+0:114                  0.000000
+0:114              true case is null
+0:116            Branch: Break
+0:122      switch
+0:122      condition
+0:122        Constant:
+0:122          0 (const int)
+0:122      body
+0:122        Sequence
+0:123          default: 
+0:?           Sequence
+0:124            Sequence
+0:124              move second child to first child (temp mediump int)
+0:124                'onlyInSwitch' (temp mediump int)
+0:124                Constant:
+0:124                  0 (const int)
+0:126      'onlyInSwitch' (temp float)
+0:128      switch
+0:128      condition
+0:128        Constant:
+0:128          0 (const int)
+0:128      body
+0:128        Sequence
+0:129          default: 
+0:128          Sequence
+0:128            Branch: Break
+0:133      switch
+0:133      condition
+0:133        'c' (uniform mediump int)
+0:133      body
+0:133        Sequence
+0:134          case:  with expression
+0:134            Constant:
+0:134              1 (const int)
+0:?           Sequence
+0:?             Sequence
+0:137              Branch: Break
+0:139          case:  with expression
+0:139            Constant:
+0:139              2 (const int)
+0:?           Sequence
+0:140            'nestedX' (temp float)
+0:143            Branch: Break
+0:144          case:  with expression
+0:144            Constant:
+0:144              3 (const int)
+0:?           Sequence
+0:146            Branch: Break
+0:147            Branch: Break
+0:148          case:  with expression
+0:148            Constant:
+0:148              4 (const int)
+0:?           Sequence
+0:149            Sequence
+0:149              move second child to first child (temp mediump int)
+0:149                'linearY' (temp mediump int)
+0:149                'linearZ' (temp mediump int)
+0:150            Branch: Break
+0:151          case:  with expression
+0:151            Constant:
+0:151              5 (const int)
+0:?           Sequence
+0:153            Branch: Break
+0:154          case:  with expression
+0:154            Constant:
+0:154              6 (const int)
+0:?           Sequence
+0:155            Constant:
+0:155              4 (const int)
+0:157      'nestedZ' (temp float)
+0:?   Linker Objects
+0:?     'c' (uniform mediump int)
+0:?     'd' (uniform mediump int)
+0:?     'x' (smooth in highp float)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:6  Function Definition: main( (global void)
+0:6    Function Parameters: 
+0:?     Sequence
+0:11      'f' (temp highp float)
+0:14      'a' (temp 2-element array of mediump int)
+0:17      'c' (uniform mediump int)
+0:21      switch
+0:21      condition
+0:21        'c' (uniform mediump int)
+0:21      body
+0:21        Sequence
+0:23          case:  with expression
+0:23            Constant:
+0:23              2 (const int)
+0:21          Sequence
+0:21            Branch: Break
+0:26      switch
+0:26      condition
+0:26        'c' (uniform mediump int)
+0:26      body
+0:26        Sequence
+0:28          Sequence
+0:28            move second child to first child (temp highp float)
+0:28              'f' (temp highp float)
+0:28              sine (global highp float)
+0:28                'x' (smooth in highp float)
+0:29          case:  with expression
+0:29            Constant:
+0:29              2 (const int)
+0:?           Sequence
+0:30            move second child to first child (temp highp float)
+0:30              'f' (temp highp float)
+0:30              cosine (global highp float)
+0:30                'x' (smooth in highp float)
+0:31            Branch: Break
+0:34      switch
+0:34      condition
+0:34        'c' (uniform mediump int)
+0:34      body
+0:34        Sequence
+0:35          default: 
+0:?           Sequence
+0:36            Branch: Break
+0:37          case:  with expression
+0:37            Constant:
+0:37              1 (const int)
+0:?           Sequence
+0:38            move second child to first child (temp highp float)
+0:38              'f' (temp highp float)
+0:38              sine (global highp float)
+0:38                'x' (smooth in highp float)
+0:39            Branch: Break
+0:40          case:  with expression
+0:40            Constant:
+0:40              2 (const int)
+0:?           Sequence
+0:41            move second child to first child (temp highp float)
+0:41              'f' (temp highp float)
+0:41              cosine (global highp float)
+0:41                'x' (smooth in highp float)
+0:42            Branch: Break
+0:43          default: 
+0:?           Sequence
+0:44            move second child to first child (temp highp float)
+0:44              'f' (temp highp float)
+0:44              tangent (global highp float)
+0:44                'x' (smooth in highp float)
+0:47      switch
+0:47      condition
+0:47        'c' (uniform mediump int)
+0:47      body
+0:47        Sequence
+0:48          case:  with expression
+0:48            Constant:
+0:48              1 (const int)
+0:?           Sequence
+0:49            move second child to first child (temp highp float)
+0:49              'f' (temp highp float)
+0:49              sine (global highp float)
+0:49                'x' (smooth in highp float)
+0:50            Branch: Break
+0:51          case:  with expression
+0:51            Constant:
+0:51              2 (const int)
+0:?           Sequence
+0:52            switch
+0:52            condition
+0:52              'd' (uniform mediump int)
+0:52            body
+0:52              Sequence
+0:53                case:  with expression
+0:53                  Constant:
+0:53                    1 (const int)
+0:?                 Sequence
+0:54                  move second child to first child (temp highp float)
+0:54                    'f' (temp highp float)
+0:54                    component-wise multiply (temp highp float)
+0:54                      component-wise multiply (temp highp float)
+0:54                        'x' (smooth in highp float)
+0:54                        'x' (smooth in highp float)
+0:54                      'x' (smooth in highp float)
+0:55                  Branch: Break
+0:56                case:  with expression
+0:56                  Constant:
+0:56                    2 (const int)
+0:?                 Sequence
+0:57                  move second child to first child (temp highp float)
+0:57                    'f' (temp highp float)
+0:57                    component-wise multiply (temp highp float)
+0:57                      'x' (smooth in highp float)
+0:57                      'x' (smooth in highp float)
+0:58                  Branch: Break
+0:60            Branch: Break
+0:61          default: 
+0:?           Sequence
+0:62            move second child to first child (temp highp float)
+0:62              'f' (temp highp float)
+0:62              tangent (global highp float)
+0:62                'x' (smooth in highp float)
+0:63          case:  with expression
+0:63            Constant:
+0:63              1 (const int)
+0:?           Sequence
+0:64            Branch: Break
+0:65          case:  with expression
+0:65            Constant:
+0:65              3.800000
+0:?           Sequence
+0:66            Branch: Break
+0:67          case:  with expression
+0:67            'c' (uniform mediump int)
+0:?           Sequence
+0:68            Branch: Break
+0:71      switch
+0:71      condition
+0:71        'c' (uniform mediump int)
+0:71      body
+0:71        Sequence
+0:72          case:  with expression
+0:72            Constant:
+0:72              1 (const int)
+0:?           Sequence
+0:73            move second child to first child (temp highp float)
+0:73              'f' (temp highp float)
+0:73              sine (global highp float)
+0:73                'x' (smooth in highp float)
+0:74            Branch: Break
+0:75          case:  with expression
+0:75            Constant:
+0:75              2 (const int)
+0:?           Sequence
+0:76            switch
+0:76            condition
+0:76              'd' (uniform mediump int)
+0:76            body
+0:76              Sequence
+0:77                case:  with expression
+0:77                  Constant:
+0:77                    1 (const int)
+0:?                 Sequence
+0:78                  move second child to first child (temp highp float)
+0:78                    'f' (temp highp float)
+0:78                    component-wise multiply (temp highp float)
+0:78                      component-wise multiply (temp highp float)
+0:78                        'x' (smooth in highp float)
+0:78                        'x' (smooth in highp float)
+0:78                      'x' (smooth in highp float)
+0:79                  Branch: Break
+0:80                case:  with expression
+0:80                  Constant:
+0:80                    2 (const int)
+0:?                 Sequence
+0:81                  move second child to first child (temp highp float)
+0:81                    'f' (temp highp float)
+0:81                    component-wise multiply (temp highp float)
+0:81                      'x' (smooth in highp float)
+0:81                      'x' (smooth in highp float)
+0:82                  Branch: Break
+0:84            Branch: Break
+0:85          default: 
+0:?           Sequence
+0:86            move second child to first child (temp highp float)
+0:86              'f' (temp highp float)
+0:86              tangent (global highp float)
+0:86                'x' (smooth in highp float)
+0:89      Branch: Break
+0:91      switch
+0:91      condition
+0:91        'c' (uniform mediump int)
+0:91      body
+0:91        Sequence
+0:92          case:  with expression
+0:92            Constant:
+0:92              1 (const int)
+0:?           Sequence
+0:93            move second child to first child (temp highp float)
+0:93              'f' (temp highp float)
+0:93              sine (global highp float)
+0:93                'x' (smooth in highp float)
+0:94            Branch: Break
+0:95          case:  with expression
+0:95            Constant:
+0:95              2 (const int)
+0:?           Sequence
+0:96            switch
+0:96            condition
+0:96              'd' (uniform mediump int)
+0:96            body
+0:96              Sequence
+0:97                case:  with expression
+0:97                  Constant:
+0:97                    1 (const int)
+0:?                 Sequence
+0:?                   Sequence
+0:100                    Branch: Break
+0:102                  move second child to first child (temp highp float)
+0:102                    'f' (temp highp float)
+0:102                    component-wise multiply (temp highp float)
+0:102                      component-wise multiply (temp highp float)
+0:102                        'x' (smooth in highp float)
+0:102                        'x' (smooth in highp float)
+0:102                      'x' (smooth in highp float)
+0:103                  Test condition and select (temp void)
+0:103                    Condition
+0:103                    Compare Less Than (temp bool)
+0:103                      'c' (uniform mediump int)
+0:103                      'd' (uniform mediump int)
+0:103                    true case
+0:?                     Sequence
+0:105                      move second child to first child (temp highp float)
+0:105                        'f' (temp highp float)
+0:105                        component-wise multiply (temp highp float)
+0:105                          'x' (smooth in highp float)
+0:105                          'x' (smooth in highp float)
+0:107                  Test condition and select (temp void)
+0:107                    Condition
+0:107                    Compare Less Than (temp bool)
+0:107                      'd' (uniform mediump int)
+0:107                      'c' (uniform mediump int)
+0:107                    true case is null
+0:109                  Branch: Break
+0:111            Branch: Break
+0:112          case:  with expression
+0:112            Constant:
+0:112              4 (const int)
+0:?           Sequence
+0:113            move second child to first child (temp highp float)
+0:113              'f' (temp highp float)
+0:113              tangent (global highp float)
+0:113                'x' (smooth in highp float)
+0:114            Test condition and select (temp void)
+0:114              Condition
+0:114              Compare Less Than (temp bool)
+0:114                'f' (temp highp float)
+0:114                Constant:
+0:114                  0.000000
+0:114              true case is null
+0:116            Branch: Break
+0:122      switch
+0:122      condition
+0:122        Constant:
+0:122          0 (const int)
+0:122      body
+0:122        Sequence
+0:123          default: 
+0:?           Sequence
+0:124            Sequence
+0:124              move second child to first child (temp mediump int)
+0:124                'onlyInSwitch' (temp mediump int)
+0:124                Constant:
+0:124                  0 (const int)
+0:126      'onlyInSwitch' (temp float)
+0:128      switch
+0:128      condition
+0:128        Constant:
+0:128          0 (const int)
+0:128      body
+0:128        Sequence
+0:129          default: 
+0:128          Sequence
+0:128            Branch: Break
+0:133      switch
+0:133      condition
+0:133        'c' (uniform mediump int)
+0:133      body
+0:133        Sequence
+0:134          case:  with expression
+0:134            Constant:
+0:134              1 (const int)
+0:?           Sequence
+0:?             Sequence
+0:137              Branch: Break
+0:139          case:  with expression
+0:139            Constant:
+0:139              2 (const int)
+0:?           Sequence
+0:140            'nestedX' (temp float)
+0:143            Branch: Break
+0:144          case:  with expression
+0:144            Constant:
+0:144              3 (const int)
+0:?           Sequence
+0:146            Branch: Break
+0:147            Branch: Break
+0:148          case:  with expression
+0:148            Constant:
+0:148              4 (const int)
+0:?           Sequence
+0:149            Sequence
+0:149              move second child to first child (temp mediump int)
+0:149                'linearY' (temp mediump int)
+0:149                'linearZ' (temp mediump int)
+0:150            Branch: Break
+0:151          case:  with expression
+0:151            Constant:
+0:151              5 (const int)
+0:?           Sequence
+0:153            Branch: Break
+0:154          case:  with expression
+0:154            Constant:
+0:154              6 (const int)
+0:?           Sequence
+0:155            Constant:
+0:155              4 (const int)
+0:157      'nestedZ' (temp float)
+0:?   Linker Objects
+0:?     'c' (uniform mediump int)
+0:?     'd' (uniform mediump int)
+0:?     'x' (smooth in highp float)
+
diff --git a/Test/baseResults/swizzle.frag.out b/Test/baseResults/swizzle.frag.out
index eddb2fb..8e1b759 100644
--- a/Test/baseResults/swizzle.frag.out
+++ b/Test/baseResults/swizzle.frag.out
@@ -1,423 +1,423 @@
-swizzle.frag

-Shader version: 110

-0:? Sequence

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'blendscale' (temp float)

-0:11          Constant:

-0:11            1.789000

-0:13      Sequence

-0:13        move second child to first child (temp 4-component vector of float)

-0:13          'w' (temp 4-component vector of float)

-0:13          'u' (uniform 4-component vector of float)

-0:15      Sequence

-0:15        move second child to first child (temp 4-component vector of float)

-0:15          'w_dep' (temp 4-component vector of float)

-0:15          'u' (uniform 4-component vector of float)

-0:16      Sequence

-0:16        move second child to first child (temp 4-component vector of float)

-0:16          'w_reorder' (temp 4-component vector of float)

-0:16          'u' (uniform 4-component vector of float)

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'w2' (temp 4-component vector of float)

-0:17          'u' (uniform 4-component vector of float)

-0:18      Sequence

-0:18        move second child to first child (temp 4-component vector of float)

-0:18          'w_flow' (temp 4-component vector of float)

-0:18          'u' (uniform 4-component vector of float)

-0:20      move second child to first child (temp float)

-0:20        direct index (temp float)

-0:20          'w_reorder' (temp 4-component vector of float)

-0:20          Constant:

-0:20            2 (const int)

-0:20        'blendscale' (temp float)

-0:22      move second child to first child (temp 2-component vector of float)

-0:22        vector swizzle (temp 2-component vector of float)

-0:22          'w' (temp 4-component vector of float)

-0:22          Sequence

-0:22            Constant:

-0:22              3 (const int)

-0:22            Constant:

-0:22              1 (const int)

-0:22        't' (smooth in 2-component vector of float)

-0:24      move second child to first child (temp float)

-0:24        direct index (temp float)

-0:24          'w_reorder' (temp 4-component vector of float)

-0:24          Constant:

-0:24            0 (const int)

-0:24        'blendscale' (temp float)

-0:26      move second child to first child (temp 4-component vector of float)

-0:26        vector swizzle (temp 4-component vector of float)

-0:26          'w2' (temp 4-component vector of float)

-0:26          Sequence

-0:26            Constant:

-0:26              0 (const int)

-0:26            Constant:

-0:26              1 (const int)

-0:26            Constant:

-0:26              2 (const int)

-0:26            Constant:

-0:26              3 (const int)

-0:26        vector swizzle (temp 4-component vector of float)

-0:26          'u' (uniform 4-component vector of float)

-0:26          Sequence

-0:26            Constant:

-0:26              2 (const int)

-0:26            Constant:

-0:26              3 (const int)

-0:26            Constant:

-0:26              0 (const int)

-0:26            Constant:

-0:26              1 (const int)

-0:28      move second child to first child (temp float)

-0:28        direct index (temp float)

-0:28          'w_reorder' (temp 4-component vector of float)

-0:28          Constant:

-0:28            1 (const int)

-0:28        'blendscale' (temp float)

-0:30      move second child to first child (temp 2-component vector of float)

-0:30        vector swizzle (temp 2-component vector of float)

-0:30          'w_dep' (temp 4-component vector of float)

-0:30          Sequence

-0:30            Constant:

-0:30              0 (const int)

-0:30            Constant:

-0:30              1 (const int)

-0:30        vector swizzle (temp 2-component vector of float)

-0:30          'w2' (temp 4-component vector of float)

-0:30          Sequence

-0:30            Constant:

-0:30              0 (const int)

-0:30            Constant:

-0:30              2 (const int)

-0:31      move second child to first child (temp 2-component vector of float)

-0:31        vector swizzle (temp 2-component vector of float)

-0:31          'w_dep' (temp 4-component vector of float)

-0:31          Sequence

-0:31            Constant:

-0:31              2 (const int)

-0:31            Constant:

-0:31              3 (const int)

-0:31        't' (smooth in 2-component vector of float)

-0:33      move second child to first child (temp 2-component vector of float)

-0:33        vector swizzle (temp 2-component vector of float)

-0:33          'w_undef' (temp 4-component vector of float)

-0:33          Sequence

-0:33            Constant:

-0:33              0 (const int)

-0:33            Constant:

-0:33              1 (const int)

-0:33        vector swizzle (temp 2-component vector of float)

-0:33          'u' (uniform 4-component vector of float)

-0:33          Sequence

-0:33            Constant:

-0:33              2 (const int)

-0:33            Constant:

-0:33              3 (const int)

-0:35      Test condition and select (temp void)

-0:35        Condition

-0:35        'p' (uniform bool)

-0:35        true case

-0:36        move second child to first child (temp float)

-0:36          direct index (temp float)

-0:36            'w_flow' (temp 4-component vector of float)

-0:36            Constant:

-0:36              0 (const int)

-0:36          direct index (temp float)

-0:36            't' (smooth in 2-component vector of float)

-0:36            Constant:

-0:36              0 (const int)

-0:35        false case

-0:38        move second child to first child (temp float)

-0:38          direct index (temp float)

-0:38            'w_flow' (temp 4-component vector of float)

-0:38            Constant:

-0:38              0 (const int)

-0:38          direct index (temp float)

-0:38            't' (smooth in 2-component vector of float)

-0:38            Constant:

-0:38              1 (const int)

-0:40      move second child to first child (temp 4-component vector of float)

-0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:40        mix (global 4-component vector of float)

-0:40          'w_reorder' (temp 4-component vector of float)

-0:40          'w_undef' (temp 4-component vector of float)

-0:40          component-wise multiply (temp 4-component vector of float)

-0:40            component-wise multiply (temp 4-component vector of float)

-0:40              component-wise multiply (temp 4-component vector of float)

-0:40                'w' (temp 4-component vector of float)

-0:40                'w2' (temp 4-component vector of float)

-0:40              'w_dep' (temp 4-component vector of float)

-0:40            'w_flow' (temp 4-component vector of float)

-0:42      Sequence

-0:42        move second child to first child (temp 2-component vector of float)

-0:42          'c' (temp 2-component vector of float)

-0:42          't' (smooth in 2-component vector of float)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of float)

-0:43          'rep' (temp 4-component vector of float)

-0:43          Constant:

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:45      Test condition and select (temp void)

-0:45        Condition

-0:45        Compare Less Than (temp bool)

-0:45          direct index (temp float)

-0:45            'c' (temp 2-component vector of float)

-0:45            Constant:

-0:45              0 (const int)

-0:45          Constant:

-0:45            0.000000

-0:45        true case

-0:46        multiply second child into first child (temp float)

-0:46          direct index (temp float)

-0:46            'c' (temp 2-component vector of float)

-0:46            Constant:

-0:46              0 (const int)

-0:46          Constant:

-0:46            -1.000000

-0:48      Test condition and select (temp void)

-0:48        Condition

-0:48        Compare Less Than or Equal (temp bool)

-0:48          direct index (temp float)

-0:48            'c' (temp 2-component vector of float)

-0:48            Constant:

-0:48              0 (const int)

-0:48          Constant:

-0:48            1.000000

-0:48        true case

-0:49        move second child to first child (temp float)

-0:49          direct index (temp float)

-0:49            'rep' (temp 4-component vector of float)

-0:49            Constant:

-0:49              0 (const int)

-0:49          Constant:

-0:49            3.400000

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:51        'rep' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'blend' (uniform float)

-0:?     'u' (uniform 4-component vector of float)

-0:?     'p' (uniform bool)

-0:?     't' (smooth in 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:9  Function Definition: main( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Sequence

-0:11        move second child to first child (temp float)

-0:11          'blendscale' (temp float)

-0:11          Constant:

-0:11            1.789000

-0:13      Sequence

-0:13        move second child to first child (temp 4-component vector of float)

-0:13          'w' (temp 4-component vector of float)

-0:13          'u' (uniform 4-component vector of float)

-0:15      Sequence

-0:15        move second child to first child (temp 4-component vector of float)

-0:15          'w_dep' (temp 4-component vector of float)

-0:15          'u' (uniform 4-component vector of float)

-0:16      Sequence

-0:16        move second child to first child (temp 4-component vector of float)

-0:16          'w_reorder' (temp 4-component vector of float)

-0:16          'u' (uniform 4-component vector of float)

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'w2' (temp 4-component vector of float)

-0:17          'u' (uniform 4-component vector of float)

-0:18      Sequence

-0:18        move second child to first child (temp 4-component vector of float)

-0:18          'w_flow' (temp 4-component vector of float)

-0:18          'u' (uniform 4-component vector of float)

-0:20      move second child to first child (temp float)

-0:20        direct index (temp float)

-0:20          'w_reorder' (temp 4-component vector of float)

-0:20          Constant:

-0:20            2 (const int)

-0:20        'blendscale' (temp float)

-0:22      move second child to first child (temp 2-component vector of float)

-0:22        vector swizzle (temp 2-component vector of float)

-0:22          'w' (temp 4-component vector of float)

-0:22          Sequence

-0:22            Constant:

-0:22              3 (const int)

-0:22            Constant:

-0:22              1 (const int)

-0:22        't' (smooth in 2-component vector of float)

-0:24      move second child to first child (temp float)

-0:24        direct index (temp float)

-0:24          'w_reorder' (temp 4-component vector of float)

-0:24          Constant:

-0:24            0 (const int)

-0:24        'blendscale' (temp float)

-0:26      move second child to first child (temp 4-component vector of float)

-0:26        vector swizzle (temp 4-component vector of float)

-0:26          'w2' (temp 4-component vector of float)

-0:26          Sequence

-0:26            Constant:

-0:26              0 (const int)

-0:26            Constant:

-0:26              1 (const int)

-0:26            Constant:

-0:26              2 (const int)

-0:26            Constant:

-0:26              3 (const int)

-0:26        vector swizzle (temp 4-component vector of float)

-0:26          'u' (uniform 4-component vector of float)

-0:26          Sequence

-0:26            Constant:

-0:26              2 (const int)

-0:26            Constant:

-0:26              3 (const int)

-0:26            Constant:

-0:26              0 (const int)

-0:26            Constant:

-0:26              1 (const int)

-0:28      move second child to first child (temp float)

-0:28        direct index (temp float)

-0:28          'w_reorder' (temp 4-component vector of float)

-0:28          Constant:

-0:28            1 (const int)

-0:28        'blendscale' (temp float)

-0:30      move second child to first child (temp 2-component vector of float)

-0:30        vector swizzle (temp 2-component vector of float)

-0:30          'w_dep' (temp 4-component vector of float)

-0:30          Sequence

-0:30            Constant:

-0:30              0 (const int)

-0:30            Constant:

-0:30              1 (const int)

-0:30        vector swizzle (temp 2-component vector of float)

-0:30          'w2' (temp 4-component vector of float)

-0:30          Sequence

-0:30            Constant:

-0:30              0 (const int)

-0:30            Constant:

-0:30              2 (const int)

-0:31      move second child to first child (temp 2-component vector of float)

-0:31        vector swizzle (temp 2-component vector of float)

-0:31          'w_dep' (temp 4-component vector of float)

-0:31          Sequence

-0:31            Constant:

-0:31              2 (const int)

-0:31            Constant:

-0:31              3 (const int)

-0:31        't' (smooth in 2-component vector of float)

-0:33      move second child to first child (temp 2-component vector of float)

-0:33        vector swizzle (temp 2-component vector of float)

-0:33          'w_undef' (temp 4-component vector of float)

-0:33          Sequence

-0:33            Constant:

-0:33              0 (const int)

-0:33            Constant:

-0:33              1 (const int)

-0:33        vector swizzle (temp 2-component vector of float)

-0:33          'u' (uniform 4-component vector of float)

-0:33          Sequence

-0:33            Constant:

-0:33              2 (const int)

-0:33            Constant:

-0:33              3 (const int)

-0:35      Test condition and select (temp void)

-0:35        Condition

-0:35        'p' (uniform bool)

-0:35        true case

-0:36        move second child to first child (temp float)

-0:36          direct index (temp float)

-0:36            'w_flow' (temp 4-component vector of float)

-0:36            Constant:

-0:36              0 (const int)

-0:36          direct index (temp float)

-0:36            't' (smooth in 2-component vector of float)

-0:36            Constant:

-0:36              0 (const int)

-0:35        false case

-0:38        move second child to first child (temp float)

-0:38          direct index (temp float)

-0:38            'w_flow' (temp 4-component vector of float)

-0:38            Constant:

-0:38              0 (const int)

-0:38          direct index (temp float)

-0:38            't' (smooth in 2-component vector of float)

-0:38            Constant:

-0:38              1 (const int)

-0:40      move second child to first child (temp 4-component vector of float)

-0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:40        mix (global 4-component vector of float)

-0:40          'w_reorder' (temp 4-component vector of float)

-0:40          'w_undef' (temp 4-component vector of float)

-0:40          component-wise multiply (temp 4-component vector of float)

-0:40            component-wise multiply (temp 4-component vector of float)

-0:40              component-wise multiply (temp 4-component vector of float)

-0:40                'w' (temp 4-component vector of float)

-0:40                'w2' (temp 4-component vector of float)

-0:40              'w_dep' (temp 4-component vector of float)

-0:40            'w_flow' (temp 4-component vector of float)

-0:42      Sequence

-0:42        move second child to first child (temp 2-component vector of float)

-0:42          'c' (temp 2-component vector of float)

-0:42          't' (smooth in 2-component vector of float)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of float)

-0:43          'rep' (temp 4-component vector of float)

-0:43          Constant:

-0:43            0.000000

-0:43            0.000000

-0:43            0.000000

-0:43            1.000000

-0:45      Test condition and select (temp void)

-0:45        Condition

-0:45        Compare Less Than (temp bool)

-0:45          direct index (temp float)

-0:45            'c' (temp 2-component vector of float)

-0:45            Constant:

-0:45              0 (const int)

-0:45          Constant:

-0:45            0.000000

-0:45        true case

-0:46        multiply second child into first child (temp float)

-0:46          direct index (temp float)

-0:46            'c' (temp 2-component vector of float)

-0:46            Constant:

-0:46              0 (const int)

-0:46          Constant:

-0:46            -1.000000

-0:48      Test condition and select (temp void)

-0:48        Condition

-0:48        Compare Less Than or Equal (temp bool)

-0:48          direct index (temp float)

-0:48            'c' (temp 2-component vector of float)

-0:48            Constant:

-0:48              0 (const int)

-0:48          Constant:

-0:48            1.000000

-0:48        true case

-0:49        move second child to first child (temp float)

-0:49          direct index (temp float)

-0:49            'rep' (temp 4-component vector of float)

-0:49            Constant:

-0:49              0 (const int)

-0:49          Constant:

-0:49            3.400000

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:51        'rep' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'blend' (uniform float)

-0:?     'u' (uniform 4-component vector of float)

-0:?     'p' (uniform bool)

-0:?     't' (smooth in 2-component vector of float)

-

+swizzle.frag
+Shader version: 110
+0:? Sequence
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'blendscale' (temp float)
+0:11          Constant:
+0:11            1.789000
+0:13      Sequence
+0:13        move second child to first child (temp 4-component vector of float)
+0:13          'w' (temp 4-component vector of float)
+0:13          'u' (uniform 4-component vector of float)
+0:15      Sequence
+0:15        move second child to first child (temp 4-component vector of float)
+0:15          'w_dep' (temp 4-component vector of float)
+0:15          'u' (uniform 4-component vector of float)
+0:16      Sequence
+0:16        move second child to first child (temp 4-component vector of float)
+0:16          'w_reorder' (temp 4-component vector of float)
+0:16          'u' (uniform 4-component vector of float)
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'w2' (temp 4-component vector of float)
+0:17          'u' (uniform 4-component vector of float)
+0:18      Sequence
+0:18        move second child to first child (temp 4-component vector of float)
+0:18          'w_flow' (temp 4-component vector of float)
+0:18          'u' (uniform 4-component vector of float)
+0:20      move second child to first child (temp float)
+0:20        direct index (temp float)
+0:20          'w_reorder' (temp 4-component vector of float)
+0:20          Constant:
+0:20            2 (const int)
+0:20        'blendscale' (temp float)
+0:22      move second child to first child (temp 2-component vector of float)
+0:22        vector swizzle (temp 2-component vector of float)
+0:22          'w' (temp 4-component vector of float)
+0:22          Sequence
+0:22            Constant:
+0:22              3 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22        't' (smooth in 2-component vector of float)
+0:24      move second child to first child (temp float)
+0:24        direct index (temp float)
+0:24          'w_reorder' (temp 4-component vector of float)
+0:24          Constant:
+0:24            0 (const int)
+0:24        'blendscale' (temp float)
+0:26      move second child to first child (temp 4-component vector of float)
+0:26        vector swizzle (temp 4-component vector of float)
+0:26          'w2' (temp 4-component vector of float)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26            Constant:
+0:26              3 (const int)
+0:26        vector swizzle (temp 4-component vector of float)
+0:26          'u' (uniform 4-component vector of float)
+0:26          Sequence
+0:26            Constant:
+0:26              2 (const int)
+0:26            Constant:
+0:26              3 (const int)
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:28      move second child to first child (temp float)
+0:28        direct index (temp float)
+0:28          'w_reorder' (temp 4-component vector of float)
+0:28          Constant:
+0:28            1 (const int)
+0:28        'blendscale' (temp float)
+0:30      move second child to first child (temp 2-component vector of float)
+0:30        vector swizzle (temp 2-component vector of float)
+0:30          'w_dep' (temp 4-component vector of float)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30        vector swizzle (temp 2-component vector of float)
+0:30          'w2' (temp 4-component vector of float)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              2 (const int)
+0:31      move second child to first child (temp 2-component vector of float)
+0:31        vector swizzle (temp 2-component vector of float)
+0:31          'w_dep' (temp 4-component vector of float)
+0:31          Sequence
+0:31            Constant:
+0:31              2 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31        't' (smooth in 2-component vector of float)
+0:33      move second child to first child (temp 2-component vector of float)
+0:33        vector swizzle (temp 2-component vector of float)
+0:33          'w_undef' (temp 4-component vector of float)
+0:33          Sequence
+0:33            Constant:
+0:33              0 (const int)
+0:33            Constant:
+0:33              1 (const int)
+0:33        vector swizzle (temp 2-component vector of float)
+0:33          'u' (uniform 4-component vector of float)
+0:33          Sequence
+0:33            Constant:
+0:33              2 (const int)
+0:33            Constant:
+0:33              3 (const int)
+0:35      Test condition and select (temp void)
+0:35        Condition
+0:35        'p' (uniform bool)
+0:35        true case
+0:36        move second child to first child (temp float)
+0:36          direct index (temp float)
+0:36            'w_flow' (temp 4-component vector of float)
+0:36            Constant:
+0:36              0 (const int)
+0:36          direct index (temp float)
+0:36            't' (smooth in 2-component vector of float)
+0:36            Constant:
+0:36              0 (const int)
+0:35        false case
+0:38        move second child to first child (temp float)
+0:38          direct index (temp float)
+0:38            'w_flow' (temp 4-component vector of float)
+0:38            Constant:
+0:38              0 (const int)
+0:38          direct index (temp float)
+0:38            't' (smooth in 2-component vector of float)
+0:38            Constant:
+0:38              1 (const int)
+0:40      move second child to first child (temp 4-component vector of float)
+0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40        mix (global 4-component vector of float)
+0:40          'w_reorder' (temp 4-component vector of float)
+0:40          'w_undef' (temp 4-component vector of float)
+0:40          component-wise multiply (temp 4-component vector of float)
+0:40            component-wise multiply (temp 4-component vector of float)
+0:40              component-wise multiply (temp 4-component vector of float)
+0:40                'w' (temp 4-component vector of float)
+0:40                'w2' (temp 4-component vector of float)
+0:40              'w_dep' (temp 4-component vector of float)
+0:40            'w_flow' (temp 4-component vector of float)
+0:42      Sequence
+0:42        move second child to first child (temp 2-component vector of float)
+0:42          'c' (temp 2-component vector of float)
+0:42          't' (smooth in 2-component vector of float)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of float)
+0:43          'rep' (temp 4-component vector of float)
+0:43          Constant:
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:45      Test condition and select (temp void)
+0:45        Condition
+0:45        Compare Less Than (temp bool)
+0:45          direct index (temp float)
+0:45            'c' (temp 2-component vector of float)
+0:45            Constant:
+0:45              0 (const int)
+0:45          Constant:
+0:45            0.000000
+0:45        true case
+0:46        multiply second child into first child (temp float)
+0:46          direct index (temp float)
+0:46            'c' (temp 2-component vector of float)
+0:46            Constant:
+0:46              0 (const int)
+0:46          Constant:
+0:46            -1.000000
+0:48      Test condition and select (temp void)
+0:48        Condition
+0:48        Compare Less Than or Equal (temp bool)
+0:48          direct index (temp float)
+0:48            'c' (temp 2-component vector of float)
+0:48            Constant:
+0:48              0 (const int)
+0:48          Constant:
+0:48            1.000000
+0:48        true case
+0:49        move second child to first child (temp float)
+0:49          direct index (temp float)
+0:49            'rep' (temp 4-component vector of float)
+0:49            Constant:
+0:49              0 (const int)
+0:49          Constant:
+0:49            3.400000
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:51        'rep' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'blend' (uniform float)
+0:?     'u' (uniform 4-component vector of float)
+0:?     'p' (uniform bool)
+0:?     't' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:9  Function Definition: main( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Sequence
+0:11        move second child to first child (temp float)
+0:11          'blendscale' (temp float)
+0:11          Constant:
+0:11            1.789000
+0:13      Sequence
+0:13        move second child to first child (temp 4-component vector of float)
+0:13          'w' (temp 4-component vector of float)
+0:13          'u' (uniform 4-component vector of float)
+0:15      Sequence
+0:15        move second child to first child (temp 4-component vector of float)
+0:15          'w_dep' (temp 4-component vector of float)
+0:15          'u' (uniform 4-component vector of float)
+0:16      Sequence
+0:16        move second child to first child (temp 4-component vector of float)
+0:16          'w_reorder' (temp 4-component vector of float)
+0:16          'u' (uniform 4-component vector of float)
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'w2' (temp 4-component vector of float)
+0:17          'u' (uniform 4-component vector of float)
+0:18      Sequence
+0:18        move second child to first child (temp 4-component vector of float)
+0:18          'w_flow' (temp 4-component vector of float)
+0:18          'u' (uniform 4-component vector of float)
+0:20      move second child to first child (temp float)
+0:20        direct index (temp float)
+0:20          'w_reorder' (temp 4-component vector of float)
+0:20          Constant:
+0:20            2 (const int)
+0:20        'blendscale' (temp float)
+0:22      move second child to first child (temp 2-component vector of float)
+0:22        vector swizzle (temp 2-component vector of float)
+0:22          'w' (temp 4-component vector of float)
+0:22          Sequence
+0:22            Constant:
+0:22              3 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22        't' (smooth in 2-component vector of float)
+0:24      move second child to first child (temp float)
+0:24        direct index (temp float)
+0:24          'w_reorder' (temp 4-component vector of float)
+0:24          Constant:
+0:24            0 (const int)
+0:24        'blendscale' (temp float)
+0:26      move second child to first child (temp 4-component vector of float)
+0:26        vector swizzle (temp 4-component vector of float)
+0:26          'w2' (temp 4-component vector of float)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26            Constant:
+0:26              3 (const int)
+0:26        vector swizzle (temp 4-component vector of float)
+0:26          'u' (uniform 4-component vector of float)
+0:26          Sequence
+0:26            Constant:
+0:26              2 (const int)
+0:26            Constant:
+0:26              3 (const int)
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:28      move second child to first child (temp float)
+0:28        direct index (temp float)
+0:28          'w_reorder' (temp 4-component vector of float)
+0:28          Constant:
+0:28            1 (const int)
+0:28        'blendscale' (temp float)
+0:30      move second child to first child (temp 2-component vector of float)
+0:30        vector swizzle (temp 2-component vector of float)
+0:30          'w_dep' (temp 4-component vector of float)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30        vector swizzle (temp 2-component vector of float)
+0:30          'w2' (temp 4-component vector of float)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              2 (const int)
+0:31      move second child to first child (temp 2-component vector of float)
+0:31        vector swizzle (temp 2-component vector of float)
+0:31          'w_dep' (temp 4-component vector of float)
+0:31          Sequence
+0:31            Constant:
+0:31              2 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31        't' (smooth in 2-component vector of float)
+0:33      move second child to first child (temp 2-component vector of float)
+0:33        vector swizzle (temp 2-component vector of float)
+0:33          'w_undef' (temp 4-component vector of float)
+0:33          Sequence
+0:33            Constant:
+0:33              0 (const int)
+0:33            Constant:
+0:33              1 (const int)
+0:33        vector swizzle (temp 2-component vector of float)
+0:33          'u' (uniform 4-component vector of float)
+0:33          Sequence
+0:33            Constant:
+0:33              2 (const int)
+0:33            Constant:
+0:33              3 (const int)
+0:35      Test condition and select (temp void)
+0:35        Condition
+0:35        'p' (uniform bool)
+0:35        true case
+0:36        move second child to first child (temp float)
+0:36          direct index (temp float)
+0:36            'w_flow' (temp 4-component vector of float)
+0:36            Constant:
+0:36              0 (const int)
+0:36          direct index (temp float)
+0:36            't' (smooth in 2-component vector of float)
+0:36            Constant:
+0:36              0 (const int)
+0:35        false case
+0:38        move second child to first child (temp float)
+0:38          direct index (temp float)
+0:38            'w_flow' (temp 4-component vector of float)
+0:38            Constant:
+0:38              0 (const int)
+0:38          direct index (temp float)
+0:38            't' (smooth in 2-component vector of float)
+0:38            Constant:
+0:38              1 (const int)
+0:40      move second child to first child (temp 4-component vector of float)
+0:40        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:40        mix (global 4-component vector of float)
+0:40          'w_reorder' (temp 4-component vector of float)
+0:40          'w_undef' (temp 4-component vector of float)
+0:40          component-wise multiply (temp 4-component vector of float)
+0:40            component-wise multiply (temp 4-component vector of float)
+0:40              component-wise multiply (temp 4-component vector of float)
+0:40                'w' (temp 4-component vector of float)
+0:40                'w2' (temp 4-component vector of float)
+0:40              'w_dep' (temp 4-component vector of float)
+0:40            'w_flow' (temp 4-component vector of float)
+0:42      Sequence
+0:42        move second child to first child (temp 2-component vector of float)
+0:42          'c' (temp 2-component vector of float)
+0:42          't' (smooth in 2-component vector of float)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of float)
+0:43          'rep' (temp 4-component vector of float)
+0:43          Constant:
+0:43            0.000000
+0:43            0.000000
+0:43            0.000000
+0:43            1.000000
+0:45      Test condition and select (temp void)
+0:45        Condition
+0:45        Compare Less Than (temp bool)
+0:45          direct index (temp float)
+0:45            'c' (temp 2-component vector of float)
+0:45            Constant:
+0:45              0 (const int)
+0:45          Constant:
+0:45            0.000000
+0:45        true case
+0:46        multiply second child into first child (temp float)
+0:46          direct index (temp float)
+0:46            'c' (temp 2-component vector of float)
+0:46            Constant:
+0:46              0 (const int)
+0:46          Constant:
+0:46            -1.000000
+0:48      Test condition and select (temp void)
+0:48        Condition
+0:48        Compare Less Than or Equal (temp bool)
+0:48          direct index (temp float)
+0:48            'c' (temp 2-component vector of float)
+0:48            Constant:
+0:48              0 (const int)
+0:48          Constant:
+0:48            1.000000
+0:48        true case
+0:49        move second child to first child (temp float)
+0:49          direct index (temp float)
+0:49            'rep' (temp 4-component vector of float)
+0:49            Constant:
+0:49              0 (const int)
+0:49          Constant:
+0:49            3.400000
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:51        'rep' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'blend' (uniform float)
+0:?     'u' (uniform 4-component vector of float)
+0:?     'p' (uniform bool)
+0:?     't' (smooth in 2-component vector of float)
+
diff --git a/Test/baseResults/syntaxError.frag.out b/Test/baseResults/syntaxError.frag.out
index 2d9bc6a..af0e732 100644
--- a/Test/baseResults/syntaxError.frag.out
+++ b/Test/baseResults/syntaxError.frag.out
@@ -1,24 +1,24 @@
-syntaxError.frag

-ERROR: 0:9: 'vec5' : undeclared identifier 

-ERROR: 0:9: '' :  syntax error

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

-

-Linked fragment stage:

-

-

-Shader version: 120

-ERROR: node is still EOpNull!

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

+syntaxError.frag
+ERROR: 0:9: 'vec5' : undeclared identifier 
+ERROR: 0:9: '' :  syntax error
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+ERROR: node is still EOpNull!
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
diff --git a/Test/baseResults/test.conf b/Test/baseResults/test.conf
index ae7da92..f156c5c 100644
--- a/Test/baseResults/test.conf
+++ b/Test/baseResults/test.conf
@@ -1,92 +1,92 @@
-MaxLights 32

-MaxClipPlanes 6

-MaxTextureUnits 32

-MaxTextureCoords 32

-MaxVertexAttribs 64

-MaxVertexUniformComponents 4096

-MaxVaryingFloats 64

-MaxVertexTextureImageUnits 32

-MaxCombinedTextureImageUnits 80

-MaxTextureImageUnits 32

-MaxFragmentUniformComponents 4096

-MaxDrawBuffers 32

-MaxVertexUniformVectors 128

-MaxVaryingVectors 8

-MaxFragmentUniformVectors 16

-MaxVertexOutputVectors 16

-MaxFragmentInputVectors 15

-MinProgramTexelOffset -8

-MaxProgramTexelOffset 7

-MaxClipDistances 8

-MaxComputeWorkGroupCountX 65535

-MaxComputeWorkGroupCountY 65535

-MaxComputeWorkGroupCountZ 65535

-MaxComputeWorkGroupSizeX 1024

-MaxComputeWorkGroupSizeY 1024

-MaxComputeWorkGroupSizeZ 64

-MaxComputeUniformComponents 1024

-MaxComputeTextureImageUnits 16

-MaxComputeImageUniforms 8

-MaxComputeAtomicCounters 8

-MaxComputeAtomicCounterBuffers 1

-MaxVaryingComponents 60

-MaxVertexOutputComponents 64

-MaxGeometryInputComponents 64

-MaxGeometryOutputComponents 128

-MaxFragmentInputComponents 128

-MaxImageUnits 8

-MaxCombinedImageUnitsAndFragmentOutputs 8

-MaxCombinedShaderOutputResources 8

-MaxImageSamples 0

-MaxVertexImageUniforms 0

-MaxTessControlImageUniforms 0

-MaxTessEvaluationImageUniforms 0

-MaxGeometryImageUniforms 0

-MaxFragmentImageUniforms 8

-MaxCombinedImageUniforms 8

-MaxGeometryTextureImageUnits 16

-MaxGeometryOutputVertices 256

-MaxGeometryTotalOutputComponents 1024

-MaxGeometryUniformComponents 1024

-MaxGeometryVaryingComponents 64

-MaxTessControlInputComponents 128

-MaxTessControlOutputComponents 128

-MaxTessControlTextureImageUnits 16

-MaxTessControlUniformComponents 1024

-MaxTessControlTotalOutputComponents 4096

-MaxTessEvaluationInputComponents 128

-MaxTessEvaluationOutputComponents 128

-MaxTessEvaluationTextureImageUnits 16

-MaxTessEvaluationUniformComponents 1024

-MaxTessPatchComponents 120

-MaxPatchVertices 32

-MaxTessGenLevel 64

-MaxViewports 16

-MaxVertexAtomicCounters 0

-MaxTessControlAtomicCounters 0

-MaxTessEvaluationAtomicCounters 0

-MaxGeometryAtomicCounters 0

-MaxFragmentAtomicCounters 8

-MaxCombinedAtomicCounters 8

-MaxAtomicCounterBindings 1

-MaxVertexAtomicCounterBuffers 0

-MaxTessControlAtomicCounterBuffers 0

-MaxTessEvaluationAtomicCounterBuffers 0

-MaxGeometryAtomicCounterBuffers 0

-MaxFragmentAtomicCounterBuffers 1

-MaxCombinedAtomicCounterBuffers 1

-MaxAtomicCounterBufferSize 16384

-MaxTransformFeedbackBuffers 4

-MaxTransformFeedbackInterleavedComponents 64

-MaxCullDistances 8

-MaxCombinedClipAndCullDistances 8

-MaxSamples 4

-nonInductiveForLoops 1

-whileLoops 1

-doWhileLoops 1

-generalUniformIndexing 1

-generalAttributeMatrixVectorIndexing 1

-generalVaryingIndexing 1

-generalSamplerIndexing 1

-generalVariableIndexing 1

-generalConstantMatrixVectorIndexing 1

+MaxLights 32
+MaxClipPlanes 6
+MaxTextureUnits 32
+MaxTextureCoords 32
+MaxVertexAttribs 64
+MaxVertexUniformComponents 4096
+MaxVaryingFloats 64
+MaxVertexTextureImageUnits 32
+MaxCombinedTextureImageUnits 80
+MaxTextureImageUnits 32
+MaxFragmentUniformComponents 4096
+MaxDrawBuffers 32
+MaxVertexUniformVectors 128
+MaxVaryingVectors 8
+MaxFragmentUniformVectors 16
+MaxVertexOutputVectors 16
+MaxFragmentInputVectors 15
+MinProgramTexelOffset -8
+MaxProgramTexelOffset 7
+MaxClipDistances 8
+MaxComputeWorkGroupCountX 65535
+MaxComputeWorkGroupCountY 65535
+MaxComputeWorkGroupCountZ 65535
+MaxComputeWorkGroupSizeX 1024
+MaxComputeWorkGroupSizeY 1024
+MaxComputeWorkGroupSizeZ 64
+MaxComputeUniformComponents 1024
+MaxComputeTextureImageUnits 16
+MaxComputeImageUniforms 8
+MaxComputeAtomicCounters 8
+MaxComputeAtomicCounterBuffers 1
+MaxVaryingComponents 60
+MaxVertexOutputComponents 64
+MaxGeometryInputComponents 64
+MaxGeometryOutputComponents 128
+MaxFragmentInputComponents 128
+MaxImageUnits 8
+MaxCombinedImageUnitsAndFragmentOutputs 8
+MaxCombinedShaderOutputResources 8
+MaxImageSamples 0
+MaxVertexImageUniforms 0
+MaxTessControlImageUniforms 0
+MaxTessEvaluationImageUniforms 0
+MaxGeometryImageUniforms 0
+MaxFragmentImageUniforms 8
+MaxCombinedImageUniforms 8
+MaxGeometryTextureImageUnits 16
+MaxGeometryOutputVertices 256
+MaxGeometryTotalOutputComponents 1024
+MaxGeometryUniformComponents 1024
+MaxGeometryVaryingComponents 64
+MaxTessControlInputComponents 128
+MaxTessControlOutputComponents 128
+MaxTessControlTextureImageUnits 16
+MaxTessControlUniformComponents 1024
+MaxTessControlTotalOutputComponents 4096
+MaxTessEvaluationInputComponents 128
+MaxTessEvaluationOutputComponents 128
+MaxTessEvaluationTextureImageUnits 16
+MaxTessEvaluationUniformComponents 1024
+MaxTessPatchComponents 120
+MaxPatchVertices 32
+MaxTessGenLevel 64
+MaxViewports 16
+MaxVertexAtomicCounters 0
+MaxTessControlAtomicCounters 0
+MaxTessEvaluationAtomicCounters 0
+MaxGeometryAtomicCounters 0
+MaxFragmentAtomicCounters 8
+MaxCombinedAtomicCounters 8
+MaxAtomicCounterBindings 1
+MaxVertexAtomicCounterBuffers 0
+MaxTessControlAtomicCounterBuffers 0
+MaxTessEvaluationAtomicCounterBuffers 0
+MaxGeometryAtomicCounterBuffers 0
+MaxFragmentAtomicCounterBuffers 1
+MaxCombinedAtomicCounterBuffers 1
+MaxAtomicCounterBufferSize 16384
+MaxTransformFeedbackBuffers 4
+MaxTransformFeedbackInterleavedComponents 64
+MaxCullDistances 8
+MaxCombinedClipAndCullDistances 8
+MaxSamples 4
+nonInductiveForLoops 1
+whileLoops 1
+doWhileLoops 1
+generalUniformIndexing 1
+generalAttributeMatrixVectorIndexing 1
+generalVaryingIndexing 1
+generalSamplerIndexing 1
+generalVariableIndexing 1
+generalConstantMatrixVectorIndexing 1
diff --git a/Test/baseResults/test.frag.out b/Test/baseResults/test.frag.out
index f98d0dc..e6b9876 100644
--- a/Test/baseResults/test.frag.out
+++ b/Test/baseResults/test.frag.out
@@ -1,115 +1,115 @@
-test.frag

-Shader version: 110

-0:? Sequence

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:15    Sequence

-0:15      Sequence

-0:15        move second child to first child (temp float)

-0:15          'blendscale' (temp float)

-0:15          Constant:

-0:15            1.789000

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'v' (temp 4-component vector of float)

-0:17          vector swizzle (temp 4-component vector of float)

-0:17            texture (global 4-component vector of float)

-0:17              'texSampler2D' (uniform sampler2D)

-0:17              divide (temp 2-component vector of float)

-0:17                add (temp 2-component vector of float)

-0:17                  't' (smooth in 2-component vector of float)

-0:17                  'scale' (uniform 2-component vector of float)

-0:17                'scale' (uniform 2-component vector of float)

-0:17            Sequence

-0:17              Constant:

-0:17                3 (const int)

-0:17              Constant:

-0:17                2 (const int)

-0:17              Constant:

-0:17                1 (const int)

-0:17              Constant:

-0:17                0 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp 4-component vector of float)

-0:19          'w' (temp 4-component vector of float)

-0:19          add (temp 4-component vector of float)

-0:19            texture (global 4-component vector of float)

-0:19              'texSampler3D' (uniform sampler3D)

-0:19              'coords' (smooth in 3-component vector of float)

-0:19            'v' (temp 4-component vector of float)

-0:21      move second child to first child (temp 4-component vector of float)

-0:21        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:21        mix (global 4-component vector of float)

-0:21          'w' (temp 4-component vector of float)

-0:21          'u' (uniform 4-component vector of float)

-0:21          component-wise multiply (temp float)

-0:21            'blend' (uniform float)

-0:21            'blendscale' (temp float)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'texSampler3D' (uniform sampler3D)

-0:?     'blend' (uniform float)

-0:?     'scale' (uniform 2-component vector of float)

-0:?     'u' (uniform 4-component vector of float)

-0:?     't' (smooth in 2-component vector of float)

-0:?     'coords' (smooth in 3-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:13  Function Definition: main( (global void)

-0:13    Function Parameters: 

-0:15    Sequence

-0:15      Sequence

-0:15        move second child to first child (temp float)

-0:15          'blendscale' (temp float)

-0:15          Constant:

-0:15            1.789000

-0:17      Sequence

-0:17        move second child to first child (temp 4-component vector of float)

-0:17          'v' (temp 4-component vector of float)

-0:17          vector swizzle (temp 4-component vector of float)

-0:17            texture (global 4-component vector of float)

-0:17              'texSampler2D' (uniform sampler2D)

-0:17              divide (temp 2-component vector of float)

-0:17                add (temp 2-component vector of float)

-0:17                  't' (smooth in 2-component vector of float)

-0:17                  'scale' (uniform 2-component vector of float)

-0:17                'scale' (uniform 2-component vector of float)

-0:17            Sequence

-0:17              Constant:

-0:17                3 (const int)

-0:17              Constant:

-0:17                2 (const int)

-0:17              Constant:

-0:17                1 (const int)

-0:17              Constant:

-0:17                0 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp 4-component vector of float)

-0:19          'w' (temp 4-component vector of float)

-0:19          add (temp 4-component vector of float)

-0:19            texture (global 4-component vector of float)

-0:19              'texSampler3D' (uniform sampler3D)

-0:19              'coords' (smooth in 3-component vector of float)

-0:19            'v' (temp 4-component vector of float)

-0:21      move second child to first child (temp 4-component vector of float)

-0:21        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:21        mix (global 4-component vector of float)

-0:21          'w' (temp 4-component vector of float)

-0:21          'u' (uniform 4-component vector of float)

-0:21          component-wise multiply (temp float)

-0:21            'blend' (uniform float)

-0:21            'blendscale' (temp float)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'texSampler3D' (uniform sampler3D)

-0:?     'blend' (uniform float)

-0:?     'scale' (uniform 2-component vector of float)

-0:?     'u' (uniform 4-component vector of float)

-0:?     't' (smooth in 2-component vector of float)

-0:?     'coords' (smooth in 3-component vector of float)

-

+test.frag
+Shader version: 110
+0:? Sequence
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      Sequence
+0:15        move second child to first child (temp float)
+0:15          'blendscale' (temp float)
+0:15          Constant:
+0:15            1.789000
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'v' (temp 4-component vector of float)
+0:17          vector swizzle (temp 4-component vector of float)
+0:17            texture (global 4-component vector of float)
+0:17              'texSampler2D' (uniform sampler2D)
+0:17              divide (temp 2-component vector of float)
+0:17                add (temp 2-component vector of float)
+0:17                  't' (smooth in 2-component vector of float)
+0:17                  'scale' (uniform 2-component vector of float)
+0:17                'scale' (uniform 2-component vector of float)
+0:17            Sequence
+0:17              Constant:
+0:17                3 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp 4-component vector of float)
+0:19          'w' (temp 4-component vector of float)
+0:19          add (temp 4-component vector of float)
+0:19            texture (global 4-component vector of float)
+0:19              'texSampler3D' (uniform sampler3D)
+0:19              'coords' (smooth in 3-component vector of float)
+0:19            'v' (temp 4-component vector of float)
+0:21      move second child to first child (temp 4-component vector of float)
+0:21        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:21        mix (global 4-component vector of float)
+0:21          'w' (temp 4-component vector of float)
+0:21          'u' (uniform 4-component vector of float)
+0:21          component-wise multiply (temp float)
+0:21            'blend' (uniform float)
+0:21            'blendscale' (temp float)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'texSampler3D' (uniform sampler3D)
+0:?     'blend' (uniform float)
+0:?     'scale' (uniform 2-component vector of float)
+0:?     'u' (uniform 4-component vector of float)
+0:?     't' (smooth in 2-component vector of float)
+0:?     'coords' (smooth in 3-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:13  Function Definition: main( (global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      Sequence
+0:15        move second child to first child (temp float)
+0:15          'blendscale' (temp float)
+0:15          Constant:
+0:15            1.789000
+0:17      Sequence
+0:17        move second child to first child (temp 4-component vector of float)
+0:17          'v' (temp 4-component vector of float)
+0:17          vector swizzle (temp 4-component vector of float)
+0:17            texture (global 4-component vector of float)
+0:17              'texSampler2D' (uniform sampler2D)
+0:17              divide (temp 2-component vector of float)
+0:17                add (temp 2-component vector of float)
+0:17                  't' (smooth in 2-component vector of float)
+0:17                  'scale' (uniform 2-component vector of float)
+0:17                'scale' (uniform 2-component vector of float)
+0:17            Sequence
+0:17              Constant:
+0:17                3 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp 4-component vector of float)
+0:19          'w' (temp 4-component vector of float)
+0:19          add (temp 4-component vector of float)
+0:19            texture (global 4-component vector of float)
+0:19              'texSampler3D' (uniform sampler3D)
+0:19              'coords' (smooth in 3-component vector of float)
+0:19            'v' (temp 4-component vector of float)
+0:21      move second child to first child (temp 4-component vector of float)
+0:21        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:21        mix (global 4-component vector of float)
+0:21          'w' (temp 4-component vector of float)
+0:21          'u' (uniform 4-component vector of float)
+0:21          component-wise multiply (temp float)
+0:21            'blend' (uniform float)
+0:21            'blendscale' (temp float)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'texSampler3D' (uniform sampler3D)
+0:?     'blend' (uniform float)
+0:?     'scale' (uniform 2-component vector of float)
+0:?     'u' (uniform 4-component vector of float)
+0:?     't' (smooth in 2-component vector of float)
+0:?     'coords' (smooth in 3-component vector of float)
+
diff --git a/Test/baseResults/texture.frag.out b/Test/baseResults/texture.frag.out
index d0062e9..5e88609 100644
--- a/Test/baseResults/texture.frag.out
+++ b/Test/baseResults/texture.frag.out
@@ -1,564 +1,564 @@
-texture.frag

-WARNING: 0:14: varying deprecated in version 130; may be removed in future release

-WARNING: 0:15: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:17  Function Definition: main( (global void)

-0:17    Function Parameters: 

-0:19    Sequence

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'blendscale' (temp float)

-0:19          Constant:

-0:19            1.789000

-0:20      Sequence

-0:20        move second child to first child (temp float)

-0:20          'bias' (temp float)

-0:20          Constant:

-0:20            2.000000

-0:21      Sequence

-0:21        move second child to first child (temp float)

-0:21          'lod' (temp float)

-0:21          Constant:

-0:21            3.000000

-0:22      Sequence

-0:22        move second child to first child (temp float)

-0:22          'proj' (temp float)

-0:22          Constant:

-0:22            2.000000

-0:23      Sequence

-0:23        move second child to first child (temp float)

-0:23          'coords1D' (temp float)

-0:23          Constant:

-0:23            1.789000

-0:24      Sequence

-0:24        move second child to first child (temp 3-component vector of float)

-0:24          'coords3D' (temp 3-component vector of float)

-0:24          Constant:

-0:24            1.789000

-0:24            2.718000

-0:24            3.453000

-0:25      Sequence

-0:25        move second child to first child (temp 4-component vector of float)

-0:25          'coords4D' (temp 4-component vector of float)

-0:25          Constant:

-0:25            1.789000

-0:25            2.718000

-0:25            3.453000

-0:25            2.000000

-0:26      Sequence

-0:26        move second child to first child (temp 4-component vector of float)

-0:26          'color' (temp 4-component vector of float)

-0:26          Constant:

-0:26            0.000000

-0:26            0.000000

-0:26            0.000000

-0:26            0.000000

-0:28      add second child into first child (temp 4-component vector of float)

-0:28        'color' (temp 4-component vector of float)

-0:28        texture (global 4-component vector of float)

-0:28          'texSampler1D' (uniform sampler1D)

-0:28          'coords1D' (temp float)

-0:29      add second child into first child (temp 4-component vector of float)

-0:29        'color' (temp 4-component vector of float)

-0:29        texture (global 4-component vector of float)

-0:29          'texSampler1D' (uniform sampler1D)

-0:29          'coords1D' (temp float)

-0:29          'bias' (temp float)

-0:30      add second child into first child (temp 4-component vector of float)

-0:30        'color' (temp 4-component vector of float)

-0:30        textureProj (global 4-component vector of float)

-0:30          'texSampler1D' (uniform sampler1D)

-0:30          'coords2D' (smooth in 2-component vector of float)

-0:31      add second child into first child (temp 4-component vector of float)

-0:31        'color' (temp 4-component vector of float)

-0:31        textureProj (global 4-component vector of float)

-0:31          'texSampler1D' (uniform sampler1D)

-0:31          'coords4D' (temp 4-component vector of float)

-0:32      add second child into first child (temp 4-component vector of float)

-0:32        'color' (temp 4-component vector of float)

-0:32        textureProj (global 4-component vector of float)

-0:32          'texSampler1D' (uniform sampler1D)

-0:32          'coords2D' (smooth in 2-component vector of float)

-0:32          'bias' (temp float)

-0:33      add second child into first child (temp 4-component vector of float)

-0:33        'color' (temp 4-component vector of float)

-0:33        textureProj (global 4-component vector of float)

-0:33          'texSampler1D' (uniform sampler1D)

-0:33          'coords4D' (temp 4-component vector of float)

-0:33          'bias' (temp float)

-0:35      add second child into first child (temp 4-component vector of float)

-0:35        'color' (temp 4-component vector of float)

-0:35        texture (global 4-component vector of float)

-0:35          'texSampler2D' (uniform sampler2D)

-0:35          'coords2D' (smooth in 2-component vector of float)

-0:36      add second child into first child (temp 4-component vector of float)

-0:36        'color' (temp 4-component vector of float)

-0:36        texture (global 4-component vector of float)

-0:36          'texSampler2D' (uniform sampler2D)

-0:36          'coords2D' (smooth in 2-component vector of float)

-0:36          'bias' (temp float)

-0:37      add second child into first child (temp 4-component vector of float)

-0:37        'color' (temp 4-component vector of float)

-0:37        textureProj (global 4-component vector of float)

-0:37          'texSampler2D' (uniform sampler2D)

-0:37          'coords3D' (temp 3-component vector of float)

-0:38      add second child into first child (temp 4-component vector of float)

-0:38        'color' (temp 4-component vector of float)

-0:38        textureProj (global 4-component vector of float)

-0:38          'texSampler2D' (uniform sampler2D)

-0:38          'coords4D' (temp 4-component vector of float)

-0:38          'bias' (temp float)

-0:40      add second child into first child (temp 4-component vector of float)

-0:40        'color' (temp 4-component vector of float)

-0:40        texture (global 4-component vector of float)

-0:40          'texSampler3D' (uniform sampler3D)

-0:40          'coords3D' (temp 3-component vector of float)

-0:41      add second child into first child (temp 4-component vector of float)

-0:41        'color' (temp 4-component vector of float)

-0:41        texture (global 4-component vector of float)

-0:41          'texSampler3D' (uniform sampler3D)

-0:41          'coords3D' (temp 3-component vector of float)

-0:41          'bias' (temp float)

-0:42      add second child into first child (temp 4-component vector of float)

-0:42        'color' (temp 4-component vector of float)

-0:42        textureProj (global 4-component vector of float)

-0:42          'texSampler3D' (uniform sampler3D)

-0:42          'coords4D' (temp 4-component vector of float)

-0:43      add second child into first child (temp 4-component vector of float)

-0:43        'color' (temp 4-component vector of float)

-0:43        textureProj (global 4-component vector of float)

-0:43          'texSampler3D' (uniform sampler3D)

-0:43          'coords4D' (temp 4-component vector of float)

-0:43          'bias' (temp float)

-0:45      add second child into first child (temp 4-component vector of float)

-0:45        'color' (temp 4-component vector of float)

-0:45        texture (global 4-component vector of float)

-0:45          'texSamplerCube' (uniform samplerCube)

-0:45          'coords3D' (temp 3-component vector of float)

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'color' (temp 4-component vector of float)

-0:46        texture (global 4-component vector of float)

-0:46          'texSamplerCube' (uniform samplerCube)

-0:46          'coords3D' (temp 3-component vector of float)

-0:46          'bias' (temp float)

-0:48      add second child into first child (temp 4-component vector of float)

-0:48        'color' (temp 4-component vector of float)

-0:48        texture (global 4-component vector of float)

-0:48          'shadowSampler1D' (uniform sampler1DShadow)

-0:48          'coords3D' (temp 3-component vector of float)

-0:49      add second child into first child (temp 4-component vector of float)

-0:49        'color' (temp 4-component vector of float)

-0:49        texture (global 4-component vector of float)

-0:49          'shadowSampler1D' (uniform sampler1DShadow)

-0:49          'coords3D' (temp 3-component vector of float)

-0:49          'bias' (temp float)

-0:50      add second child into first child (temp 4-component vector of float)

-0:50        'color' (temp 4-component vector of float)

-0:50        texture (global 4-component vector of float)

-0:50          'shadowSampler2D' (uniform sampler2DShadow)

-0:50          'coords3D' (temp 3-component vector of float)

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'color' (temp 4-component vector of float)

-0:51        texture (global 4-component vector of float)

-0:51          'shadowSampler2D' (uniform sampler2DShadow)

-0:51          'coords3D' (temp 3-component vector of float)

-0:51          'bias' (temp float)

-0:52      add second child into first child (temp 4-component vector of float)

-0:52        'color' (temp 4-component vector of float)

-0:52        textureProj (global 4-component vector of float)

-0:52          'shadowSampler1D' (uniform sampler1DShadow)

-0:52          'coords4D' (temp 4-component vector of float)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'color' (temp 4-component vector of float)

-0:53        textureProj (global 4-component vector of float)

-0:53          'shadowSampler1D' (uniform sampler1DShadow)

-0:53          'coords4D' (temp 4-component vector of float)

-0:53          'bias' (temp float)

-0:54      add second child into first child (temp 4-component vector of float)

-0:54        'color' (temp 4-component vector of float)

-0:54        textureProj (global 4-component vector of float)

-0:54          'shadowSampler2D' (uniform sampler2DShadow)

-0:54          'coords4D' (temp 4-component vector of float)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'color' (temp 4-component vector of float)

-0:55        textureProj (global 4-component vector of float)

-0:55          'shadowSampler2D' (uniform sampler2DShadow)

-0:55          'coords4D' (temp 4-component vector of float)

-0:55          'bias' (temp float)

-0:57      Sequence

-0:57        move second child to first child (temp 2-component vector of int)

-0:57          'iCoords2D' (temp 2-component vector of int)

-0:57          Constant:

-0:57            0 (const int)

-0:57            5 (const int)

-0:58      Sequence

-0:58        move second child to first child (temp int)

-0:58          'iLod' (temp int)

-0:58          Constant:

-0:58            1 (const int)

-0:60      add second child into first child (temp 4-component vector of float)

-0:60        'color' (temp 4-component vector of float)

-0:60        textureFetch (global 4-component vector of float)

-0:60          'texSampler2D' (uniform sampler2D)

-0:60          'iCoords2D' (temp 2-component vector of int)

-0:60          'iLod' (temp int)

-0:62      Sequence

-0:62        move second child to first child (temp 2-component vector of float)

-0:62          'gradX' (temp 2-component vector of float)

-0:62          dPdx (global 2-component vector of float)

-0:62            'coords2D' (smooth in 2-component vector of float)

-0:63      Sequence

-0:63        move second child to first child (temp 2-component vector of float)

-0:63          'gradY' (temp 2-component vector of float)

-0:63          dPdy (global 2-component vector of float)

-0:63            'coords2D' (smooth in 2-component vector of float)

-0:66      add second child into first child (temp 4-component vector of float)

-0:66        'color' (temp 4-component vector of float)

-0:66        textureGrad (global 4-component vector of float)

-0:66          'texSampler2D' (uniform sampler2D)

-0:66          'coords2D' (smooth in 2-component vector of float)

-0:66          'gradX' (temp 2-component vector of float)

-0:66          'gradY' (temp 2-component vector of float)

-0:67      add second child into first child (temp 4-component vector of float)

-0:67        'color' (temp 4-component vector of float)

-0:67        textureProjGrad (global 4-component vector of float)

-0:67          'texSampler2D' (uniform sampler2D)

-0:67          Construct vec3 (temp 3-component vector of float)

-0:67            'coords2D' (smooth in 2-component vector of float)

-0:67            'proj' (temp float)

-0:67          'gradX' (temp 2-component vector of float)

-0:67          'gradY' (temp 2-component vector of float)

-0:68      add second child into first child (temp 4-component vector of float)

-0:68        'color' (temp 4-component vector of float)

-0:68        textureGradOffset (global 4-component vector of float)

-0:68          'texSampler2D' (uniform sampler2D)

-0:68          'coords2D' (smooth in 2-component vector of float)

-0:68          'gradX' (temp 2-component vector of float)

-0:68          'gradY' (temp 2-component vector of float)

-0:68          Constant:

-0:68            3 (const int)

-0:68            -7 (const int)

-0:69      add second child into first child (temp 4-component vector of float)

-0:69        'color' (temp 4-component vector of float)

-0:69        textureProjGradOffset (global 4-component vector of float)

-0:69          'texSampler2D' (uniform sampler2D)

-0:69          'coords3D' (temp 3-component vector of float)

-0:69          'gradX' (temp 2-component vector of float)

-0:69          'gradY' (temp 2-component vector of float)

-0:69          Constant:

-0:69            3 (const int)

-0:69            -7 (const int)

-0:70      add second child into first child (temp 4-component vector of float)

-0:70        'color' (temp 4-component vector of float)

-0:70        textureGrad (global float)

-0:70          'shadowSampler2D' (uniform sampler2DShadow)

-0:70          Construct vec3 (temp 3-component vector of float)

-0:70            'coords2D' (smooth in 2-component vector of float)

-0:70            'lod' (temp float)

-0:70          'gradX' (temp 2-component vector of float)

-0:70          'gradY' (temp 2-component vector of float)

-0:72      move second child to first child (temp 4-component vector of float)

-0:72        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:72        mix (global 4-component vector of float)

-0:72          'color' (temp 4-component vector of float)

-0:72          'u' (uniform 4-component vector of float)

-0:72          component-wise multiply (temp float)

-0:72            'blend' (uniform float)

-0:72            'blendscale' (temp float)

-0:?   Linker Objects

-0:?     'texSampler1D' (uniform sampler1D)

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'texSampler3D' (uniform sampler3D)

-0:?     'texSamplerCube' (uniform samplerCube)

-0:?     'shadowSampler1D' (uniform sampler1DShadow)

-0:?     'shadowSampler2D' (uniform sampler2DShadow)

-0:?     'blend' (uniform float)

-0:?     'scale' (uniform 2-component vector of float)

-0:?     'u' (uniform 4-component vector of float)

-0:?     't' (smooth in 2-component vector of float)

-0:?     'coords2D' (smooth in 2-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:17  Function Definition: main( (global void)

-0:17    Function Parameters: 

-0:19    Sequence

-0:19      Sequence

-0:19        move second child to first child (temp float)

-0:19          'blendscale' (temp float)

-0:19          Constant:

-0:19            1.789000

-0:20      Sequence

-0:20        move second child to first child (temp float)

-0:20          'bias' (temp float)

-0:20          Constant:

-0:20            2.000000

-0:21      Sequence

-0:21        move second child to first child (temp float)

-0:21          'lod' (temp float)

-0:21          Constant:

-0:21            3.000000

-0:22      Sequence

-0:22        move second child to first child (temp float)

-0:22          'proj' (temp float)

-0:22          Constant:

-0:22            2.000000

-0:23      Sequence

-0:23        move second child to first child (temp float)

-0:23          'coords1D' (temp float)

-0:23          Constant:

-0:23            1.789000

-0:24      Sequence

-0:24        move second child to first child (temp 3-component vector of float)

-0:24          'coords3D' (temp 3-component vector of float)

-0:24          Constant:

-0:24            1.789000

-0:24            2.718000

-0:24            3.453000

-0:25      Sequence

-0:25        move second child to first child (temp 4-component vector of float)

-0:25          'coords4D' (temp 4-component vector of float)

-0:25          Constant:

-0:25            1.789000

-0:25            2.718000

-0:25            3.453000

-0:25            2.000000

-0:26      Sequence

-0:26        move second child to first child (temp 4-component vector of float)

-0:26          'color' (temp 4-component vector of float)

-0:26          Constant:

-0:26            0.000000

-0:26            0.000000

-0:26            0.000000

-0:26            0.000000

-0:28      add second child into first child (temp 4-component vector of float)

-0:28        'color' (temp 4-component vector of float)

-0:28        texture (global 4-component vector of float)

-0:28          'texSampler1D' (uniform sampler1D)

-0:28          'coords1D' (temp float)

-0:29      add second child into first child (temp 4-component vector of float)

-0:29        'color' (temp 4-component vector of float)

-0:29        texture (global 4-component vector of float)

-0:29          'texSampler1D' (uniform sampler1D)

-0:29          'coords1D' (temp float)

-0:29          'bias' (temp float)

-0:30      add second child into first child (temp 4-component vector of float)

-0:30        'color' (temp 4-component vector of float)

-0:30        textureProj (global 4-component vector of float)

-0:30          'texSampler1D' (uniform sampler1D)

-0:30          'coords2D' (smooth in 2-component vector of float)

-0:31      add second child into first child (temp 4-component vector of float)

-0:31        'color' (temp 4-component vector of float)

-0:31        textureProj (global 4-component vector of float)

-0:31          'texSampler1D' (uniform sampler1D)

-0:31          'coords4D' (temp 4-component vector of float)

-0:32      add second child into first child (temp 4-component vector of float)

-0:32        'color' (temp 4-component vector of float)

-0:32        textureProj (global 4-component vector of float)

-0:32          'texSampler1D' (uniform sampler1D)

-0:32          'coords2D' (smooth in 2-component vector of float)

-0:32          'bias' (temp float)

-0:33      add second child into first child (temp 4-component vector of float)

-0:33        'color' (temp 4-component vector of float)

-0:33        textureProj (global 4-component vector of float)

-0:33          'texSampler1D' (uniform sampler1D)

-0:33          'coords4D' (temp 4-component vector of float)

-0:33          'bias' (temp float)

-0:35      add second child into first child (temp 4-component vector of float)

-0:35        'color' (temp 4-component vector of float)

-0:35        texture (global 4-component vector of float)

-0:35          'texSampler2D' (uniform sampler2D)

-0:35          'coords2D' (smooth in 2-component vector of float)

-0:36      add second child into first child (temp 4-component vector of float)

-0:36        'color' (temp 4-component vector of float)

-0:36        texture (global 4-component vector of float)

-0:36          'texSampler2D' (uniform sampler2D)

-0:36          'coords2D' (smooth in 2-component vector of float)

-0:36          'bias' (temp float)

-0:37      add second child into first child (temp 4-component vector of float)

-0:37        'color' (temp 4-component vector of float)

-0:37        textureProj (global 4-component vector of float)

-0:37          'texSampler2D' (uniform sampler2D)

-0:37          'coords3D' (temp 3-component vector of float)

-0:38      add second child into first child (temp 4-component vector of float)

-0:38        'color' (temp 4-component vector of float)

-0:38        textureProj (global 4-component vector of float)

-0:38          'texSampler2D' (uniform sampler2D)

-0:38          'coords4D' (temp 4-component vector of float)

-0:38          'bias' (temp float)

-0:40      add second child into first child (temp 4-component vector of float)

-0:40        'color' (temp 4-component vector of float)

-0:40        texture (global 4-component vector of float)

-0:40          'texSampler3D' (uniform sampler3D)

-0:40          'coords3D' (temp 3-component vector of float)

-0:41      add second child into first child (temp 4-component vector of float)

-0:41        'color' (temp 4-component vector of float)

-0:41        texture (global 4-component vector of float)

-0:41          'texSampler3D' (uniform sampler3D)

-0:41          'coords3D' (temp 3-component vector of float)

-0:41          'bias' (temp float)

-0:42      add second child into first child (temp 4-component vector of float)

-0:42        'color' (temp 4-component vector of float)

-0:42        textureProj (global 4-component vector of float)

-0:42          'texSampler3D' (uniform sampler3D)

-0:42          'coords4D' (temp 4-component vector of float)

-0:43      add second child into first child (temp 4-component vector of float)

-0:43        'color' (temp 4-component vector of float)

-0:43        textureProj (global 4-component vector of float)

-0:43          'texSampler3D' (uniform sampler3D)

-0:43          'coords4D' (temp 4-component vector of float)

-0:43          'bias' (temp float)

-0:45      add second child into first child (temp 4-component vector of float)

-0:45        'color' (temp 4-component vector of float)

-0:45        texture (global 4-component vector of float)

-0:45          'texSamplerCube' (uniform samplerCube)

-0:45          'coords3D' (temp 3-component vector of float)

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'color' (temp 4-component vector of float)

-0:46        texture (global 4-component vector of float)

-0:46          'texSamplerCube' (uniform samplerCube)

-0:46          'coords3D' (temp 3-component vector of float)

-0:46          'bias' (temp float)

-0:48      add second child into first child (temp 4-component vector of float)

-0:48        'color' (temp 4-component vector of float)

-0:48        texture (global 4-component vector of float)

-0:48          'shadowSampler1D' (uniform sampler1DShadow)

-0:48          'coords3D' (temp 3-component vector of float)

-0:49      add second child into first child (temp 4-component vector of float)

-0:49        'color' (temp 4-component vector of float)

-0:49        texture (global 4-component vector of float)

-0:49          'shadowSampler1D' (uniform sampler1DShadow)

-0:49          'coords3D' (temp 3-component vector of float)

-0:49          'bias' (temp float)

-0:50      add second child into first child (temp 4-component vector of float)

-0:50        'color' (temp 4-component vector of float)

-0:50        texture (global 4-component vector of float)

-0:50          'shadowSampler2D' (uniform sampler2DShadow)

-0:50          'coords3D' (temp 3-component vector of float)

-0:51      add second child into first child (temp 4-component vector of float)

-0:51        'color' (temp 4-component vector of float)

-0:51        texture (global 4-component vector of float)

-0:51          'shadowSampler2D' (uniform sampler2DShadow)

-0:51          'coords3D' (temp 3-component vector of float)

-0:51          'bias' (temp float)

-0:52      add second child into first child (temp 4-component vector of float)

-0:52        'color' (temp 4-component vector of float)

-0:52        textureProj (global 4-component vector of float)

-0:52          'shadowSampler1D' (uniform sampler1DShadow)

-0:52          'coords4D' (temp 4-component vector of float)

-0:53      add second child into first child (temp 4-component vector of float)

-0:53        'color' (temp 4-component vector of float)

-0:53        textureProj (global 4-component vector of float)

-0:53          'shadowSampler1D' (uniform sampler1DShadow)

-0:53          'coords4D' (temp 4-component vector of float)

-0:53          'bias' (temp float)

-0:54      add second child into first child (temp 4-component vector of float)

-0:54        'color' (temp 4-component vector of float)

-0:54        textureProj (global 4-component vector of float)

-0:54          'shadowSampler2D' (uniform sampler2DShadow)

-0:54          'coords4D' (temp 4-component vector of float)

-0:55      add second child into first child (temp 4-component vector of float)

-0:55        'color' (temp 4-component vector of float)

-0:55        textureProj (global 4-component vector of float)

-0:55          'shadowSampler2D' (uniform sampler2DShadow)

-0:55          'coords4D' (temp 4-component vector of float)

-0:55          'bias' (temp float)

-0:57      Sequence

-0:57        move second child to first child (temp 2-component vector of int)

-0:57          'iCoords2D' (temp 2-component vector of int)

-0:57          Constant:

-0:57            0 (const int)

-0:57            5 (const int)

-0:58      Sequence

-0:58        move second child to first child (temp int)

-0:58          'iLod' (temp int)

-0:58          Constant:

-0:58            1 (const int)

-0:60      add second child into first child (temp 4-component vector of float)

-0:60        'color' (temp 4-component vector of float)

-0:60        textureFetch (global 4-component vector of float)

-0:60          'texSampler2D' (uniform sampler2D)

-0:60          'iCoords2D' (temp 2-component vector of int)

-0:60          'iLod' (temp int)

-0:62      Sequence

-0:62        move second child to first child (temp 2-component vector of float)

-0:62          'gradX' (temp 2-component vector of float)

-0:62          dPdx (global 2-component vector of float)

-0:62            'coords2D' (smooth in 2-component vector of float)

-0:63      Sequence

-0:63        move second child to first child (temp 2-component vector of float)

-0:63          'gradY' (temp 2-component vector of float)

-0:63          dPdy (global 2-component vector of float)

-0:63            'coords2D' (smooth in 2-component vector of float)

-0:66      add second child into first child (temp 4-component vector of float)

-0:66        'color' (temp 4-component vector of float)

-0:66        textureGrad (global 4-component vector of float)

-0:66          'texSampler2D' (uniform sampler2D)

-0:66          'coords2D' (smooth in 2-component vector of float)

-0:66          'gradX' (temp 2-component vector of float)

-0:66          'gradY' (temp 2-component vector of float)

-0:67      add second child into first child (temp 4-component vector of float)

-0:67        'color' (temp 4-component vector of float)

-0:67        textureProjGrad (global 4-component vector of float)

-0:67          'texSampler2D' (uniform sampler2D)

-0:67          Construct vec3 (temp 3-component vector of float)

-0:67            'coords2D' (smooth in 2-component vector of float)

-0:67            'proj' (temp float)

-0:67          'gradX' (temp 2-component vector of float)

-0:67          'gradY' (temp 2-component vector of float)

-0:68      add second child into first child (temp 4-component vector of float)

-0:68        'color' (temp 4-component vector of float)

-0:68        textureGradOffset (global 4-component vector of float)

-0:68          'texSampler2D' (uniform sampler2D)

-0:68          'coords2D' (smooth in 2-component vector of float)

-0:68          'gradX' (temp 2-component vector of float)

-0:68          'gradY' (temp 2-component vector of float)

-0:68          Constant:

-0:68            3 (const int)

-0:68            -7 (const int)

-0:69      add second child into first child (temp 4-component vector of float)

-0:69        'color' (temp 4-component vector of float)

-0:69        textureProjGradOffset (global 4-component vector of float)

-0:69          'texSampler2D' (uniform sampler2D)

-0:69          'coords3D' (temp 3-component vector of float)

-0:69          'gradX' (temp 2-component vector of float)

-0:69          'gradY' (temp 2-component vector of float)

-0:69          Constant:

-0:69            3 (const int)

-0:69            -7 (const int)

-0:70      add second child into first child (temp 4-component vector of float)

-0:70        'color' (temp 4-component vector of float)

-0:70        textureGrad (global float)

-0:70          'shadowSampler2D' (uniform sampler2DShadow)

-0:70          Construct vec3 (temp 3-component vector of float)

-0:70            'coords2D' (smooth in 2-component vector of float)

-0:70            'lod' (temp float)

-0:70          'gradX' (temp 2-component vector of float)

-0:70          'gradY' (temp 2-component vector of float)

-0:72      move second child to first child (temp 4-component vector of float)

-0:72        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:72        mix (global 4-component vector of float)

-0:72          'color' (temp 4-component vector of float)

-0:72          'u' (uniform 4-component vector of float)

-0:72          component-wise multiply (temp float)

-0:72            'blend' (uniform float)

-0:72            'blendscale' (temp float)

-0:?   Linker Objects

-0:?     'texSampler1D' (uniform sampler1D)

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'texSampler3D' (uniform sampler3D)

-0:?     'texSamplerCube' (uniform samplerCube)

-0:?     'shadowSampler1D' (uniform sampler1DShadow)

-0:?     'shadowSampler2D' (uniform sampler2DShadow)

-0:?     'blend' (uniform float)

-0:?     'scale' (uniform 2-component vector of float)

-0:?     'u' (uniform 4-component vector of float)

-0:?     't' (smooth in 2-component vector of float)

-0:?     'coords2D' (smooth in 2-component vector of float)

-

+texture.frag
+WARNING: 0:14: varying deprecated in version 130; may be removed in future release
+WARNING: 0:15: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:17  Function Definition: main( (global void)
+0:17    Function Parameters: 
+0:19    Sequence
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'blendscale' (temp float)
+0:19          Constant:
+0:19            1.789000
+0:20      Sequence
+0:20        move second child to first child (temp float)
+0:20          'bias' (temp float)
+0:20          Constant:
+0:20            2.000000
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'lod' (temp float)
+0:21          Constant:
+0:21            3.000000
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'proj' (temp float)
+0:22          Constant:
+0:22            2.000000
+0:23      Sequence
+0:23        move second child to first child (temp float)
+0:23          'coords1D' (temp float)
+0:23          Constant:
+0:23            1.789000
+0:24      Sequence
+0:24        move second child to first child (temp 3-component vector of float)
+0:24          'coords3D' (temp 3-component vector of float)
+0:24          Constant:
+0:24            1.789000
+0:24            2.718000
+0:24            3.453000
+0:25      Sequence
+0:25        move second child to first child (temp 4-component vector of float)
+0:25          'coords4D' (temp 4-component vector of float)
+0:25          Constant:
+0:25            1.789000
+0:25            2.718000
+0:25            3.453000
+0:25            2.000000
+0:26      Sequence
+0:26        move second child to first child (temp 4-component vector of float)
+0:26          'color' (temp 4-component vector of float)
+0:26          Constant:
+0:26            0.000000
+0:26            0.000000
+0:26            0.000000
+0:26            0.000000
+0:28      add second child into first child (temp 4-component vector of float)
+0:28        'color' (temp 4-component vector of float)
+0:28        texture (global 4-component vector of float)
+0:28          'texSampler1D' (uniform sampler1D)
+0:28          'coords1D' (temp float)
+0:29      add second child into first child (temp 4-component vector of float)
+0:29        'color' (temp 4-component vector of float)
+0:29        texture (global 4-component vector of float)
+0:29          'texSampler1D' (uniform sampler1D)
+0:29          'coords1D' (temp float)
+0:29          'bias' (temp float)
+0:30      add second child into first child (temp 4-component vector of float)
+0:30        'color' (temp 4-component vector of float)
+0:30        textureProj (global 4-component vector of float)
+0:30          'texSampler1D' (uniform sampler1D)
+0:30          'coords2D' (smooth in 2-component vector of float)
+0:31      add second child into first child (temp 4-component vector of float)
+0:31        'color' (temp 4-component vector of float)
+0:31        textureProj (global 4-component vector of float)
+0:31          'texSampler1D' (uniform sampler1D)
+0:31          'coords4D' (temp 4-component vector of float)
+0:32      add second child into first child (temp 4-component vector of float)
+0:32        'color' (temp 4-component vector of float)
+0:32        textureProj (global 4-component vector of float)
+0:32          'texSampler1D' (uniform sampler1D)
+0:32          'coords2D' (smooth in 2-component vector of float)
+0:32          'bias' (temp float)
+0:33      add second child into first child (temp 4-component vector of float)
+0:33        'color' (temp 4-component vector of float)
+0:33        textureProj (global 4-component vector of float)
+0:33          'texSampler1D' (uniform sampler1D)
+0:33          'coords4D' (temp 4-component vector of float)
+0:33          'bias' (temp float)
+0:35      add second child into first child (temp 4-component vector of float)
+0:35        'color' (temp 4-component vector of float)
+0:35        texture (global 4-component vector of float)
+0:35          'texSampler2D' (uniform sampler2D)
+0:35          'coords2D' (smooth in 2-component vector of float)
+0:36      add second child into first child (temp 4-component vector of float)
+0:36        'color' (temp 4-component vector of float)
+0:36        texture (global 4-component vector of float)
+0:36          'texSampler2D' (uniform sampler2D)
+0:36          'coords2D' (smooth in 2-component vector of float)
+0:36          'bias' (temp float)
+0:37      add second child into first child (temp 4-component vector of float)
+0:37        'color' (temp 4-component vector of float)
+0:37        textureProj (global 4-component vector of float)
+0:37          'texSampler2D' (uniform sampler2D)
+0:37          'coords3D' (temp 3-component vector of float)
+0:38      add second child into first child (temp 4-component vector of float)
+0:38        'color' (temp 4-component vector of float)
+0:38        textureProj (global 4-component vector of float)
+0:38          'texSampler2D' (uniform sampler2D)
+0:38          'coords4D' (temp 4-component vector of float)
+0:38          'bias' (temp float)
+0:40      add second child into first child (temp 4-component vector of float)
+0:40        'color' (temp 4-component vector of float)
+0:40        texture (global 4-component vector of float)
+0:40          'texSampler3D' (uniform sampler3D)
+0:40          'coords3D' (temp 3-component vector of float)
+0:41      add second child into first child (temp 4-component vector of float)
+0:41        'color' (temp 4-component vector of float)
+0:41        texture (global 4-component vector of float)
+0:41          'texSampler3D' (uniform sampler3D)
+0:41          'coords3D' (temp 3-component vector of float)
+0:41          'bias' (temp float)
+0:42      add second child into first child (temp 4-component vector of float)
+0:42        'color' (temp 4-component vector of float)
+0:42        textureProj (global 4-component vector of float)
+0:42          'texSampler3D' (uniform sampler3D)
+0:42          'coords4D' (temp 4-component vector of float)
+0:43      add second child into first child (temp 4-component vector of float)
+0:43        'color' (temp 4-component vector of float)
+0:43        textureProj (global 4-component vector of float)
+0:43          'texSampler3D' (uniform sampler3D)
+0:43          'coords4D' (temp 4-component vector of float)
+0:43          'bias' (temp float)
+0:45      add second child into first child (temp 4-component vector of float)
+0:45        'color' (temp 4-component vector of float)
+0:45        texture (global 4-component vector of float)
+0:45          'texSamplerCube' (uniform samplerCube)
+0:45          'coords3D' (temp 3-component vector of float)
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'color' (temp 4-component vector of float)
+0:46        texture (global 4-component vector of float)
+0:46          'texSamplerCube' (uniform samplerCube)
+0:46          'coords3D' (temp 3-component vector of float)
+0:46          'bias' (temp float)
+0:48      add second child into first child (temp 4-component vector of float)
+0:48        'color' (temp 4-component vector of float)
+0:48        texture (global 4-component vector of float)
+0:48          'shadowSampler1D' (uniform sampler1DShadow)
+0:48          'coords3D' (temp 3-component vector of float)
+0:49      add second child into first child (temp 4-component vector of float)
+0:49        'color' (temp 4-component vector of float)
+0:49        texture (global 4-component vector of float)
+0:49          'shadowSampler1D' (uniform sampler1DShadow)
+0:49          'coords3D' (temp 3-component vector of float)
+0:49          'bias' (temp float)
+0:50      add second child into first child (temp 4-component vector of float)
+0:50        'color' (temp 4-component vector of float)
+0:50        texture (global 4-component vector of float)
+0:50          'shadowSampler2D' (uniform sampler2DShadow)
+0:50          'coords3D' (temp 3-component vector of float)
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'color' (temp 4-component vector of float)
+0:51        texture (global 4-component vector of float)
+0:51          'shadowSampler2D' (uniform sampler2DShadow)
+0:51          'coords3D' (temp 3-component vector of float)
+0:51          'bias' (temp float)
+0:52      add second child into first child (temp 4-component vector of float)
+0:52        'color' (temp 4-component vector of float)
+0:52        textureProj (global 4-component vector of float)
+0:52          'shadowSampler1D' (uniform sampler1DShadow)
+0:52          'coords4D' (temp 4-component vector of float)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'color' (temp 4-component vector of float)
+0:53        textureProj (global 4-component vector of float)
+0:53          'shadowSampler1D' (uniform sampler1DShadow)
+0:53          'coords4D' (temp 4-component vector of float)
+0:53          'bias' (temp float)
+0:54      add second child into first child (temp 4-component vector of float)
+0:54        'color' (temp 4-component vector of float)
+0:54        textureProj (global 4-component vector of float)
+0:54          'shadowSampler2D' (uniform sampler2DShadow)
+0:54          'coords4D' (temp 4-component vector of float)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'color' (temp 4-component vector of float)
+0:55        textureProj (global 4-component vector of float)
+0:55          'shadowSampler2D' (uniform sampler2DShadow)
+0:55          'coords4D' (temp 4-component vector of float)
+0:55          'bias' (temp float)
+0:57      Sequence
+0:57        move second child to first child (temp 2-component vector of int)
+0:57          'iCoords2D' (temp 2-component vector of int)
+0:57          Constant:
+0:57            0 (const int)
+0:57            5 (const int)
+0:58      Sequence
+0:58        move second child to first child (temp int)
+0:58          'iLod' (temp int)
+0:58          Constant:
+0:58            1 (const int)
+0:60      add second child into first child (temp 4-component vector of float)
+0:60        'color' (temp 4-component vector of float)
+0:60        textureFetch (global 4-component vector of float)
+0:60          'texSampler2D' (uniform sampler2D)
+0:60          'iCoords2D' (temp 2-component vector of int)
+0:60          'iLod' (temp int)
+0:62      Sequence
+0:62        move second child to first child (temp 2-component vector of float)
+0:62          'gradX' (temp 2-component vector of float)
+0:62          dPdx (global 2-component vector of float)
+0:62            'coords2D' (smooth in 2-component vector of float)
+0:63      Sequence
+0:63        move second child to first child (temp 2-component vector of float)
+0:63          'gradY' (temp 2-component vector of float)
+0:63          dPdy (global 2-component vector of float)
+0:63            'coords2D' (smooth in 2-component vector of float)
+0:66      add second child into first child (temp 4-component vector of float)
+0:66        'color' (temp 4-component vector of float)
+0:66        textureGrad (global 4-component vector of float)
+0:66          'texSampler2D' (uniform sampler2D)
+0:66          'coords2D' (smooth in 2-component vector of float)
+0:66          'gradX' (temp 2-component vector of float)
+0:66          'gradY' (temp 2-component vector of float)
+0:67      add second child into first child (temp 4-component vector of float)
+0:67        'color' (temp 4-component vector of float)
+0:67        textureProjGrad (global 4-component vector of float)
+0:67          'texSampler2D' (uniform sampler2D)
+0:67          Construct vec3 (temp 3-component vector of float)
+0:67            'coords2D' (smooth in 2-component vector of float)
+0:67            'proj' (temp float)
+0:67          'gradX' (temp 2-component vector of float)
+0:67          'gradY' (temp 2-component vector of float)
+0:68      add second child into first child (temp 4-component vector of float)
+0:68        'color' (temp 4-component vector of float)
+0:68        textureGradOffset (global 4-component vector of float)
+0:68          'texSampler2D' (uniform sampler2D)
+0:68          'coords2D' (smooth in 2-component vector of float)
+0:68          'gradX' (temp 2-component vector of float)
+0:68          'gradY' (temp 2-component vector of float)
+0:68          Constant:
+0:68            3 (const int)
+0:68            -7 (const int)
+0:69      add second child into first child (temp 4-component vector of float)
+0:69        'color' (temp 4-component vector of float)
+0:69        textureProjGradOffset (global 4-component vector of float)
+0:69          'texSampler2D' (uniform sampler2D)
+0:69          'coords3D' (temp 3-component vector of float)
+0:69          'gradX' (temp 2-component vector of float)
+0:69          'gradY' (temp 2-component vector of float)
+0:69          Constant:
+0:69            3 (const int)
+0:69            -7 (const int)
+0:70      add second child into first child (temp 4-component vector of float)
+0:70        'color' (temp 4-component vector of float)
+0:70        textureGrad (global float)
+0:70          'shadowSampler2D' (uniform sampler2DShadow)
+0:70          Construct vec3 (temp 3-component vector of float)
+0:70            'coords2D' (smooth in 2-component vector of float)
+0:70            'lod' (temp float)
+0:70          'gradX' (temp 2-component vector of float)
+0:70          'gradY' (temp 2-component vector of float)
+0:72      move second child to first child (temp 4-component vector of float)
+0:72        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:72        mix (global 4-component vector of float)
+0:72          'color' (temp 4-component vector of float)
+0:72          'u' (uniform 4-component vector of float)
+0:72          component-wise multiply (temp float)
+0:72            'blend' (uniform float)
+0:72            'blendscale' (temp float)
+0:?   Linker Objects
+0:?     'texSampler1D' (uniform sampler1D)
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'texSampler3D' (uniform sampler3D)
+0:?     'texSamplerCube' (uniform samplerCube)
+0:?     'shadowSampler1D' (uniform sampler1DShadow)
+0:?     'shadowSampler2D' (uniform sampler2DShadow)
+0:?     'blend' (uniform float)
+0:?     'scale' (uniform 2-component vector of float)
+0:?     'u' (uniform 4-component vector of float)
+0:?     't' (smooth in 2-component vector of float)
+0:?     'coords2D' (smooth in 2-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:17  Function Definition: main( (global void)
+0:17    Function Parameters: 
+0:19    Sequence
+0:19      Sequence
+0:19        move second child to first child (temp float)
+0:19          'blendscale' (temp float)
+0:19          Constant:
+0:19            1.789000
+0:20      Sequence
+0:20        move second child to first child (temp float)
+0:20          'bias' (temp float)
+0:20          Constant:
+0:20            2.000000
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'lod' (temp float)
+0:21          Constant:
+0:21            3.000000
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'proj' (temp float)
+0:22          Constant:
+0:22            2.000000
+0:23      Sequence
+0:23        move second child to first child (temp float)
+0:23          'coords1D' (temp float)
+0:23          Constant:
+0:23            1.789000
+0:24      Sequence
+0:24        move second child to first child (temp 3-component vector of float)
+0:24          'coords3D' (temp 3-component vector of float)
+0:24          Constant:
+0:24            1.789000
+0:24            2.718000
+0:24            3.453000
+0:25      Sequence
+0:25        move second child to first child (temp 4-component vector of float)
+0:25          'coords4D' (temp 4-component vector of float)
+0:25          Constant:
+0:25            1.789000
+0:25            2.718000
+0:25            3.453000
+0:25            2.000000
+0:26      Sequence
+0:26        move second child to first child (temp 4-component vector of float)
+0:26          'color' (temp 4-component vector of float)
+0:26          Constant:
+0:26            0.000000
+0:26            0.000000
+0:26            0.000000
+0:26            0.000000
+0:28      add second child into first child (temp 4-component vector of float)
+0:28        'color' (temp 4-component vector of float)
+0:28        texture (global 4-component vector of float)
+0:28          'texSampler1D' (uniform sampler1D)
+0:28          'coords1D' (temp float)
+0:29      add second child into first child (temp 4-component vector of float)
+0:29        'color' (temp 4-component vector of float)
+0:29        texture (global 4-component vector of float)
+0:29          'texSampler1D' (uniform sampler1D)
+0:29          'coords1D' (temp float)
+0:29          'bias' (temp float)
+0:30      add second child into first child (temp 4-component vector of float)
+0:30        'color' (temp 4-component vector of float)
+0:30        textureProj (global 4-component vector of float)
+0:30          'texSampler1D' (uniform sampler1D)
+0:30          'coords2D' (smooth in 2-component vector of float)
+0:31      add second child into first child (temp 4-component vector of float)
+0:31        'color' (temp 4-component vector of float)
+0:31        textureProj (global 4-component vector of float)
+0:31          'texSampler1D' (uniform sampler1D)
+0:31          'coords4D' (temp 4-component vector of float)
+0:32      add second child into first child (temp 4-component vector of float)
+0:32        'color' (temp 4-component vector of float)
+0:32        textureProj (global 4-component vector of float)
+0:32          'texSampler1D' (uniform sampler1D)
+0:32          'coords2D' (smooth in 2-component vector of float)
+0:32          'bias' (temp float)
+0:33      add second child into first child (temp 4-component vector of float)
+0:33        'color' (temp 4-component vector of float)
+0:33        textureProj (global 4-component vector of float)
+0:33          'texSampler1D' (uniform sampler1D)
+0:33          'coords4D' (temp 4-component vector of float)
+0:33          'bias' (temp float)
+0:35      add second child into first child (temp 4-component vector of float)
+0:35        'color' (temp 4-component vector of float)
+0:35        texture (global 4-component vector of float)
+0:35          'texSampler2D' (uniform sampler2D)
+0:35          'coords2D' (smooth in 2-component vector of float)
+0:36      add second child into first child (temp 4-component vector of float)
+0:36        'color' (temp 4-component vector of float)
+0:36        texture (global 4-component vector of float)
+0:36          'texSampler2D' (uniform sampler2D)
+0:36          'coords2D' (smooth in 2-component vector of float)
+0:36          'bias' (temp float)
+0:37      add second child into first child (temp 4-component vector of float)
+0:37        'color' (temp 4-component vector of float)
+0:37        textureProj (global 4-component vector of float)
+0:37          'texSampler2D' (uniform sampler2D)
+0:37          'coords3D' (temp 3-component vector of float)
+0:38      add second child into first child (temp 4-component vector of float)
+0:38        'color' (temp 4-component vector of float)
+0:38        textureProj (global 4-component vector of float)
+0:38          'texSampler2D' (uniform sampler2D)
+0:38          'coords4D' (temp 4-component vector of float)
+0:38          'bias' (temp float)
+0:40      add second child into first child (temp 4-component vector of float)
+0:40        'color' (temp 4-component vector of float)
+0:40        texture (global 4-component vector of float)
+0:40          'texSampler3D' (uniform sampler3D)
+0:40          'coords3D' (temp 3-component vector of float)
+0:41      add second child into first child (temp 4-component vector of float)
+0:41        'color' (temp 4-component vector of float)
+0:41        texture (global 4-component vector of float)
+0:41          'texSampler3D' (uniform sampler3D)
+0:41          'coords3D' (temp 3-component vector of float)
+0:41          'bias' (temp float)
+0:42      add second child into first child (temp 4-component vector of float)
+0:42        'color' (temp 4-component vector of float)
+0:42        textureProj (global 4-component vector of float)
+0:42          'texSampler3D' (uniform sampler3D)
+0:42          'coords4D' (temp 4-component vector of float)
+0:43      add second child into first child (temp 4-component vector of float)
+0:43        'color' (temp 4-component vector of float)
+0:43        textureProj (global 4-component vector of float)
+0:43          'texSampler3D' (uniform sampler3D)
+0:43          'coords4D' (temp 4-component vector of float)
+0:43          'bias' (temp float)
+0:45      add second child into first child (temp 4-component vector of float)
+0:45        'color' (temp 4-component vector of float)
+0:45        texture (global 4-component vector of float)
+0:45          'texSamplerCube' (uniform samplerCube)
+0:45          'coords3D' (temp 3-component vector of float)
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'color' (temp 4-component vector of float)
+0:46        texture (global 4-component vector of float)
+0:46          'texSamplerCube' (uniform samplerCube)
+0:46          'coords3D' (temp 3-component vector of float)
+0:46          'bias' (temp float)
+0:48      add second child into first child (temp 4-component vector of float)
+0:48        'color' (temp 4-component vector of float)
+0:48        texture (global 4-component vector of float)
+0:48          'shadowSampler1D' (uniform sampler1DShadow)
+0:48          'coords3D' (temp 3-component vector of float)
+0:49      add second child into first child (temp 4-component vector of float)
+0:49        'color' (temp 4-component vector of float)
+0:49        texture (global 4-component vector of float)
+0:49          'shadowSampler1D' (uniform sampler1DShadow)
+0:49          'coords3D' (temp 3-component vector of float)
+0:49          'bias' (temp float)
+0:50      add second child into first child (temp 4-component vector of float)
+0:50        'color' (temp 4-component vector of float)
+0:50        texture (global 4-component vector of float)
+0:50          'shadowSampler2D' (uniform sampler2DShadow)
+0:50          'coords3D' (temp 3-component vector of float)
+0:51      add second child into first child (temp 4-component vector of float)
+0:51        'color' (temp 4-component vector of float)
+0:51        texture (global 4-component vector of float)
+0:51          'shadowSampler2D' (uniform sampler2DShadow)
+0:51          'coords3D' (temp 3-component vector of float)
+0:51          'bias' (temp float)
+0:52      add second child into first child (temp 4-component vector of float)
+0:52        'color' (temp 4-component vector of float)
+0:52        textureProj (global 4-component vector of float)
+0:52          'shadowSampler1D' (uniform sampler1DShadow)
+0:52          'coords4D' (temp 4-component vector of float)
+0:53      add second child into first child (temp 4-component vector of float)
+0:53        'color' (temp 4-component vector of float)
+0:53        textureProj (global 4-component vector of float)
+0:53          'shadowSampler1D' (uniform sampler1DShadow)
+0:53          'coords4D' (temp 4-component vector of float)
+0:53          'bias' (temp float)
+0:54      add second child into first child (temp 4-component vector of float)
+0:54        'color' (temp 4-component vector of float)
+0:54        textureProj (global 4-component vector of float)
+0:54          'shadowSampler2D' (uniform sampler2DShadow)
+0:54          'coords4D' (temp 4-component vector of float)
+0:55      add second child into first child (temp 4-component vector of float)
+0:55        'color' (temp 4-component vector of float)
+0:55        textureProj (global 4-component vector of float)
+0:55          'shadowSampler2D' (uniform sampler2DShadow)
+0:55          'coords4D' (temp 4-component vector of float)
+0:55          'bias' (temp float)
+0:57      Sequence
+0:57        move second child to first child (temp 2-component vector of int)
+0:57          'iCoords2D' (temp 2-component vector of int)
+0:57          Constant:
+0:57            0 (const int)
+0:57            5 (const int)
+0:58      Sequence
+0:58        move second child to first child (temp int)
+0:58          'iLod' (temp int)
+0:58          Constant:
+0:58            1 (const int)
+0:60      add second child into first child (temp 4-component vector of float)
+0:60        'color' (temp 4-component vector of float)
+0:60        textureFetch (global 4-component vector of float)
+0:60          'texSampler2D' (uniform sampler2D)
+0:60          'iCoords2D' (temp 2-component vector of int)
+0:60          'iLod' (temp int)
+0:62      Sequence
+0:62        move second child to first child (temp 2-component vector of float)
+0:62          'gradX' (temp 2-component vector of float)
+0:62          dPdx (global 2-component vector of float)
+0:62            'coords2D' (smooth in 2-component vector of float)
+0:63      Sequence
+0:63        move second child to first child (temp 2-component vector of float)
+0:63          'gradY' (temp 2-component vector of float)
+0:63          dPdy (global 2-component vector of float)
+0:63            'coords2D' (smooth in 2-component vector of float)
+0:66      add second child into first child (temp 4-component vector of float)
+0:66        'color' (temp 4-component vector of float)
+0:66        textureGrad (global 4-component vector of float)
+0:66          'texSampler2D' (uniform sampler2D)
+0:66          'coords2D' (smooth in 2-component vector of float)
+0:66          'gradX' (temp 2-component vector of float)
+0:66          'gradY' (temp 2-component vector of float)
+0:67      add second child into first child (temp 4-component vector of float)
+0:67        'color' (temp 4-component vector of float)
+0:67        textureProjGrad (global 4-component vector of float)
+0:67          'texSampler2D' (uniform sampler2D)
+0:67          Construct vec3 (temp 3-component vector of float)
+0:67            'coords2D' (smooth in 2-component vector of float)
+0:67            'proj' (temp float)
+0:67          'gradX' (temp 2-component vector of float)
+0:67          'gradY' (temp 2-component vector of float)
+0:68      add second child into first child (temp 4-component vector of float)
+0:68        'color' (temp 4-component vector of float)
+0:68        textureGradOffset (global 4-component vector of float)
+0:68          'texSampler2D' (uniform sampler2D)
+0:68          'coords2D' (smooth in 2-component vector of float)
+0:68          'gradX' (temp 2-component vector of float)
+0:68          'gradY' (temp 2-component vector of float)
+0:68          Constant:
+0:68            3 (const int)
+0:68            -7 (const int)
+0:69      add second child into first child (temp 4-component vector of float)
+0:69        'color' (temp 4-component vector of float)
+0:69        textureProjGradOffset (global 4-component vector of float)
+0:69          'texSampler2D' (uniform sampler2D)
+0:69          'coords3D' (temp 3-component vector of float)
+0:69          'gradX' (temp 2-component vector of float)
+0:69          'gradY' (temp 2-component vector of float)
+0:69          Constant:
+0:69            3 (const int)
+0:69            -7 (const int)
+0:70      add second child into first child (temp 4-component vector of float)
+0:70        'color' (temp 4-component vector of float)
+0:70        textureGrad (global float)
+0:70          'shadowSampler2D' (uniform sampler2DShadow)
+0:70          Construct vec3 (temp 3-component vector of float)
+0:70            'coords2D' (smooth in 2-component vector of float)
+0:70            'lod' (temp float)
+0:70          'gradX' (temp 2-component vector of float)
+0:70          'gradY' (temp 2-component vector of float)
+0:72      move second child to first child (temp 4-component vector of float)
+0:72        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:72        mix (global 4-component vector of float)
+0:72          'color' (temp 4-component vector of float)
+0:72          'u' (uniform 4-component vector of float)
+0:72          component-wise multiply (temp float)
+0:72            'blend' (uniform float)
+0:72            'blendscale' (temp float)
+0:?   Linker Objects
+0:?     'texSampler1D' (uniform sampler1D)
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'texSampler3D' (uniform sampler3D)
+0:?     'texSamplerCube' (uniform samplerCube)
+0:?     'shadowSampler1D' (uniform sampler1DShadow)
+0:?     'shadowSampler2D' (uniform sampler2DShadow)
+0:?     'blend' (uniform float)
+0:?     'scale' (uniform 2-component vector of float)
+0:?     'u' (uniform 4-component vector of float)
+0:?     't' (smooth in 2-component vector of float)
+0:?     'coords2D' (smooth in 2-component vector of float)
+
diff --git a/Test/baseResults/tokenLength.vert.out b/Test/baseResults/tokenLength.vert.out
index 95b755a..26dabf0 100644
--- a/Test/baseResults/tokenLength.vert.out
+++ b/Test/baseResults/tokenLength.vert.out
@@ -1,222 +1,222 @@
-tokenLength.vert

-ERROR: 0:9: '' : numeric literal too big 

-ERROR: 0:10: '' : numeric literal too big 

-ERROR: 0:13: '' : octal literal too big 

-ERROR: 0:14: '' : hexidecimal literal too big 

-ERROR: 0:23: '' : float literal too long 

-ERROR: 0:32: '' : name too long 

-ERROR: 0:33: '' : hexidecimal literal too big 

-ERROR: 0:34: '' : numeric literal too long 

-ERROR: 0:34: '' : octal literal too big 

-ERROR: 0:35: '' : numeric literal too long 

-ERROR: 0:35: '' : numeric literal too big 

-ERROR: 0:36: '' : float literal too long 

-ERROR: 0:36: '' : float literal too long 

-ERROR: 0:36: '' : float literal too long 

-WARNING: 0:39: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234

-ERROR: 0:40: '' : name too long 

-WARNING: 0:40: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234

-ERROR: 0:43: '' : name too long 

-ERROR: 0:44: '#extension' : ':' missing after extension name 

-ERROR: 0:47: '#error' : in long non - zero # if  

-ERROR: 0:50: '#error' : in long zero # if  

-ERROR: 0:52: '' : numeric literal too long 

-ERROR: 0:53: '#error' : in too long # if  

-ERROR: 0:56: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

-ERROR: 0:59: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-ERROR: 0:62: '' : name too long 

-ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-ERROR: 0:67: '' : numeric literal too long 

-ERROR: 0:70: '' : name too long 

-ERROR: 0:70: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-ERROR: 28 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:9  Sequence

-0:9    move second child to first child (temp highp int)

-0:9      'E1' (global highp int)

-0:9      Constant:

-0:9        -1 (const int)

-0:10  Sequence

-0:10    move second child to first child (temp highp int)

-0:10      'E2' (global highp int)

-0:10      Constant:

-0:10        -1 (const int)

-0:11  Sequence

-0:11    move second child to first child (temp highp int)

-0:11      'B' (global highp int)

-0:11      Constant:

-0:11        -1 (const int)

-0:13  Sequence

-0:13    move second child to first child (temp highp int)

-0:13      'OE' (global highp int)

-0:13      Constant:

-0:13        1073741823 (const int)

-0:14  Sequence

-0:14    move second child to first child (temp highp int)

-0:14      'HE' (global highp int)

-0:14      Constant:

-0:14        -1 (const int)

-0:17  Sequence

-0:17    move second child to first child (temp highp float)

-0:17      'F' (global highp float)

-0:17      Constant:

-0:17        1.012346

-0:20  Sequence

-0:20    move second child to first child (temp highp float)

-0:20      'G' (global highp float)

-0:20      Constant:

-0:20        1.012346

-0:23  Sequence

-0:23    move second child to first child (temp highp float)

-0:23      'E3' (global highp float)

-0:23      Constant:

-0:23        12.000000

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      move second child to first child (temp highp 4-component vector of float)

-0:27        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:28        Construct vec4 (temp highp 4-component vector of float)

-0:27          'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)

-0:28          Convert int to float (temp highp float)

-0:28            'B' (global highp int)

-0:28          'F' (global highp float)

-0:28          'G' (global highp float)

-0:33  Sequence

-0:33    move second child to first child (temp highp int)

-0:33      'superH' (global highp int)

-0:33      Constant:

-0:33        -1 (const int)

-0:34  Sequence

-0:34    move second child to first child (temp highp int)

-0:34      'superO' (global highp int)

-0:34      Constant:

-0:34        1073741823 (const int)

-0:35  Sequence

-0:35    move second child to first child (temp highp int)

-0:35      'superI' (global highp int)

-0:35      Constant:

-0:35        -1 (const int)

-0:36  Sequence

-0:36    move second child to first child (temp highp float)

-0:36      'superF' (global highp float)

-0:36      Constant:

-0:36        inf

-0:?   Linker Objects

-0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)

-0:?     'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)

-0:?     'E1' (global highp int)

-0:?     'E2' (global highp int)

-0:?     'B' (global highp int)

-0:?     'OE' (global highp int)

-0:?     'HE' (global highp int)

-0:?     'F' (global highp float)

-0:?     'G' (global highp float)

-0:?     'E3' (global highp float)

-0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (global highp float)

-0:?     'superH' (global highp int)

-0:?     'superO' (global highp int)

-0:?     'superI' (global highp int)

-0:?     'superF' (global highp float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:9  Sequence

-0:9    move second child to first child (temp highp int)

-0:9      'E1' (global highp int)

-0:9      Constant:

-0:9        -1 (const int)

-0:10  Sequence

-0:10    move second child to first child (temp highp int)

-0:10      'E2' (global highp int)

-0:10      Constant:

-0:10        -1 (const int)

-0:11  Sequence

-0:11    move second child to first child (temp highp int)

-0:11      'B' (global highp int)

-0:11      Constant:

-0:11        -1 (const int)

-0:13  Sequence

-0:13    move second child to first child (temp highp int)

-0:13      'OE' (global highp int)

-0:13      Constant:

-0:13        1073741823 (const int)

-0:14  Sequence

-0:14    move second child to first child (temp highp int)

-0:14      'HE' (global highp int)

-0:14      Constant:

-0:14        -1 (const int)

-0:17  Sequence

-0:17    move second child to first child (temp highp float)

-0:17      'F' (global highp float)

-0:17      Constant:

-0:17        1.012346

-0:20  Sequence

-0:20    move second child to first child (temp highp float)

-0:20      'G' (global highp float)

-0:20      Constant:

-0:20        1.012346

-0:23  Sequence

-0:23    move second child to first child (temp highp float)

-0:23      'E3' (global highp float)

-0:23      Constant:

-0:23        12.000000

-0:25  Function Definition: main( (global void)

-0:25    Function Parameters: 

-0:27    Sequence

-0:27      move second child to first child (temp highp 4-component vector of float)

-0:27        'gl_Position' (gl_Position highp 4-component vector of float Position)

-0:28        Construct vec4 (temp highp 4-component vector of float)

-0:27          'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)

-0:28          Convert int to float (temp highp float)

-0:28            'B' (global highp int)

-0:28          'F' (global highp float)

-0:28          'G' (global highp float)

-0:33  Sequence

-0:33    move second child to first child (temp highp int)

-0:33      'superH' (global highp int)

-0:33      Constant:

-0:33        -1 (const int)

-0:34  Sequence

-0:34    move second child to first child (temp highp int)

-0:34      'superO' (global highp int)

-0:34      Constant:

-0:34        1073741823 (const int)

-0:35  Sequence

-0:35    move second child to first child (temp highp int)

-0:35      'superI' (global highp int)

-0:35      Constant:

-0:35        -1 (const int)

-0:36  Sequence

-0:36    move second child to first child (temp highp float)

-0:36      'superF' (global highp float)

-0:36      Constant:

-0:36        inf

-0:?   Linker Objects

-0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)

-0:?     'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)

-0:?     'E1' (global highp int)

-0:?     'E2' (global highp int)

-0:?     'B' (global highp int)

-0:?     'OE' (global highp int)

-0:?     'HE' (global highp int)

-0:?     'F' (global highp float)

-0:?     'G' (global highp float)

-0:?     'E3' (global highp float)

-0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (global highp float)

-0:?     'superH' (global highp int)

-0:?     'superO' (global highp int)

-0:?     'superI' (global highp int)

-0:?     'superF' (global highp float)

-0:?     'gl_VertexID' (gl_VertexId highp int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)

-

+tokenLength.vert
+ERROR: 0:9: '' : numeric literal too big 
+ERROR: 0:10: '' : numeric literal too big 
+ERROR: 0:13: '' : octal literal too big 
+ERROR: 0:14: '' : hexidecimal literal too big 
+ERROR: 0:23: '' : float literal too long 
+ERROR: 0:32: '' : name too long 
+ERROR: 0:33: '' : hexidecimal literal too big 
+ERROR: 0:34: '' : numeric literal too long 
+ERROR: 0:34: '' : octal literal too big 
+ERROR: 0:35: '' : numeric literal too long 
+ERROR: 0:35: '' : numeric literal too big 
+ERROR: 0:36: '' : float literal too long 
+ERROR: 0:36: '' : float literal too long 
+ERROR: 0:36: '' : float literal too long 
+WARNING: 0:39: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234
+ERROR: 0:40: '' : name too long 
+WARNING: 0:40: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234
+ERROR: 0:43: '' : name too long 
+ERROR: 0:44: '#extension' : ':' missing after extension name 
+ERROR: 0:47: '#error' : in long non - zero # if  
+ERROR: 0:50: '#error' : in long zero # if  
+ERROR: 0:52: '' : numeric literal too long 
+ERROR: 0:53: '#error' : in too long # if  
+ERROR: 0:56: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+ERROR: 0:59: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ERROR: 0:62: '' : name too long 
+ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ERROR: 0:67: '' : numeric literal too long 
+ERROR: 0:70: '' : name too long 
+ERROR: 0:70: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ERROR: 28 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:9  Sequence
+0:9    move second child to first child (temp highp int)
+0:9      'E1' (global highp int)
+0:9      Constant:
+0:9        -1 (const int)
+0:10  Sequence
+0:10    move second child to first child (temp highp int)
+0:10      'E2' (global highp int)
+0:10      Constant:
+0:10        -1 (const int)
+0:11  Sequence
+0:11    move second child to first child (temp highp int)
+0:11      'B' (global highp int)
+0:11      Constant:
+0:11        -1 (const int)
+0:13  Sequence
+0:13    move second child to first child (temp highp int)
+0:13      'OE' (global highp int)
+0:13      Constant:
+0:13        1073741823 (const int)
+0:14  Sequence
+0:14    move second child to first child (temp highp int)
+0:14      'HE' (global highp int)
+0:14      Constant:
+0:14        -1 (const int)
+0:17  Sequence
+0:17    move second child to first child (temp highp float)
+0:17      'F' (global highp float)
+0:17      Constant:
+0:17        1.012346
+0:20  Sequence
+0:20    move second child to first child (temp highp float)
+0:20      'G' (global highp float)
+0:20      Constant:
+0:20        1.012346
+0:23  Sequence
+0:23    move second child to first child (temp highp float)
+0:23      'E3' (global highp float)
+0:23      Constant:
+0:23        12.000000
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      move second child to first child (temp highp 4-component vector of float)
+0:27        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:28        Construct vec4 (temp highp 4-component vector of float)
+0:27          'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:28          Convert int to float (temp highp float)
+0:28            'B' (global highp int)
+0:28          'F' (global highp float)
+0:28          'G' (global highp float)
+0:33  Sequence
+0:33    move second child to first child (temp highp int)
+0:33      'superH' (global highp int)
+0:33      Constant:
+0:33        -1 (const int)
+0:34  Sequence
+0:34    move second child to first child (temp highp int)
+0:34      'superO' (global highp int)
+0:34      Constant:
+0:34        1073741823 (const int)
+0:35  Sequence
+0:35    move second child to first child (temp highp int)
+0:35      'superI' (global highp int)
+0:35      Constant:
+0:35        -1 (const int)
+0:36  Sequence
+0:36    move second child to first child (temp highp float)
+0:36      'superF' (global highp float)
+0:36      Constant:
+0:36        inf
+0:?   Linker Objects
+0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:?     'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:?     'E1' (global highp int)
+0:?     'E2' (global highp int)
+0:?     'B' (global highp int)
+0:?     'OE' (global highp int)
+0:?     'HE' (global highp int)
+0:?     'F' (global highp float)
+0:?     'G' (global highp float)
+0:?     'E3' (global highp float)
+0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (global highp float)
+0:?     'superH' (global highp int)
+0:?     'superO' (global highp int)
+0:?     'superI' (global highp int)
+0:?     'superF' (global highp float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:9  Sequence
+0:9    move second child to first child (temp highp int)
+0:9      'E1' (global highp int)
+0:9      Constant:
+0:9        -1 (const int)
+0:10  Sequence
+0:10    move second child to first child (temp highp int)
+0:10      'E2' (global highp int)
+0:10      Constant:
+0:10        -1 (const int)
+0:11  Sequence
+0:11    move second child to first child (temp highp int)
+0:11      'B' (global highp int)
+0:11      Constant:
+0:11        -1 (const int)
+0:13  Sequence
+0:13    move second child to first child (temp highp int)
+0:13      'OE' (global highp int)
+0:13      Constant:
+0:13        1073741823 (const int)
+0:14  Sequence
+0:14    move second child to first child (temp highp int)
+0:14      'HE' (global highp int)
+0:14      Constant:
+0:14        -1 (const int)
+0:17  Sequence
+0:17    move second child to first child (temp highp float)
+0:17      'F' (global highp float)
+0:17      Constant:
+0:17        1.012346
+0:20  Sequence
+0:20    move second child to first child (temp highp float)
+0:20      'G' (global highp float)
+0:20      Constant:
+0:20        1.012346
+0:23  Sequence
+0:23    move second child to first child (temp highp float)
+0:23      'E3' (global highp float)
+0:23      Constant:
+0:23        12.000000
+0:25  Function Definition: main( (global void)
+0:25    Function Parameters: 
+0:27    Sequence
+0:27      move second child to first child (temp highp 4-component vector of float)
+0:27        'gl_Position' (gl_Position highp 4-component vector of float Position)
+0:28        Construct vec4 (temp highp 4-component vector of float)
+0:27          'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:28          Convert int to float (temp highp float)
+0:28            'B' (global highp int)
+0:28          'F' (global highp float)
+0:28          'G' (global highp float)
+0:33  Sequence
+0:33    move second child to first child (temp highp int)
+0:33      'superH' (global highp int)
+0:33      Constant:
+0:33        -1 (const int)
+0:34  Sequence
+0:34    move second child to first child (temp highp int)
+0:34      'superO' (global highp int)
+0:34      Constant:
+0:34        1073741823 (const int)
+0:35  Sequence
+0:35    move second child to first child (temp highp int)
+0:35      'superI' (global highp int)
+0:35      Constant:
+0:35        -1 (const int)
+0:36  Sequence
+0:36    move second child to first child (temp highp float)
+0:36      'superF' (global highp float)
+0:36      Constant:
+0:36        inf
+0:?   Linker Objects
+0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:?     'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)
+0:?     'E1' (global highp int)
+0:?     'E2' (global highp int)
+0:?     'B' (global highp int)
+0:?     'OE' (global highp int)
+0:?     'HE' (global highp int)
+0:?     'F' (global highp float)
+0:?     'G' (global highp float)
+0:?     'E3' (global highp float)
+0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (global highp float)
+0:?     'superH' (global highp int)
+0:?     'superO' (global highp int)
+0:?     'superI' (global highp int)
+0:?     'superF' (global highp float)
+0:?     'gl_VertexID' (gl_VertexId highp int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)
+
diff --git a/Test/baseResults/types.frag.out b/Test/baseResults/types.frag.out
index e55c591..475a989 100644
--- a/Test/baseResults/types.frag.out
+++ b/Test/baseResults/types.frag.out
@@ -1,677 +1,677 @@
-types.frag

-Shader version: 130

-0:? Sequence

-0:33  Function Definition: main( (global void)

-0:33    Function Parameters: 

-0:35    Sequence

-0:35      Sequence

-0:35        move second child to first child (temp bool)

-0:35          'b' (temp bool)

-0:35          logical-and (temp bool)

-0:35            'u_b' (uniform bool)

-0:35            'i_b' (uniform bool)

-0:36      Sequence

-0:36        move second child to first child (temp 2-component vector of bool)

-0:36          'b2' (temp 2-component vector of bool)

-0:36          Construct bvec2 (temp 2-component vector of bool)

-0:36            logical-and (temp bool)

-0:36              logical-and (temp bool)

-0:36                logical-and (temp bool)

-0:36                  direct index (temp bool)

-0:36                    'u_b2' (uniform 2-component vector of bool)

-0:36                    Constant:

-0:36                      0 (const int)

-0:36                  direct index (temp bool)

-0:36                    'i_b2' (uniform 2-component vector of bool)

-0:36                    Constant:

-0:36                      0 (const int)

-0:36                direct index (temp bool)

-0:36                  'u_b2' (uniform 2-component vector of bool)

-0:36                  Constant:

-0:36                    1 (const int)

-0:36              direct index (temp bool)

-0:36                'i_b2' (uniform 2-component vector of bool)

-0:36                Constant:

-0:36                  1 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp 3-component vector of bool)

-0:37          'b3' (temp 3-component vector of bool)

-0:37          Construct bvec3 (temp 3-component vector of bool)

-0:37            logical-and (temp bool)

-0:37              logical-and (temp bool)

-0:37                logical-and (temp bool)

-0:37                  logical-and (temp bool)

-0:37                    logical-and (temp bool)

-0:37                      direct index (temp bool)

-0:37                        'u_b3' (uniform 3-component vector of bool)

-0:37                        Constant:

-0:37                          0 (const int)

-0:37                      direct index (temp bool)

-0:37                        'i_b3' (uniform 3-component vector of bool)

-0:37                        Constant:

-0:37                          0 (const int)

-0:37                    direct index (temp bool)

-0:37                      'u_b3' (uniform 3-component vector of bool)

-0:37                      Constant:

-0:37                        1 (const int)

-0:37                  direct index (temp bool)

-0:37                    'i_b3' (uniform 3-component vector of bool)

-0:37                    Constant:

-0:37                      1 (const int)

-0:37                direct index (temp bool)

-0:37                  'u_b3' (uniform 3-component vector of bool)

-0:37                  Constant:

-0:37                    2 (const int)

-0:37              direct index (temp bool)

-0:37                'i_b3' (uniform 3-component vector of bool)

-0:37                Constant:

-0:37                  2 (const int)

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of bool)

-0:38          'b4' (temp 4-component vector of bool)

-0:38          Construct bvec4 (temp 4-component vector of bool)

-0:38            logical-and (temp bool)

-0:38              logical-and (temp bool)

-0:38                logical-and (temp bool)

-0:38                  logical-and (temp bool)

-0:38                    logical-and (temp bool)

-0:38                      logical-and (temp bool)

-0:38                        logical-and (temp bool)

-0:38                          direct index (temp bool)

-0:38                            'u_b4' (uniform 4-component vector of bool)

-0:38                            Constant:

-0:38                              0 (const int)

-0:38                          direct index (temp bool)

-0:38                            'i_b4' (uniform 4-component vector of bool)

-0:38                            Constant:

-0:38                              0 (const int)

-0:38                        direct index (temp bool)

-0:38                          'u_b4' (uniform 4-component vector of bool)

-0:38                          Constant:

-0:38                            1 (const int)

-0:38                      direct index (temp bool)

-0:38                        'i_b4' (uniform 4-component vector of bool)

-0:38                        Constant:

-0:38                          1 (const int)

-0:38                    direct index (temp bool)

-0:38                      'u_b4' (uniform 4-component vector of bool)

-0:38                      Constant:

-0:38                        2 (const int)

-0:38                  direct index (temp bool)

-0:38                    'i_b4' (uniform 4-component vector of bool)

-0:38                    Constant:

-0:38                      2 (const int)

-0:38                direct index (temp bool)

-0:38                  'u_b4' (uniform 4-component vector of bool)

-0:38                  Constant:

-0:38                    3 (const int)

-0:38              direct index (temp bool)

-0:38                'i_b4' (uniform 4-component vector of bool)

-0:38                Constant:

-0:38                  3 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp int)

-0:40          'i' (temp int)

-0:40          add (temp int)

-0:40            'u_i' (uniform int)

-0:40            'i_i' (flat in int)

-0:41      Sequence

-0:41        move second child to first child (temp 2-component vector of int)

-0:41          'i2' (temp 2-component vector of int)

-0:41          add (temp 2-component vector of int)

-0:41            'u_i2' (uniform 2-component vector of int)

-0:41            'i_i2' (flat in 2-component vector of int)

-0:42      Sequence

-0:42        move second child to first child (temp 3-component vector of int)

-0:42          'i3' (temp 3-component vector of int)

-0:42          add (temp 3-component vector of int)

-0:42            'u_i3' (uniform 3-component vector of int)

-0:42            'i_i3' (flat in 3-component vector of int)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of int)

-0:43          'i4' (temp 4-component vector of int)

-0:43          add (temp 4-component vector of int)

-0:43            'u_i4' (uniform 4-component vector of int)

-0:43            'i_i4' (flat in 4-component vector of int)

-0:45      Sequence

-0:45        move second child to first child (temp float)

-0:45          'f' (temp float)

-0:45          add (temp float)

-0:45            'u_f' (uniform float)

-0:45            'i_f' (smooth in float)

-0:46      Sequence

-0:46        move second child to first child (temp 2-component vector of float)

-0:46          'f2' (temp 2-component vector of float)

-0:46          add (temp 2-component vector of float)

-0:46            'u_f2' (uniform 2-component vector of float)

-0:46            'i_f2' (smooth in 2-component vector of float)

-0:47      Sequence

-0:47        move second child to first child (temp 3-component vector of float)

-0:47          'f3' (temp 3-component vector of float)

-0:47          add (temp 3-component vector of float)

-0:47            'u_f3' (uniform 3-component vector of float)

-0:47            'i_f3' (smooth in 3-component vector of float)

-0:48      Sequence

-0:48        move second child to first child (temp 4-component vector of float)

-0:48          'f4' (temp 4-component vector of float)

-0:48          add (temp 4-component vector of float)

-0:48            'u_f4' (uniform 4-component vector of float)

-0:48            'i_f4' (smooth in 4-component vector of float)

-0:50      move second child to first child (temp 4-component vector of float)

-0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:60        Test condition and select (temp 4-component vector of float)

-0:60          Condition

-0:59          logical-or (temp bool)

-0:58            logical-or (temp bool)

-0:57              logical-or (temp bool)

-0:56                logical-or (temp bool)

-0:55                  logical-or (temp bool)

-0:54                    logical-or (temp bool)

-0:53                      logical-or (temp bool)

-0:52                        logical-or (temp bool)

-0:51                          logical-or (temp bool)

-0:51                            'b' (temp bool)

-0:52                            direct index (temp bool)

-0:52                              'b2' (temp 2-component vector of bool)

-0:52                              Constant:

-0:52                                0 (const int)

-0:53                          direct index (temp bool)

-0:53                            'b2' (temp 2-component vector of bool)

-0:53                            Constant:

-0:53                              1 (const int)

-0:54                        direct index (temp bool)

-0:54                          'b3' (temp 3-component vector of bool)

-0:54                          Constant:

-0:54                            0 (const int)

-0:55                      direct index (temp bool)

-0:55                        'b3' (temp 3-component vector of bool)

-0:55                        Constant:

-0:55                          1 (const int)

-0:56                    direct index (temp bool)

-0:56                      'b3' (temp 3-component vector of bool)

-0:56                      Constant:

-0:56                        2 (const int)

-0:57                  direct index (temp bool)

-0:57                    'b4' (temp 4-component vector of bool)

-0:57                    Constant:

-0:57                      0 (const int)

-0:58                direct index (temp bool)

-0:58                  'b4' (temp 4-component vector of bool)

-0:58                  Constant:

-0:58                    1 (const int)

-0:59              direct index (temp bool)

-0:59                'b4' (temp 4-component vector of bool)

-0:59                Constant:

-0:59                  2 (const int)

-0:60            direct index (temp bool)

-0:60              'b4' (temp 4-component vector of bool)

-0:60              Constant:

-0:60                3 (const int)

-0:60          true case

-0:79          Construct vec4 (temp 4-component vector of float)

-0:79            add (temp float)

-0:78              add (temp float)

-0:77                add (temp float)

-0:76                  add (temp float)

-0:75                    add (temp float)

-0:74                      add (temp float)

-0:73                        add (temp float)

-0:72                          add (temp float)

-0:71                            add (temp float)

-0:70                              add (temp float)

-0:69                                Convert int to float (temp float)

-0:69                                  add (temp int)

-0:68                                    add (temp int)

-0:67                                      add (temp int)

-0:66                                        add (temp int)

-0:65                                          add (temp int)

-0:64                                            add (temp int)

-0:63                                              add (temp int)

-0:62                                                add (temp int)

-0:61                                                  add (temp int)

-0:61                                                    'i' (temp int)

-0:62                                                    direct index (temp int)

-0:62                                                      'i2' (temp 2-component vector of int)

-0:62                                                      Constant:

-0:62                                                        0 (const int)

-0:63                                                  direct index (temp int)

-0:63                                                    'i2' (temp 2-component vector of int)

-0:63                                                    Constant:

-0:63                                                      1 (const int)

-0:64                                                direct index (temp int)

-0:64                                                  'i3' (temp 3-component vector of int)

-0:64                                                  Constant:

-0:64                                                    0 (const int)

-0:65                                              direct index (temp int)

-0:65                                                'i3' (temp 3-component vector of int)

-0:65                                                Constant:

-0:65                                                  1 (const int)

-0:66                                            direct index (temp int)

-0:66                                              'i3' (temp 3-component vector of int)

-0:66                                              Constant:

-0:66                                                2 (const int)

-0:67                                          direct index (temp int)

-0:67                                            'i4' (temp 4-component vector of int)

-0:67                                            Constant:

-0:67                                              0 (const int)

-0:68                                        direct index (temp int)

-0:68                                          'i4' (temp 4-component vector of int)

-0:68                                          Constant:

-0:68                                            1 (const int)

-0:69                                      direct index (temp int)

-0:69                                        'i4' (temp 4-component vector of int)

-0:69                                        Constant:

-0:69                                          2 (const int)

-0:70                                    direct index (temp int)

-0:70                                      'i4' (temp 4-component vector of int)

-0:70                                      Constant:

-0:70                                        3 (const int)

-0:71                                'f' (temp float)

-0:72                              direct index (temp float)

-0:72                                'f2' (temp 2-component vector of float)

-0:72                                Constant:

-0:72                                  0 (const int)

-0:73                            direct index (temp float)

-0:73                              'f2' (temp 2-component vector of float)

-0:73                              Constant:

-0:73                                1 (const int)

-0:74                          direct index (temp float)

-0:74                            'f3' (temp 3-component vector of float)

-0:74                            Constant:

-0:74                              0 (const int)

-0:75                        direct index (temp float)

-0:75                          'f3' (temp 3-component vector of float)

-0:75                          Constant:

-0:75                            1 (const int)

-0:76                      direct index (temp float)

-0:76                        'f3' (temp 3-component vector of float)

-0:76                        Constant:

-0:76                          2 (const int)

-0:77                    direct index (temp float)

-0:77                      'f4' (temp 4-component vector of float)

-0:77                      Constant:

-0:77                        0 (const int)

-0:78                  direct index (temp float)

-0:78                    'f4' (temp 4-component vector of float)

-0:78                    Constant:

-0:78                      1 (const int)

-0:79                direct index (temp float)

-0:79                  'f4' (temp 4-component vector of float)

-0:79                  Constant:

-0:79                    2 (const int)

-0:80              direct index (temp float)

-0:80                'f4' (temp 4-component vector of float)

-0:80                Constant:

-0:80                  3 (const int)

-0:60          false case

-0:80          Constant:

-0:80            1.000000

-0:80            1.000000

-0:80            1.000000

-0:80            1.000000

-0:?   Linker Objects

-0:?     'u_b' (uniform bool)

-0:?     'u_b2' (uniform 2-component vector of bool)

-0:?     'u_b3' (uniform 3-component vector of bool)

-0:?     'u_b4' (uniform 4-component vector of bool)

-0:?     'u_i' (uniform int)

-0:?     'u_i2' (uniform 2-component vector of int)

-0:?     'u_i3' (uniform 3-component vector of int)

-0:?     'u_i4' (uniform 4-component vector of int)

-0:?     'u_f' (uniform float)

-0:?     'u_f2' (uniform 2-component vector of float)

-0:?     'u_f3' (uniform 3-component vector of float)

-0:?     'u_f4' (uniform 4-component vector of float)

-0:?     'i_b' (uniform bool)

-0:?     'i_b2' (uniform 2-component vector of bool)

-0:?     'i_b3' (uniform 3-component vector of bool)

-0:?     'i_b4' (uniform 4-component vector of bool)

-0:?     'i_i' (flat in int)

-0:?     'i_i2' (flat in 2-component vector of int)

-0:?     'i_i3' (flat in 3-component vector of int)

-0:?     'i_i4' (flat in 4-component vector of int)

-0:?     'i_f' (smooth in float)

-0:?     'i_f2' (smooth in 2-component vector of float)

-0:?     'i_f3' (smooth in 3-component vector of float)

-0:?     'i_f4' (smooth in 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:33  Function Definition: main( (global void)

-0:33    Function Parameters: 

-0:35    Sequence

-0:35      Sequence

-0:35        move second child to first child (temp bool)

-0:35          'b' (temp bool)

-0:35          logical-and (temp bool)

-0:35            'u_b' (uniform bool)

-0:35            'i_b' (uniform bool)

-0:36      Sequence

-0:36        move second child to first child (temp 2-component vector of bool)

-0:36          'b2' (temp 2-component vector of bool)

-0:36          Construct bvec2 (temp 2-component vector of bool)

-0:36            logical-and (temp bool)

-0:36              logical-and (temp bool)

-0:36                logical-and (temp bool)

-0:36                  direct index (temp bool)

-0:36                    'u_b2' (uniform 2-component vector of bool)

-0:36                    Constant:

-0:36                      0 (const int)

-0:36                  direct index (temp bool)

-0:36                    'i_b2' (uniform 2-component vector of bool)

-0:36                    Constant:

-0:36                      0 (const int)

-0:36                direct index (temp bool)

-0:36                  'u_b2' (uniform 2-component vector of bool)

-0:36                  Constant:

-0:36                    1 (const int)

-0:36              direct index (temp bool)

-0:36                'i_b2' (uniform 2-component vector of bool)

-0:36                Constant:

-0:36                  1 (const int)

-0:37      Sequence

-0:37        move second child to first child (temp 3-component vector of bool)

-0:37          'b3' (temp 3-component vector of bool)

-0:37          Construct bvec3 (temp 3-component vector of bool)

-0:37            logical-and (temp bool)

-0:37              logical-and (temp bool)

-0:37                logical-and (temp bool)

-0:37                  logical-and (temp bool)

-0:37                    logical-and (temp bool)

-0:37                      direct index (temp bool)

-0:37                        'u_b3' (uniform 3-component vector of bool)

-0:37                        Constant:

-0:37                          0 (const int)

-0:37                      direct index (temp bool)

-0:37                        'i_b3' (uniform 3-component vector of bool)

-0:37                        Constant:

-0:37                          0 (const int)

-0:37                    direct index (temp bool)

-0:37                      'u_b3' (uniform 3-component vector of bool)

-0:37                      Constant:

-0:37                        1 (const int)

-0:37                  direct index (temp bool)

-0:37                    'i_b3' (uniform 3-component vector of bool)

-0:37                    Constant:

-0:37                      1 (const int)

-0:37                direct index (temp bool)

-0:37                  'u_b3' (uniform 3-component vector of bool)

-0:37                  Constant:

-0:37                    2 (const int)

-0:37              direct index (temp bool)

-0:37                'i_b3' (uniform 3-component vector of bool)

-0:37                Constant:

-0:37                  2 (const int)

-0:38      Sequence

-0:38        move second child to first child (temp 4-component vector of bool)

-0:38          'b4' (temp 4-component vector of bool)

-0:38          Construct bvec4 (temp 4-component vector of bool)

-0:38            logical-and (temp bool)

-0:38              logical-and (temp bool)

-0:38                logical-and (temp bool)

-0:38                  logical-and (temp bool)

-0:38                    logical-and (temp bool)

-0:38                      logical-and (temp bool)

-0:38                        logical-and (temp bool)

-0:38                          direct index (temp bool)

-0:38                            'u_b4' (uniform 4-component vector of bool)

-0:38                            Constant:

-0:38                              0 (const int)

-0:38                          direct index (temp bool)

-0:38                            'i_b4' (uniform 4-component vector of bool)

-0:38                            Constant:

-0:38                              0 (const int)

-0:38                        direct index (temp bool)

-0:38                          'u_b4' (uniform 4-component vector of bool)

-0:38                          Constant:

-0:38                            1 (const int)

-0:38                      direct index (temp bool)

-0:38                        'i_b4' (uniform 4-component vector of bool)

-0:38                        Constant:

-0:38                          1 (const int)

-0:38                    direct index (temp bool)

-0:38                      'u_b4' (uniform 4-component vector of bool)

-0:38                      Constant:

-0:38                        2 (const int)

-0:38                  direct index (temp bool)

-0:38                    'i_b4' (uniform 4-component vector of bool)

-0:38                    Constant:

-0:38                      2 (const int)

-0:38                direct index (temp bool)

-0:38                  'u_b4' (uniform 4-component vector of bool)

-0:38                  Constant:

-0:38                    3 (const int)

-0:38              direct index (temp bool)

-0:38                'i_b4' (uniform 4-component vector of bool)

-0:38                Constant:

-0:38                  3 (const int)

-0:40      Sequence

-0:40        move second child to first child (temp int)

-0:40          'i' (temp int)

-0:40          add (temp int)

-0:40            'u_i' (uniform int)

-0:40            'i_i' (flat in int)

-0:41      Sequence

-0:41        move second child to first child (temp 2-component vector of int)

-0:41          'i2' (temp 2-component vector of int)

-0:41          add (temp 2-component vector of int)

-0:41            'u_i2' (uniform 2-component vector of int)

-0:41            'i_i2' (flat in 2-component vector of int)

-0:42      Sequence

-0:42        move second child to first child (temp 3-component vector of int)

-0:42          'i3' (temp 3-component vector of int)

-0:42          add (temp 3-component vector of int)

-0:42            'u_i3' (uniform 3-component vector of int)

-0:42            'i_i3' (flat in 3-component vector of int)

-0:43      Sequence

-0:43        move second child to first child (temp 4-component vector of int)

-0:43          'i4' (temp 4-component vector of int)

-0:43          add (temp 4-component vector of int)

-0:43            'u_i4' (uniform 4-component vector of int)

-0:43            'i_i4' (flat in 4-component vector of int)

-0:45      Sequence

-0:45        move second child to first child (temp float)

-0:45          'f' (temp float)

-0:45          add (temp float)

-0:45            'u_f' (uniform float)

-0:45            'i_f' (smooth in float)

-0:46      Sequence

-0:46        move second child to first child (temp 2-component vector of float)

-0:46          'f2' (temp 2-component vector of float)

-0:46          add (temp 2-component vector of float)

-0:46            'u_f2' (uniform 2-component vector of float)

-0:46            'i_f2' (smooth in 2-component vector of float)

-0:47      Sequence

-0:47        move second child to first child (temp 3-component vector of float)

-0:47          'f3' (temp 3-component vector of float)

-0:47          add (temp 3-component vector of float)

-0:47            'u_f3' (uniform 3-component vector of float)

-0:47            'i_f3' (smooth in 3-component vector of float)

-0:48      Sequence

-0:48        move second child to first child (temp 4-component vector of float)

-0:48          'f4' (temp 4-component vector of float)

-0:48          add (temp 4-component vector of float)

-0:48            'u_f4' (uniform 4-component vector of float)

-0:48            'i_f4' (smooth in 4-component vector of float)

-0:50      move second child to first child (temp 4-component vector of float)

-0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:60        Test condition and select (temp 4-component vector of float)

-0:60          Condition

-0:59          logical-or (temp bool)

-0:58            logical-or (temp bool)

-0:57              logical-or (temp bool)

-0:56                logical-or (temp bool)

-0:55                  logical-or (temp bool)

-0:54                    logical-or (temp bool)

-0:53                      logical-or (temp bool)

-0:52                        logical-or (temp bool)

-0:51                          logical-or (temp bool)

-0:51                            'b' (temp bool)

-0:52                            direct index (temp bool)

-0:52                              'b2' (temp 2-component vector of bool)

-0:52                              Constant:

-0:52                                0 (const int)

-0:53                          direct index (temp bool)

-0:53                            'b2' (temp 2-component vector of bool)

-0:53                            Constant:

-0:53                              1 (const int)

-0:54                        direct index (temp bool)

-0:54                          'b3' (temp 3-component vector of bool)

-0:54                          Constant:

-0:54                            0 (const int)

-0:55                      direct index (temp bool)

-0:55                        'b3' (temp 3-component vector of bool)

-0:55                        Constant:

-0:55                          1 (const int)

-0:56                    direct index (temp bool)

-0:56                      'b3' (temp 3-component vector of bool)

-0:56                      Constant:

-0:56                        2 (const int)

-0:57                  direct index (temp bool)

-0:57                    'b4' (temp 4-component vector of bool)

-0:57                    Constant:

-0:57                      0 (const int)

-0:58                direct index (temp bool)

-0:58                  'b4' (temp 4-component vector of bool)

-0:58                  Constant:

-0:58                    1 (const int)

-0:59              direct index (temp bool)

-0:59                'b4' (temp 4-component vector of bool)

-0:59                Constant:

-0:59                  2 (const int)

-0:60            direct index (temp bool)

-0:60              'b4' (temp 4-component vector of bool)

-0:60              Constant:

-0:60                3 (const int)

-0:60          true case

-0:79          Construct vec4 (temp 4-component vector of float)

-0:79            add (temp float)

-0:78              add (temp float)

-0:77                add (temp float)

-0:76                  add (temp float)

-0:75                    add (temp float)

-0:74                      add (temp float)

-0:73                        add (temp float)

-0:72                          add (temp float)

-0:71                            add (temp float)

-0:70                              add (temp float)

-0:69                                Convert int to float (temp float)

-0:69                                  add (temp int)

-0:68                                    add (temp int)

-0:67                                      add (temp int)

-0:66                                        add (temp int)

-0:65                                          add (temp int)

-0:64                                            add (temp int)

-0:63                                              add (temp int)

-0:62                                                add (temp int)

-0:61                                                  add (temp int)

-0:61                                                    'i' (temp int)

-0:62                                                    direct index (temp int)

-0:62                                                      'i2' (temp 2-component vector of int)

-0:62                                                      Constant:

-0:62                                                        0 (const int)

-0:63                                                  direct index (temp int)

-0:63                                                    'i2' (temp 2-component vector of int)

-0:63                                                    Constant:

-0:63                                                      1 (const int)

-0:64                                                direct index (temp int)

-0:64                                                  'i3' (temp 3-component vector of int)

-0:64                                                  Constant:

-0:64                                                    0 (const int)

-0:65                                              direct index (temp int)

-0:65                                                'i3' (temp 3-component vector of int)

-0:65                                                Constant:

-0:65                                                  1 (const int)

-0:66                                            direct index (temp int)

-0:66                                              'i3' (temp 3-component vector of int)

-0:66                                              Constant:

-0:66                                                2 (const int)

-0:67                                          direct index (temp int)

-0:67                                            'i4' (temp 4-component vector of int)

-0:67                                            Constant:

-0:67                                              0 (const int)

-0:68                                        direct index (temp int)

-0:68                                          'i4' (temp 4-component vector of int)

-0:68                                          Constant:

-0:68                                            1 (const int)

-0:69                                      direct index (temp int)

-0:69                                        'i4' (temp 4-component vector of int)

-0:69                                        Constant:

-0:69                                          2 (const int)

-0:70                                    direct index (temp int)

-0:70                                      'i4' (temp 4-component vector of int)

-0:70                                      Constant:

-0:70                                        3 (const int)

-0:71                                'f' (temp float)

-0:72                              direct index (temp float)

-0:72                                'f2' (temp 2-component vector of float)

-0:72                                Constant:

-0:72                                  0 (const int)

-0:73                            direct index (temp float)

-0:73                              'f2' (temp 2-component vector of float)

-0:73                              Constant:

-0:73                                1 (const int)

-0:74                          direct index (temp float)

-0:74                            'f3' (temp 3-component vector of float)

-0:74                            Constant:

-0:74                              0 (const int)

-0:75                        direct index (temp float)

-0:75                          'f3' (temp 3-component vector of float)

-0:75                          Constant:

-0:75                            1 (const int)

-0:76                      direct index (temp float)

-0:76                        'f3' (temp 3-component vector of float)

-0:76                        Constant:

-0:76                          2 (const int)

-0:77                    direct index (temp float)

-0:77                      'f4' (temp 4-component vector of float)

-0:77                      Constant:

-0:77                        0 (const int)

-0:78                  direct index (temp float)

-0:78                    'f4' (temp 4-component vector of float)

-0:78                    Constant:

-0:78                      1 (const int)

-0:79                direct index (temp float)

-0:79                  'f4' (temp 4-component vector of float)

-0:79                  Constant:

-0:79                    2 (const int)

-0:80              direct index (temp float)

-0:80                'f4' (temp 4-component vector of float)

-0:80                Constant:

-0:80                  3 (const int)

-0:60          false case

-0:80          Constant:

-0:80            1.000000

-0:80            1.000000

-0:80            1.000000

-0:80            1.000000

-0:?   Linker Objects

-0:?     'u_b' (uniform bool)

-0:?     'u_b2' (uniform 2-component vector of bool)

-0:?     'u_b3' (uniform 3-component vector of bool)

-0:?     'u_b4' (uniform 4-component vector of bool)

-0:?     'u_i' (uniform int)

-0:?     'u_i2' (uniform 2-component vector of int)

-0:?     'u_i3' (uniform 3-component vector of int)

-0:?     'u_i4' (uniform 4-component vector of int)

-0:?     'u_f' (uniform float)

-0:?     'u_f2' (uniform 2-component vector of float)

-0:?     'u_f3' (uniform 3-component vector of float)

-0:?     'u_f4' (uniform 4-component vector of float)

-0:?     'i_b' (uniform bool)

-0:?     'i_b2' (uniform 2-component vector of bool)

-0:?     'i_b3' (uniform 3-component vector of bool)

-0:?     'i_b4' (uniform 4-component vector of bool)

-0:?     'i_i' (flat in int)

-0:?     'i_i2' (flat in 2-component vector of int)

-0:?     'i_i3' (flat in 3-component vector of int)

-0:?     'i_i4' (flat in 4-component vector of int)

-0:?     'i_f' (smooth in float)

-0:?     'i_f2' (smooth in 2-component vector of float)

-0:?     'i_f3' (smooth in 3-component vector of float)

-0:?     'i_f4' (smooth in 4-component vector of float)

-

+types.frag
+Shader version: 130
+0:? Sequence
+0:33  Function Definition: main( (global void)
+0:33    Function Parameters: 
+0:35    Sequence
+0:35      Sequence
+0:35        move second child to first child (temp bool)
+0:35          'b' (temp bool)
+0:35          logical-and (temp bool)
+0:35            'u_b' (uniform bool)
+0:35            'i_b' (uniform bool)
+0:36      Sequence
+0:36        move second child to first child (temp 2-component vector of bool)
+0:36          'b2' (temp 2-component vector of bool)
+0:36          Construct bvec2 (temp 2-component vector of bool)
+0:36            logical-and (temp bool)
+0:36              logical-and (temp bool)
+0:36                logical-and (temp bool)
+0:36                  direct index (temp bool)
+0:36                    'u_b2' (uniform 2-component vector of bool)
+0:36                    Constant:
+0:36                      0 (const int)
+0:36                  direct index (temp bool)
+0:36                    'i_b2' (uniform 2-component vector of bool)
+0:36                    Constant:
+0:36                      0 (const int)
+0:36                direct index (temp bool)
+0:36                  'u_b2' (uniform 2-component vector of bool)
+0:36                  Constant:
+0:36                    1 (const int)
+0:36              direct index (temp bool)
+0:36                'i_b2' (uniform 2-component vector of bool)
+0:36                Constant:
+0:36                  1 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp 3-component vector of bool)
+0:37          'b3' (temp 3-component vector of bool)
+0:37          Construct bvec3 (temp 3-component vector of bool)
+0:37            logical-and (temp bool)
+0:37              logical-and (temp bool)
+0:37                logical-and (temp bool)
+0:37                  logical-and (temp bool)
+0:37                    logical-and (temp bool)
+0:37                      direct index (temp bool)
+0:37                        'u_b3' (uniform 3-component vector of bool)
+0:37                        Constant:
+0:37                          0 (const int)
+0:37                      direct index (temp bool)
+0:37                        'i_b3' (uniform 3-component vector of bool)
+0:37                        Constant:
+0:37                          0 (const int)
+0:37                    direct index (temp bool)
+0:37                      'u_b3' (uniform 3-component vector of bool)
+0:37                      Constant:
+0:37                        1 (const int)
+0:37                  direct index (temp bool)
+0:37                    'i_b3' (uniform 3-component vector of bool)
+0:37                    Constant:
+0:37                      1 (const int)
+0:37                direct index (temp bool)
+0:37                  'u_b3' (uniform 3-component vector of bool)
+0:37                  Constant:
+0:37                    2 (const int)
+0:37              direct index (temp bool)
+0:37                'i_b3' (uniform 3-component vector of bool)
+0:37                Constant:
+0:37                  2 (const int)
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of bool)
+0:38          'b4' (temp 4-component vector of bool)
+0:38          Construct bvec4 (temp 4-component vector of bool)
+0:38            logical-and (temp bool)
+0:38              logical-and (temp bool)
+0:38                logical-and (temp bool)
+0:38                  logical-and (temp bool)
+0:38                    logical-and (temp bool)
+0:38                      logical-and (temp bool)
+0:38                        logical-and (temp bool)
+0:38                          direct index (temp bool)
+0:38                            'u_b4' (uniform 4-component vector of bool)
+0:38                            Constant:
+0:38                              0 (const int)
+0:38                          direct index (temp bool)
+0:38                            'i_b4' (uniform 4-component vector of bool)
+0:38                            Constant:
+0:38                              0 (const int)
+0:38                        direct index (temp bool)
+0:38                          'u_b4' (uniform 4-component vector of bool)
+0:38                          Constant:
+0:38                            1 (const int)
+0:38                      direct index (temp bool)
+0:38                        'i_b4' (uniform 4-component vector of bool)
+0:38                        Constant:
+0:38                          1 (const int)
+0:38                    direct index (temp bool)
+0:38                      'u_b4' (uniform 4-component vector of bool)
+0:38                      Constant:
+0:38                        2 (const int)
+0:38                  direct index (temp bool)
+0:38                    'i_b4' (uniform 4-component vector of bool)
+0:38                    Constant:
+0:38                      2 (const int)
+0:38                direct index (temp bool)
+0:38                  'u_b4' (uniform 4-component vector of bool)
+0:38                  Constant:
+0:38                    3 (const int)
+0:38              direct index (temp bool)
+0:38                'i_b4' (uniform 4-component vector of bool)
+0:38                Constant:
+0:38                  3 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp int)
+0:40          'i' (temp int)
+0:40          add (temp int)
+0:40            'u_i' (uniform int)
+0:40            'i_i' (flat in int)
+0:41      Sequence
+0:41        move second child to first child (temp 2-component vector of int)
+0:41          'i2' (temp 2-component vector of int)
+0:41          add (temp 2-component vector of int)
+0:41            'u_i2' (uniform 2-component vector of int)
+0:41            'i_i2' (flat in 2-component vector of int)
+0:42      Sequence
+0:42        move second child to first child (temp 3-component vector of int)
+0:42          'i3' (temp 3-component vector of int)
+0:42          add (temp 3-component vector of int)
+0:42            'u_i3' (uniform 3-component vector of int)
+0:42            'i_i3' (flat in 3-component vector of int)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of int)
+0:43          'i4' (temp 4-component vector of int)
+0:43          add (temp 4-component vector of int)
+0:43            'u_i4' (uniform 4-component vector of int)
+0:43            'i_i4' (flat in 4-component vector of int)
+0:45      Sequence
+0:45        move second child to first child (temp float)
+0:45          'f' (temp float)
+0:45          add (temp float)
+0:45            'u_f' (uniform float)
+0:45            'i_f' (smooth in float)
+0:46      Sequence
+0:46        move second child to first child (temp 2-component vector of float)
+0:46          'f2' (temp 2-component vector of float)
+0:46          add (temp 2-component vector of float)
+0:46            'u_f2' (uniform 2-component vector of float)
+0:46            'i_f2' (smooth in 2-component vector of float)
+0:47      Sequence
+0:47        move second child to first child (temp 3-component vector of float)
+0:47          'f3' (temp 3-component vector of float)
+0:47          add (temp 3-component vector of float)
+0:47            'u_f3' (uniform 3-component vector of float)
+0:47            'i_f3' (smooth in 3-component vector of float)
+0:48      Sequence
+0:48        move second child to first child (temp 4-component vector of float)
+0:48          'f4' (temp 4-component vector of float)
+0:48          add (temp 4-component vector of float)
+0:48            'u_f4' (uniform 4-component vector of float)
+0:48            'i_f4' (smooth in 4-component vector of float)
+0:50      move second child to first child (temp 4-component vector of float)
+0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:60        Test condition and select (temp 4-component vector of float)
+0:60          Condition
+0:59          logical-or (temp bool)
+0:58            logical-or (temp bool)
+0:57              logical-or (temp bool)
+0:56                logical-or (temp bool)
+0:55                  logical-or (temp bool)
+0:54                    logical-or (temp bool)
+0:53                      logical-or (temp bool)
+0:52                        logical-or (temp bool)
+0:51                          logical-or (temp bool)
+0:51                            'b' (temp bool)
+0:52                            direct index (temp bool)
+0:52                              'b2' (temp 2-component vector of bool)
+0:52                              Constant:
+0:52                                0 (const int)
+0:53                          direct index (temp bool)
+0:53                            'b2' (temp 2-component vector of bool)
+0:53                            Constant:
+0:53                              1 (const int)
+0:54                        direct index (temp bool)
+0:54                          'b3' (temp 3-component vector of bool)
+0:54                          Constant:
+0:54                            0 (const int)
+0:55                      direct index (temp bool)
+0:55                        'b3' (temp 3-component vector of bool)
+0:55                        Constant:
+0:55                          1 (const int)
+0:56                    direct index (temp bool)
+0:56                      'b3' (temp 3-component vector of bool)
+0:56                      Constant:
+0:56                        2 (const int)
+0:57                  direct index (temp bool)
+0:57                    'b4' (temp 4-component vector of bool)
+0:57                    Constant:
+0:57                      0 (const int)
+0:58                direct index (temp bool)
+0:58                  'b4' (temp 4-component vector of bool)
+0:58                  Constant:
+0:58                    1 (const int)
+0:59              direct index (temp bool)
+0:59                'b4' (temp 4-component vector of bool)
+0:59                Constant:
+0:59                  2 (const int)
+0:60            direct index (temp bool)
+0:60              'b4' (temp 4-component vector of bool)
+0:60              Constant:
+0:60                3 (const int)
+0:60          true case
+0:79          Construct vec4 (temp 4-component vector of float)
+0:79            add (temp float)
+0:78              add (temp float)
+0:77                add (temp float)
+0:76                  add (temp float)
+0:75                    add (temp float)
+0:74                      add (temp float)
+0:73                        add (temp float)
+0:72                          add (temp float)
+0:71                            add (temp float)
+0:70                              add (temp float)
+0:69                                Convert int to float (temp float)
+0:69                                  add (temp int)
+0:68                                    add (temp int)
+0:67                                      add (temp int)
+0:66                                        add (temp int)
+0:65                                          add (temp int)
+0:64                                            add (temp int)
+0:63                                              add (temp int)
+0:62                                                add (temp int)
+0:61                                                  add (temp int)
+0:61                                                    'i' (temp int)
+0:62                                                    direct index (temp int)
+0:62                                                      'i2' (temp 2-component vector of int)
+0:62                                                      Constant:
+0:62                                                        0 (const int)
+0:63                                                  direct index (temp int)
+0:63                                                    'i2' (temp 2-component vector of int)
+0:63                                                    Constant:
+0:63                                                      1 (const int)
+0:64                                                direct index (temp int)
+0:64                                                  'i3' (temp 3-component vector of int)
+0:64                                                  Constant:
+0:64                                                    0 (const int)
+0:65                                              direct index (temp int)
+0:65                                                'i3' (temp 3-component vector of int)
+0:65                                                Constant:
+0:65                                                  1 (const int)
+0:66                                            direct index (temp int)
+0:66                                              'i3' (temp 3-component vector of int)
+0:66                                              Constant:
+0:66                                                2 (const int)
+0:67                                          direct index (temp int)
+0:67                                            'i4' (temp 4-component vector of int)
+0:67                                            Constant:
+0:67                                              0 (const int)
+0:68                                        direct index (temp int)
+0:68                                          'i4' (temp 4-component vector of int)
+0:68                                          Constant:
+0:68                                            1 (const int)
+0:69                                      direct index (temp int)
+0:69                                        'i4' (temp 4-component vector of int)
+0:69                                        Constant:
+0:69                                          2 (const int)
+0:70                                    direct index (temp int)
+0:70                                      'i4' (temp 4-component vector of int)
+0:70                                      Constant:
+0:70                                        3 (const int)
+0:71                                'f' (temp float)
+0:72                              direct index (temp float)
+0:72                                'f2' (temp 2-component vector of float)
+0:72                                Constant:
+0:72                                  0 (const int)
+0:73                            direct index (temp float)
+0:73                              'f2' (temp 2-component vector of float)
+0:73                              Constant:
+0:73                                1 (const int)
+0:74                          direct index (temp float)
+0:74                            'f3' (temp 3-component vector of float)
+0:74                            Constant:
+0:74                              0 (const int)
+0:75                        direct index (temp float)
+0:75                          'f3' (temp 3-component vector of float)
+0:75                          Constant:
+0:75                            1 (const int)
+0:76                      direct index (temp float)
+0:76                        'f3' (temp 3-component vector of float)
+0:76                        Constant:
+0:76                          2 (const int)
+0:77                    direct index (temp float)
+0:77                      'f4' (temp 4-component vector of float)
+0:77                      Constant:
+0:77                        0 (const int)
+0:78                  direct index (temp float)
+0:78                    'f4' (temp 4-component vector of float)
+0:78                    Constant:
+0:78                      1 (const int)
+0:79                direct index (temp float)
+0:79                  'f4' (temp 4-component vector of float)
+0:79                  Constant:
+0:79                    2 (const int)
+0:80              direct index (temp float)
+0:80                'f4' (temp 4-component vector of float)
+0:80                Constant:
+0:80                  3 (const int)
+0:60          false case
+0:80          Constant:
+0:80            1.000000
+0:80            1.000000
+0:80            1.000000
+0:80            1.000000
+0:?   Linker Objects
+0:?     'u_b' (uniform bool)
+0:?     'u_b2' (uniform 2-component vector of bool)
+0:?     'u_b3' (uniform 3-component vector of bool)
+0:?     'u_b4' (uniform 4-component vector of bool)
+0:?     'u_i' (uniform int)
+0:?     'u_i2' (uniform 2-component vector of int)
+0:?     'u_i3' (uniform 3-component vector of int)
+0:?     'u_i4' (uniform 4-component vector of int)
+0:?     'u_f' (uniform float)
+0:?     'u_f2' (uniform 2-component vector of float)
+0:?     'u_f3' (uniform 3-component vector of float)
+0:?     'u_f4' (uniform 4-component vector of float)
+0:?     'i_b' (uniform bool)
+0:?     'i_b2' (uniform 2-component vector of bool)
+0:?     'i_b3' (uniform 3-component vector of bool)
+0:?     'i_b4' (uniform 4-component vector of bool)
+0:?     'i_i' (flat in int)
+0:?     'i_i2' (flat in 2-component vector of int)
+0:?     'i_i3' (flat in 3-component vector of int)
+0:?     'i_i4' (flat in 4-component vector of int)
+0:?     'i_f' (smooth in float)
+0:?     'i_f2' (smooth in 2-component vector of float)
+0:?     'i_f3' (smooth in 3-component vector of float)
+0:?     'i_f4' (smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:33  Function Definition: main( (global void)
+0:33    Function Parameters: 
+0:35    Sequence
+0:35      Sequence
+0:35        move second child to first child (temp bool)
+0:35          'b' (temp bool)
+0:35          logical-and (temp bool)
+0:35            'u_b' (uniform bool)
+0:35            'i_b' (uniform bool)
+0:36      Sequence
+0:36        move second child to first child (temp 2-component vector of bool)
+0:36          'b2' (temp 2-component vector of bool)
+0:36          Construct bvec2 (temp 2-component vector of bool)
+0:36            logical-and (temp bool)
+0:36              logical-and (temp bool)
+0:36                logical-and (temp bool)
+0:36                  direct index (temp bool)
+0:36                    'u_b2' (uniform 2-component vector of bool)
+0:36                    Constant:
+0:36                      0 (const int)
+0:36                  direct index (temp bool)
+0:36                    'i_b2' (uniform 2-component vector of bool)
+0:36                    Constant:
+0:36                      0 (const int)
+0:36                direct index (temp bool)
+0:36                  'u_b2' (uniform 2-component vector of bool)
+0:36                  Constant:
+0:36                    1 (const int)
+0:36              direct index (temp bool)
+0:36                'i_b2' (uniform 2-component vector of bool)
+0:36                Constant:
+0:36                  1 (const int)
+0:37      Sequence
+0:37        move second child to first child (temp 3-component vector of bool)
+0:37          'b3' (temp 3-component vector of bool)
+0:37          Construct bvec3 (temp 3-component vector of bool)
+0:37            logical-and (temp bool)
+0:37              logical-and (temp bool)
+0:37                logical-and (temp bool)
+0:37                  logical-and (temp bool)
+0:37                    logical-and (temp bool)
+0:37                      direct index (temp bool)
+0:37                        'u_b3' (uniform 3-component vector of bool)
+0:37                        Constant:
+0:37                          0 (const int)
+0:37                      direct index (temp bool)
+0:37                        'i_b3' (uniform 3-component vector of bool)
+0:37                        Constant:
+0:37                          0 (const int)
+0:37                    direct index (temp bool)
+0:37                      'u_b3' (uniform 3-component vector of bool)
+0:37                      Constant:
+0:37                        1 (const int)
+0:37                  direct index (temp bool)
+0:37                    'i_b3' (uniform 3-component vector of bool)
+0:37                    Constant:
+0:37                      1 (const int)
+0:37                direct index (temp bool)
+0:37                  'u_b3' (uniform 3-component vector of bool)
+0:37                  Constant:
+0:37                    2 (const int)
+0:37              direct index (temp bool)
+0:37                'i_b3' (uniform 3-component vector of bool)
+0:37                Constant:
+0:37                  2 (const int)
+0:38      Sequence
+0:38        move second child to first child (temp 4-component vector of bool)
+0:38          'b4' (temp 4-component vector of bool)
+0:38          Construct bvec4 (temp 4-component vector of bool)
+0:38            logical-and (temp bool)
+0:38              logical-and (temp bool)
+0:38                logical-and (temp bool)
+0:38                  logical-and (temp bool)
+0:38                    logical-and (temp bool)
+0:38                      logical-and (temp bool)
+0:38                        logical-and (temp bool)
+0:38                          direct index (temp bool)
+0:38                            'u_b4' (uniform 4-component vector of bool)
+0:38                            Constant:
+0:38                              0 (const int)
+0:38                          direct index (temp bool)
+0:38                            'i_b4' (uniform 4-component vector of bool)
+0:38                            Constant:
+0:38                              0 (const int)
+0:38                        direct index (temp bool)
+0:38                          'u_b4' (uniform 4-component vector of bool)
+0:38                          Constant:
+0:38                            1 (const int)
+0:38                      direct index (temp bool)
+0:38                        'i_b4' (uniform 4-component vector of bool)
+0:38                        Constant:
+0:38                          1 (const int)
+0:38                    direct index (temp bool)
+0:38                      'u_b4' (uniform 4-component vector of bool)
+0:38                      Constant:
+0:38                        2 (const int)
+0:38                  direct index (temp bool)
+0:38                    'i_b4' (uniform 4-component vector of bool)
+0:38                    Constant:
+0:38                      2 (const int)
+0:38                direct index (temp bool)
+0:38                  'u_b4' (uniform 4-component vector of bool)
+0:38                  Constant:
+0:38                    3 (const int)
+0:38              direct index (temp bool)
+0:38                'i_b4' (uniform 4-component vector of bool)
+0:38                Constant:
+0:38                  3 (const int)
+0:40      Sequence
+0:40        move second child to first child (temp int)
+0:40          'i' (temp int)
+0:40          add (temp int)
+0:40            'u_i' (uniform int)
+0:40            'i_i' (flat in int)
+0:41      Sequence
+0:41        move second child to first child (temp 2-component vector of int)
+0:41          'i2' (temp 2-component vector of int)
+0:41          add (temp 2-component vector of int)
+0:41            'u_i2' (uniform 2-component vector of int)
+0:41            'i_i2' (flat in 2-component vector of int)
+0:42      Sequence
+0:42        move second child to first child (temp 3-component vector of int)
+0:42          'i3' (temp 3-component vector of int)
+0:42          add (temp 3-component vector of int)
+0:42            'u_i3' (uniform 3-component vector of int)
+0:42            'i_i3' (flat in 3-component vector of int)
+0:43      Sequence
+0:43        move second child to first child (temp 4-component vector of int)
+0:43          'i4' (temp 4-component vector of int)
+0:43          add (temp 4-component vector of int)
+0:43            'u_i4' (uniform 4-component vector of int)
+0:43            'i_i4' (flat in 4-component vector of int)
+0:45      Sequence
+0:45        move second child to first child (temp float)
+0:45          'f' (temp float)
+0:45          add (temp float)
+0:45            'u_f' (uniform float)
+0:45            'i_f' (smooth in float)
+0:46      Sequence
+0:46        move second child to first child (temp 2-component vector of float)
+0:46          'f2' (temp 2-component vector of float)
+0:46          add (temp 2-component vector of float)
+0:46            'u_f2' (uniform 2-component vector of float)
+0:46            'i_f2' (smooth in 2-component vector of float)
+0:47      Sequence
+0:47        move second child to first child (temp 3-component vector of float)
+0:47          'f3' (temp 3-component vector of float)
+0:47          add (temp 3-component vector of float)
+0:47            'u_f3' (uniform 3-component vector of float)
+0:47            'i_f3' (smooth in 3-component vector of float)
+0:48      Sequence
+0:48        move second child to first child (temp 4-component vector of float)
+0:48          'f4' (temp 4-component vector of float)
+0:48          add (temp 4-component vector of float)
+0:48            'u_f4' (uniform 4-component vector of float)
+0:48            'i_f4' (smooth in 4-component vector of float)
+0:50      move second child to first child (temp 4-component vector of float)
+0:50        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:60        Test condition and select (temp 4-component vector of float)
+0:60          Condition
+0:59          logical-or (temp bool)
+0:58            logical-or (temp bool)
+0:57              logical-or (temp bool)
+0:56                logical-or (temp bool)
+0:55                  logical-or (temp bool)
+0:54                    logical-or (temp bool)
+0:53                      logical-or (temp bool)
+0:52                        logical-or (temp bool)
+0:51                          logical-or (temp bool)
+0:51                            'b' (temp bool)
+0:52                            direct index (temp bool)
+0:52                              'b2' (temp 2-component vector of bool)
+0:52                              Constant:
+0:52                                0 (const int)
+0:53                          direct index (temp bool)
+0:53                            'b2' (temp 2-component vector of bool)
+0:53                            Constant:
+0:53                              1 (const int)
+0:54                        direct index (temp bool)
+0:54                          'b3' (temp 3-component vector of bool)
+0:54                          Constant:
+0:54                            0 (const int)
+0:55                      direct index (temp bool)
+0:55                        'b3' (temp 3-component vector of bool)
+0:55                        Constant:
+0:55                          1 (const int)
+0:56                    direct index (temp bool)
+0:56                      'b3' (temp 3-component vector of bool)
+0:56                      Constant:
+0:56                        2 (const int)
+0:57                  direct index (temp bool)
+0:57                    'b4' (temp 4-component vector of bool)
+0:57                    Constant:
+0:57                      0 (const int)
+0:58                direct index (temp bool)
+0:58                  'b4' (temp 4-component vector of bool)
+0:58                  Constant:
+0:58                    1 (const int)
+0:59              direct index (temp bool)
+0:59                'b4' (temp 4-component vector of bool)
+0:59                Constant:
+0:59                  2 (const int)
+0:60            direct index (temp bool)
+0:60              'b4' (temp 4-component vector of bool)
+0:60              Constant:
+0:60                3 (const int)
+0:60          true case
+0:79          Construct vec4 (temp 4-component vector of float)
+0:79            add (temp float)
+0:78              add (temp float)
+0:77                add (temp float)
+0:76                  add (temp float)
+0:75                    add (temp float)
+0:74                      add (temp float)
+0:73                        add (temp float)
+0:72                          add (temp float)
+0:71                            add (temp float)
+0:70                              add (temp float)
+0:69                                Convert int to float (temp float)
+0:69                                  add (temp int)
+0:68                                    add (temp int)
+0:67                                      add (temp int)
+0:66                                        add (temp int)
+0:65                                          add (temp int)
+0:64                                            add (temp int)
+0:63                                              add (temp int)
+0:62                                                add (temp int)
+0:61                                                  add (temp int)
+0:61                                                    'i' (temp int)
+0:62                                                    direct index (temp int)
+0:62                                                      'i2' (temp 2-component vector of int)
+0:62                                                      Constant:
+0:62                                                        0 (const int)
+0:63                                                  direct index (temp int)
+0:63                                                    'i2' (temp 2-component vector of int)
+0:63                                                    Constant:
+0:63                                                      1 (const int)
+0:64                                                direct index (temp int)
+0:64                                                  'i3' (temp 3-component vector of int)
+0:64                                                  Constant:
+0:64                                                    0 (const int)
+0:65                                              direct index (temp int)
+0:65                                                'i3' (temp 3-component vector of int)
+0:65                                                Constant:
+0:65                                                  1 (const int)
+0:66                                            direct index (temp int)
+0:66                                              'i3' (temp 3-component vector of int)
+0:66                                              Constant:
+0:66                                                2 (const int)
+0:67                                          direct index (temp int)
+0:67                                            'i4' (temp 4-component vector of int)
+0:67                                            Constant:
+0:67                                              0 (const int)
+0:68                                        direct index (temp int)
+0:68                                          'i4' (temp 4-component vector of int)
+0:68                                          Constant:
+0:68                                            1 (const int)
+0:69                                      direct index (temp int)
+0:69                                        'i4' (temp 4-component vector of int)
+0:69                                        Constant:
+0:69                                          2 (const int)
+0:70                                    direct index (temp int)
+0:70                                      'i4' (temp 4-component vector of int)
+0:70                                      Constant:
+0:70                                        3 (const int)
+0:71                                'f' (temp float)
+0:72                              direct index (temp float)
+0:72                                'f2' (temp 2-component vector of float)
+0:72                                Constant:
+0:72                                  0 (const int)
+0:73                            direct index (temp float)
+0:73                              'f2' (temp 2-component vector of float)
+0:73                              Constant:
+0:73                                1 (const int)
+0:74                          direct index (temp float)
+0:74                            'f3' (temp 3-component vector of float)
+0:74                            Constant:
+0:74                              0 (const int)
+0:75                        direct index (temp float)
+0:75                          'f3' (temp 3-component vector of float)
+0:75                          Constant:
+0:75                            1 (const int)
+0:76                      direct index (temp float)
+0:76                        'f3' (temp 3-component vector of float)
+0:76                        Constant:
+0:76                          2 (const int)
+0:77                    direct index (temp float)
+0:77                      'f4' (temp 4-component vector of float)
+0:77                      Constant:
+0:77                        0 (const int)
+0:78                  direct index (temp float)
+0:78                    'f4' (temp 4-component vector of float)
+0:78                    Constant:
+0:78                      1 (const int)
+0:79                direct index (temp float)
+0:79                  'f4' (temp 4-component vector of float)
+0:79                  Constant:
+0:79                    2 (const int)
+0:80              direct index (temp float)
+0:80                'f4' (temp 4-component vector of float)
+0:80                Constant:
+0:80                  3 (const int)
+0:60          false case
+0:80          Constant:
+0:80            1.000000
+0:80            1.000000
+0:80            1.000000
+0:80            1.000000
+0:?   Linker Objects
+0:?     'u_b' (uniform bool)
+0:?     'u_b2' (uniform 2-component vector of bool)
+0:?     'u_b3' (uniform 3-component vector of bool)
+0:?     'u_b4' (uniform 4-component vector of bool)
+0:?     'u_i' (uniform int)
+0:?     'u_i2' (uniform 2-component vector of int)
+0:?     'u_i3' (uniform 3-component vector of int)
+0:?     'u_i4' (uniform 4-component vector of int)
+0:?     'u_f' (uniform float)
+0:?     'u_f2' (uniform 2-component vector of float)
+0:?     'u_f3' (uniform 3-component vector of float)
+0:?     'u_f4' (uniform 4-component vector of float)
+0:?     'i_b' (uniform bool)
+0:?     'i_b2' (uniform 2-component vector of bool)
+0:?     'i_b3' (uniform 3-component vector of bool)
+0:?     'i_b4' (uniform 4-component vector of bool)
+0:?     'i_i' (flat in int)
+0:?     'i_i2' (flat in 2-component vector of int)
+0:?     'i_i3' (flat in 3-component vector of int)
+0:?     'i_i4' (flat in 4-component vector of int)
+0:?     'i_f' (smooth in float)
+0:?     'i_f2' (smooth in 2-component vector of float)
+0:?     'i_f3' (smooth in 3-component vector of float)
+0:?     'i_f4' (smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/uint.frag.out b/Test/baseResults/uint.frag.out
index 4f4d589..c06ad84 100644
--- a/Test/baseResults/uint.frag.out
+++ b/Test/baseResults/uint.frag.out
@@ -1,607 +1,607 @@
-uint.frag

-ERROR: 0:2: 'uint' : must be qualified as flat in

-ERROR: 0:6: 'in' : cannot be bool 

-ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const initializer 

-ERROR: 0:24: 'const' : non-matching or non-convertible constant type for const initializer 

-ERROR: 0:34: 'const' : non-matching or non-convertible constant type for const initializer 

-ERROR: 0:37: 'const' : non-matching or non-convertible constant type for const initializer 

-ERROR: 0:48: '=' :  cannot convert from 'const int' to 'temp mediump uint'

-ERROR: 0:51: '=' :  cannot convert from 'const int' to 'temp mediump uint'

-ERROR: 0:63: 'float' : type requires declaration of default precision qualifier 

-ERROR: 9 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp mediump int)

-0:17          'count' (temp mediump int)

-0:17          Constant:

-0:17            1 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp mediump uint)

-0:19          'u' (temp mediump uint)

-0:19          add (temp mediump uint)

-0:19            direct index (temp mediump uint)

-0:19              't' (flat in mediump 2-component vector of uint)

-0:19              Constant:

-0:19                1 (const int)

-0:19            Constant:

-0:19              3 (const uint)

-0:27      Test condition and select (temp void)

-0:27        Condition

-0:27        Constant:

-0:27          true (const bool)

-0:27        true case

-0:28        multiply second child into first child (temp mediump int)

-0:28          'count' (temp mediump int)

-0:28          Constant:

-0:28            2 (const int)

-0:29      Test condition and select (temp void)

-0:29        Condition

-0:29        Constant:

-0:29          true (const bool)

-0:29        true case

-0:30        multiply second child into first child (temp mediump int)

-0:30          'count' (temp mediump int)

-0:30          Constant:

-0:30            3 (const int)

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Constant:

-0:31          false (const bool)

-0:31        true case

-0:32        multiply second child into first child (temp mediump int)

-0:32          'count' (temp mediump int)

-0:32          Constant:

-0:32            5 (const int)

-0:41      Test condition and select (temp void)

-0:41        Condition

-0:41        Constant:

-0:41          true (const bool)

-0:41        true case

-0:42        multiply second child into first child (temp mediump int)

-0:42          'count' (temp mediump int)

-0:42          Constant:

-0:42            7 (const int)

-0:43      Test condition and select (temp void)

-0:43        Condition

-0:43        Constant:

-0:43          true (const bool)

-0:43        true case

-0:44        multiply second child into first child (temp mediump int)

-0:44          'count' (temp mediump int)

-0:44          Constant:

-0:44            11 (const int)

-0:45      Test condition and select (temp void)

-0:45        Condition

-0:45        Constant:

-0:45          false (const bool)

-0:45        true case

-0:46        multiply second child into first child (temp mediump int)

-0:46          'count' (temp mediump int)

-0:46          Constant:

-0:46            13 (const int)

-0:49      Sequence

-0:49        move second child to first child (temp mediump int)

-0:49          'shiftedii' (temp mediump int)

-0:49          Constant:

-0:49            -1 (const int)

-0:50      Sequence

-0:50        move second child to first child (temp mediump uint)

-0:50          'shiftedui' (temp mediump uint)

-0:50          Constant:

-0:50            4194303 (const uint)

-0:52      Sequence

-0:52        move second child to first child (temp mediump int)

-0:52          'shiftediu' (temp mediump int)

-0:52          Constant:

-0:52            -1 (const int)

-0:53      Sequence

-0:53        move second child to first child (temp mediump uint)

-0:53          'shifteduu' (temp mediump uint)

-0:53          Constant:

-0:53            4194303 (const uint)

-0:55      Test condition and select (temp void)

-0:55        Condition

-0:55        Compare Equal (temp bool)

-0:55          'shiftedii' (temp mediump int)

-0:55          'shiftediu' (temp mediump int)

-0:55        true case

-0:56        move second child to first child (temp mediump 4-component vector of uint)

-0:56          'c' (out mediump 4-component vector of uint)

-0:56          texture (global mediump 4-component vector of uint)

-0:56            'usampler' (uniform lowp usampler2D)

-0:56            'tc' (smooth in highp 2-component vector of float)

-0:57      Test condition and select (temp void)

-0:57        Condition

-0:57        Compare Equal (temp bool)

-0:57          'shiftedui' (temp mediump uint)

-0:57          'shifteduu' (temp mediump uint)

-0:57        true case

-0:58        move second child to first child (temp mediump 4-component vector of uint)

-0:58          'c' (out mediump 4-component vector of uint)

-0:58          texture (global mediump 4-component vector of uint)

-0:58            'usampler' (uniform lowp usampler2D)

-0:58            add (temp highp 2-component vector of float)

-0:58              'tc' (smooth in highp 2-component vector of float)

-0:58              Constant:

-0:58                1.000000

-0:59      Test condition and select (temp void)

-0:59        Condition

-0:59        Compare Equal (temp bool)

-0:59          'shiftedii' (temp mediump int)

-0:59          Convert uint to int (temp int)

-0:59            'shiftedui' (temp mediump uint)

-0:59        true case

-0:60        move second child to first child (temp mediump 4-component vector of uint)

-0:60          'c' (out mediump 4-component vector of uint)

-0:60          texture (global mediump 4-component vector of uint)

-0:60            'usampler' (uniform lowp usampler2D)

-0:60            subtract (temp highp 2-component vector of float)

-0:60              'tc' (smooth in highp 2-component vector of float)

-0:60              Constant:

-0:60                2.000000

-0:60                2.000000

-0:62      Test condition and select (temp void)

-0:62        Condition

-0:62        Compare Greater Than (temp bool)

-0:62          direct index (temp mediump uint)

-0:62            't' (flat in mediump 2-component vector of uint)

-0:62            Constant:

-0:62              0 (const int)

-0:62          Constant:

-0:62            4 (const uint)

-0:62        true case

-0:63        Sequence

-0:63          Sequence

-0:63            move second child to first child (temp mediump float)

-0:63              'af' (temp mediump float)

-0:63              Convert uint to float (temp mediump float)

-0:63                'u' (temp mediump uint)

-0:64          Sequence

-0:64            move second child to first child (temp bool)

-0:64              'ab' (temp bool)

-0:64              Convert uint to bool (temp bool)

-0:64                'u' (temp mediump uint)

-0:65          Sequence

-0:65            move second child to first child (temp mediump int)

-0:65              'ai' (temp mediump int)

-0:65              Convert uint to int (temp mediump int)

-0:65                'u' (temp mediump uint)

-0:67          add second child into first child (temp mediump 4-component vector of uint)

-0:67            'c' (out mediump 4-component vector of uint)

-0:67            Construct uvec4 (temp mediump 4-component vector of uint)

-0:67              Convert float to uint (temp mediump uint)

-0:67                'af' (temp mediump float)

-0:67              Convert bool to uint (temp mediump uint)

-0:67                'ab' (temp bool)

-0:67              Convert int to uint (temp mediump uint)

-0:67                'ai' (temp mediump int)

-0:67              Convert int to uint (temp mediump uint)

-0:67                'count' (temp mediump int)

-0:75      Test condition and select (temp void)

-0:75        Condition

-0:75        Constant:

-0:75          true (const bool)

-0:75        true case

-0:76        multiply second child into first child (temp mediump int)

-0:76          'count' (temp mediump int)

-0:76          Constant:

-0:76            17 (const int)

-0:78      Test condition and select (temp void)

-0:78        Condition

-0:78        Constant:

-0:78          false (const bool)

-0:78        true case

-0:79        multiply second child into first child (temp mediump int)

-0:79          'count' (temp mediump int)

-0:79          Constant:

-0:79            19 (const int)

-0:81      Test condition and select (temp void)

-0:81        Condition

-0:81        Constant:

-0:81          true (const bool)

-0:81        true case

-0:82        multiply second child into first child (temp mediump int)

-0:82          'count' (temp mediump int)

-0:82          Constant:

-0:82            23 (const int)

-0:84      Test condition and select (temp void)

-0:84        Condition

-0:84        Constant:

-0:84          true (const bool)

-0:84        true case

-0:85        multiply second child into first child (temp mediump int)

-0:85          'count' (temp mediump int)

-0:85          Constant:

-0:85            27 (const int)

-0:87      Sequence

-0:87        move second child to first child (temp mediump uint)

-0:87          'mask1' (temp mediump uint)

-0:87          Constant:

-0:87            161 (const uint)

-0:88      Sequence

-0:88        move second child to first child (temp mediump uint)

-0:88          'mask2' (temp mediump uint)

-0:88          Constant:

-0:88            2576 (const uint)

-0:89      Sequence

-0:89        move second child to first child (temp mediump uint)

-0:89          'mask3' (temp mediump uint)

-0:89          left-shift (temp mediump uint)

-0:89            'mask1' (temp mediump uint)

-0:89            Constant:

-0:89              4 (const int)

-0:90      Sequence

-0:90        move second child to first child (temp mediump uint)

-0:90          'mask4' (temp mediump uint)

-0:90          Constant:

-0:90            2737 (const uint)

-0:92      Test condition and select (temp void)

-0:92        Condition

-0:92        Compare Equal (temp bool)

-0:92          'mask3' (temp mediump uint)

-0:92          'mask2' (temp mediump uint)

-0:92        true case

-0:93        multiply second child into first child (temp mediump int)

-0:93          'count' (temp mediump int)

-0:93          Constant:

-0:93            100 (const int)

-0:95      Test condition and select (temp void)

-0:95        Condition

-0:95        Compare Not Equal (temp bool)

-0:95          bitwise and (temp mediump uint)

-0:95            'mask3' (temp mediump uint)

-0:95            'mask1' (temp mediump uint)

-0:95          Constant:

-0:95            0 (const uint)

-0:95        true case

-0:96        multiply second child into first child (temp mediump int)

-0:96          'count' (temp mediump int)

-0:96          Constant:

-0:96            101 (const int)

-0:98      Test condition and select (temp void)

-0:98        Condition

-0:98        Compare Equal (temp bool)

-0:98          inclusive-or (temp mediump uint)

-0:98            'mask1' (temp mediump uint)

-0:98            'mask3' (temp mediump uint)

-0:98          'mask4' (temp mediump uint)

-0:98        true case

-0:99        multiply second child into first child (temp mediump int)

-0:99          'count' (temp mediump int)

-0:99          Constant:

-0:99            102 (const int)

-0:101      Test condition and select (temp void)

-0:101        Condition

-0:101        Compare Equal (temp bool)

-0:101          exclusive-or (temp mediump uint)

-0:101            'mask1' (temp mediump uint)

-0:101            'mask4' (temp mediump uint)

-0:101          Constant:

-0:101            2576 (const uint)

-0:101        true case

-0:102        multiply second child into first child (temp mediump int)

-0:102          'count' (temp mediump int)

-0:102          Constant:

-0:102            103 (const int)

-0:104      add second child into first child (temp mediump 4-component vector of uint)

-0:104        'c' (out mediump 4-component vector of uint)

-0:104        Construct uvec4 (temp mediump 4-component vector of uint)

-0:104          Convert int to uint (temp mediump uint)

-0:104            'count' (temp mediump int)

-0:?   Linker Objects

-0:?     'badu' (smooth in mediump 2-component vector of uint)

-0:?     't' (flat in mediump 2-component vector of uint)

-0:?     'f' (smooth in highp float)

-0:?     'tc' (smooth in highp 2-component vector of float)

-0:?     'bad' (smooth in bool)

-0:?     'v' (uniform mediump 4-component vector of uint)

-0:?     'i' (uniform mediump int)

-0:?     'b' (uniform bool)

-0:?     'c' (out mediump 4-component vector of uint)

-0:?     'usampler' (uniform lowp usampler2D)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:15  Function Definition: main( (global void)

-0:15    Function Parameters: 

-0:17    Sequence

-0:17      Sequence

-0:17        move second child to first child (temp mediump int)

-0:17          'count' (temp mediump int)

-0:17          Constant:

-0:17            1 (const int)

-0:19      Sequence

-0:19        move second child to first child (temp mediump uint)

-0:19          'u' (temp mediump uint)

-0:19          add (temp mediump uint)

-0:19            direct index (temp mediump uint)

-0:19              't' (flat in mediump 2-component vector of uint)

-0:19              Constant:

-0:19                1 (const int)

-0:19            Constant:

-0:19              3 (const uint)

-0:27      Test condition and select (temp void)

-0:27        Condition

-0:27        Constant:

-0:27          true (const bool)

-0:27        true case

-0:28        multiply second child into first child (temp mediump int)

-0:28          'count' (temp mediump int)

-0:28          Constant:

-0:28            2 (const int)

-0:29      Test condition and select (temp void)

-0:29        Condition

-0:29        Constant:

-0:29          true (const bool)

-0:29        true case

-0:30        multiply second child into first child (temp mediump int)

-0:30          'count' (temp mediump int)

-0:30          Constant:

-0:30            3 (const int)

-0:31      Test condition and select (temp void)

-0:31        Condition

-0:31        Constant:

-0:31          false (const bool)

-0:31        true case

-0:32        multiply second child into first child (temp mediump int)

-0:32          'count' (temp mediump int)

-0:32          Constant:

-0:32            5 (const int)

-0:41      Test condition and select (temp void)

-0:41        Condition

-0:41        Constant:

-0:41          true (const bool)

-0:41        true case

-0:42        multiply second child into first child (temp mediump int)

-0:42          'count' (temp mediump int)

-0:42          Constant:

-0:42            7 (const int)

-0:43      Test condition and select (temp void)

-0:43        Condition

-0:43        Constant:

-0:43          true (const bool)

-0:43        true case

-0:44        multiply second child into first child (temp mediump int)

-0:44          'count' (temp mediump int)

-0:44          Constant:

-0:44            11 (const int)

-0:45      Test condition and select (temp void)

-0:45        Condition

-0:45        Constant:

-0:45          false (const bool)

-0:45        true case

-0:46        multiply second child into first child (temp mediump int)

-0:46          'count' (temp mediump int)

-0:46          Constant:

-0:46            13 (const int)

-0:49      Sequence

-0:49        move second child to first child (temp mediump int)

-0:49          'shiftedii' (temp mediump int)

-0:49          Constant:

-0:49            -1 (const int)

-0:50      Sequence

-0:50        move second child to first child (temp mediump uint)

-0:50          'shiftedui' (temp mediump uint)

-0:50          Constant:

-0:50            4194303 (const uint)

-0:52      Sequence

-0:52        move second child to first child (temp mediump int)

-0:52          'shiftediu' (temp mediump int)

-0:52          Constant:

-0:52            -1 (const int)

-0:53      Sequence

-0:53        move second child to first child (temp mediump uint)

-0:53          'shifteduu' (temp mediump uint)

-0:53          Constant:

-0:53            4194303 (const uint)

-0:55      Test condition and select (temp void)

-0:55        Condition

-0:55        Compare Equal (temp bool)

-0:55          'shiftedii' (temp mediump int)

-0:55          'shiftediu' (temp mediump int)

-0:55        true case

-0:56        move second child to first child (temp mediump 4-component vector of uint)

-0:56          'c' (out mediump 4-component vector of uint)

-0:56          texture (global mediump 4-component vector of uint)

-0:56            'usampler' (uniform lowp usampler2D)

-0:56            'tc' (smooth in highp 2-component vector of float)

-0:57      Test condition and select (temp void)

-0:57        Condition

-0:57        Compare Equal (temp bool)

-0:57          'shiftedui' (temp mediump uint)

-0:57          'shifteduu' (temp mediump uint)

-0:57        true case

-0:58        move second child to first child (temp mediump 4-component vector of uint)

-0:58          'c' (out mediump 4-component vector of uint)

-0:58          texture (global mediump 4-component vector of uint)

-0:58            'usampler' (uniform lowp usampler2D)

-0:58            add (temp highp 2-component vector of float)

-0:58              'tc' (smooth in highp 2-component vector of float)

-0:58              Constant:

-0:58                1.000000

-0:59      Test condition and select (temp void)

-0:59        Condition

-0:59        Compare Equal (temp bool)

-0:59          'shiftedii' (temp mediump int)

-0:59          Convert uint to int (temp int)

-0:59            'shiftedui' (temp mediump uint)

-0:59        true case

-0:60        move second child to first child (temp mediump 4-component vector of uint)

-0:60          'c' (out mediump 4-component vector of uint)

-0:60          texture (global mediump 4-component vector of uint)

-0:60            'usampler' (uniform lowp usampler2D)

-0:60            subtract (temp highp 2-component vector of float)

-0:60              'tc' (smooth in highp 2-component vector of float)

-0:60              Constant:

-0:60                2.000000

-0:60                2.000000

-0:62      Test condition and select (temp void)

-0:62        Condition

-0:62        Compare Greater Than (temp bool)

-0:62          direct index (temp mediump uint)

-0:62            't' (flat in mediump 2-component vector of uint)

-0:62            Constant:

-0:62              0 (const int)

-0:62          Constant:

-0:62            4 (const uint)

-0:62        true case

-0:63        Sequence

-0:63          Sequence

-0:63            move second child to first child (temp mediump float)

-0:63              'af' (temp mediump float)

-0:63              Convert uint to float (temp mediump float)

-0:63                'u' (temp mediump uint)

-0:64          Sequence

-0:64            move second child to first child (temp bool)

-0:64              'ab' (temp bool)

-0:64              Convert uint to bool (temp bool)

-0:64                'u' (temp mediump uint)

-0:65          Sequence

-0:65            move second child to first child (temp mediump int)

-0:65              'ai' (temp mediump int)

-0:65              Convert uint to int (temp mediump int)

-0:65                'u' (temp mediump uint)

-0:67          add second child into first child (temp mediump 4-component vector of uint)

-0:67            'c' (out mediump 4-component vector of uint)

-0:67            Construct uvec4 (temp mediump 4-component vector of uint)

-0:67              Convert float to uint (temp mediump uint)

-0:67                'af' (temp mediump float)

-0:67              Convert bool to uint (temp mediump uint)

-0:67                'ab' (temp bool)

-0:67              Convert int to uint (temp mediump uint)

-0:67                'ai' (temp mediump int)

-0:67              Convert int to uint (temp mediump uint)

-0:67                'count' (temp mediump int)

-0:75      Test condition and select (temp void)

-0:75        Condition

-0:75        Constant:

-0:75          true (const bool)

-0:75        true case

-0:76        multiply second child into first child (temp mediump int)

-0:76          'count' (temp mediump int)

-0:76          Constant:

-0:76            17 (const int)

-0:78      Test condition and select (temp void)

-0:78        Condition

-0:78        Constant:

-0:78          false (const bool)

-0:78        true case

-0:79        multiply second child into first child (temp mediump int)

-0:79          'count' (temp mediump int)

-0:79          Constant:

-0:79            19 (const int)

-0:81      Test condition and select (temp void)

-0:81        Condition

-0:81        Constant:

-0:81          true (const bool)

-0:81        true case

-0:82        multiply second child into first child (temp mediump int)

-0:82          'count' (temp mediump int)

-0:82          Constant:

-0:82            23 (const int)

-0:84      Test condition and select (temp void)

-0:84        Condition

-0:84        Constant:

-0:84          true (const bool)

-0:84        true case

-0:85        multiply second child into first child (temp mediump int)

-0:85          'count' (temp mediump int)

-0:85          Constant:

-0:85            27 (const int)

-0:87      Sequence

-0:87        move second child to first child (temp mediump uint)

-0:87          'mask1' (temp mediump uint)

-0:87          Constant:

-0:87            161 (const uint)

-0:88      Sequence

-0:88        move second child to first child (temp mediump uint)

-0:88          'mask2' (temp mediump uint)

-0:88          Constant:

-0:88            2576 (const uint)

-0:89      Sequence

-0:89        move second child to first child (temp mediump uint)

-0:89          'mask3' (temp mediump uint)

-0:89          left-shift (temp mediump uint)

-0:89            'mask1' (temp mediump uint)

-0:89            Constant:

-0:89              4 (const int)

-0:90      Sequence

-0:90        move second child to first child (temp mediump uint)

-0:90          'mask4' (temp mediump uint)

-0:90          Constant:

-0:90            2737 (const uint)

-0:92      Test condition and select (temp void)

-0:92        Condition

-0:92        Compare Equal (temp bool)

-0:92          'mask3' (temp mediump uint)

-0:92          'mask2' (temp mediump uint)

-0:92        true case

-0:93        multiply second child into first child (temp mediump int)

-0:93          'count' (temp mediump int)

-0:93          Constant:

-0:93            100 (const int)

-0:95      Test condition and select (temp void)

-0:95        Condition

-0:95        Compare Not Equal (temp bool)

-0:95          bitwise and (temp mediump uint)

-0:95            'mask3' (temp mediump uint)

-0:95            'mask1' (temp mediump uint)

-0:95          Constant:

-0:95            0 (const uint)

-0:95        true case

-0:96        multiply second child into first child (temp mediump int)

-0:96          'count' (temp mediump int)

-0:96          Constant:

-0:96            101 (const int)

-0:98      Test condition and select (temp void)

-0:98        Condition

-0:98        Compare Equal (temp bool)

-0:98          inclusive-or (temp mediump uint)

-0:98            'mask1' (temp mediump uint)

-0:98            'mask3' (temp mediump uint)

-0:98          'mask4' (temp mediump uint)

-0:98        true case

-0:99        multiply second child into first child (temp mediump int)

-0:99          'count' (temp mediump int)

-0:99          Constant:

-0:99            102 (const int)

-0:101      Test condition and select (temp void)

-0:101        Condition

-0:101        Compare Equal (temp bool)

-0:101          exclusive-or (temp mediump uint)

-0:101            'mask1' (temp mediump uint)

-0:101            'mask4' (temp mediump uint)

-0:101          Constant:

-0:101            2576 (const uint)

-0:101        true case

-0:102        multiply second child into first child (temp mediump int)

-0:102          'count' (temp mediump int)

-0:102          Constant:

-0:102            103 (const int)

-0:104      add second child into first child (temp mediump 4-component vector of uint)

-0:104        'c' (out mediump 4-component vector of uint)

-0:104        Construct uvec4 (temp mediump 4-component vector of uint)

-0:104          Convert int to uint (temp mediump uint)

-0:104            'count' (temp mediump int)

-0:?   Linker Objects

-0:?     'badu' (smooth in mediump 2-component vector of uint)

-0:?     't' (flat in mediump 2-component vector of uint)

-0:?     'f' (smooth in highp float)

-0:?     'tc' (smooth in highp 2-component vector of float)

-0:?     'bad' (smooth in bool)

-0:?     'v' (uniform mediump 4-component vector of uint)

-0:?     'i' (uniform mediump int)

-0:?     'b' (uniform bool)

-0:?     'c' (out mediump 4-component vector of uint)

-0:?     'usampler' (uniform lowp usampler2D)

-

+uint.frag
+ERROR: 0:2: 'uint' : must be qualified as flat in
+ERROR: 0:6: 'in' : cannot be bool 
+ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const initializer 
+ERROR: 0:24: 'const' : non-matching or non-convertible constant type for const initializer 
+ERROR: 0:34: 'const' : non-matching or non-convertible constant type for const initializer 
+ERROR: 0:37: 'const' : non-matching or non-convertible constant type for const initializer 
+ERROR: 0:48: '=' :  cannot convert from 'const int' to 'temp mediump uint'
+ERROR: 0:51: '=' :  cannot convert from 'const int' to 'temp mediump uint'
+ERROR: 0:63: 'float' : type requires declaration of default precision qualifier 
+ERROR: 9 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp mediump int)
+0:17          'count' (temp mediump int)
+0:17          Constant:
+0:17            1 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp mediump uint)
+0:19          'u' (temp mediump uint)
+0:19          add (temp mediump uint)
+0:19            direct index (temp mediump uint)
+0:19              't' (flat in mediump 2-component vector of uint)
+0:19              Constant:
+0:19                1 (const int)
+0:19            Constant:
+0:19              3 (const uint)
+0:27      Test condition and select (temp void)
+0:27        Condition
+0:27        Constant:
+0:27          true (const bool)
+0:27        true case
+0:28        multiply second child into first child (temp mediump int)
+0:28          'count' (temp mediump int)
+0:28          Constant:
+0:28            2 (const int)
+0:29      Test condition and select (temp void)
+0:29        Condition
+0:29        Constant:
+0:29          true (const bool)
+0:29        true case
+0:30        multiply second child into first child (temp mediump int)
+0:30          'count' (temp mediump int)
+0:30          Constant:
+0:30            3 (const int)
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Constant:
+0:31          false (const bool)
+0:31        true case
+0:32        multiply second child into first child (temp mediump int)
+0:32          'count' (temp mediump int)
+0:32          Constant:
+0:32            5 (const int)
+0:41      Test condition and select (temp void)
+0:41        Condition
+0:41        Constant:
+0:41          true (const bool)
+0:41        true case
+0:42        multiply second child into first child (temp mediump int)
+0:42          'count' (temp mediump int)
+0:42          Constant:
+0:42            7 (const int)
+0:43      Test condition and select (temp void)
+0:43        Condition
+0:43        Constant:
+0:43          true (const bool)
+0:43        true case
+0:44        multiply second child into first child (temp mediump int)
+0:44          'count' (temp mediump int)
+0:44          Constant:
+0:44            11 (const int)
+0:45      Test condition and select (temp void)
+0:45        Condition
+0:45        Constant:
+0:45          false (const bool)
+0:45        true case
+0:46        multiply second child into first child (temp mediump int)
+0:46          'count' (temp mediump int)
+0:46          Constant:
+0:46            13 (const int)
+0:49      Sequence
+0:49        move second child to first child (temp mediump int)
+0:49          'shiftedii' (temp mediump int)
+0:49          Constant:
+0:49            -1 (const int)
+0:50      Sequence
+0:50        move second child to first child (temp mediump uint)
+0:50          'shiftedui' (temp mediump uint)
+0:50          Constant:
+0:50            4194303 (const uint)
+0:52      Sequence
+0:52        move second child to first child (temp mediump int)
+0:52          'shiftediu' (temp mediump int)
+0:52          Constant:
+0:52            -1 (const int)
+0:53      Sequence
+0:53        move second child to first child (temp mediump uint)
+0:53          'shifteduu' (temp mediump uint)
+0:53          Constant:
+0:53            4194303 (const uint)
+0:55      Test condition and select (temp void)
+0:55        Condition
+0:55        Compare Equal (temp bool)
+0:55          'shiftedii' (temp mediump int)
+0:55          'shiftediu' (temp mediump int)
+0:55        true case
+0:56        move second child to first child (temp mediump 4-component vector of uint)
+0:56          'c' (out mediump 4-component vector of uint)
+0:56          texture (global mediump 4-component vector of uint)
+0:56            'usampler' (uniform lowp usampler2D)
+0:56            'tc' (smooth in highp 2-component vector of float)
+0:57      Test condition and select (temp void)
+0:57        Condition
+0:57        Compare Equal (temp bool)
+0:57          'shiftedui' (temp mediump uint)
+0:57          'shifteduu' (temp mediump uint)
+0:57        true case
+0:58        move second child to first child (temp mediump 4-component vector of uint)
+0:58          'c' (out mediump 4-component vector of uint)
+0:58          texture (global mediump 4-component vector of uint)
+0:58            'usampler' (uniform lowp usampler2D)
+0:58            add (temp highp 2-component vector of float)
+0:58              'tc' (smooth in highp 2-component vector of float)
+0:58              Constant:
+0:58                1.000000
+0:59      Test condition and select (temp void)
+0:59        Condition
+0:59        Compare Equal (temp bool)
+0:59          'shiftedii' (temp mediump int)
+0:59          Convert uint to int (temp int)
+0:59            'shiftedui' (temp mediump uint)
+0:59        true case
+0:60        move second child to first child (temp mediump 4-component vector of uint)
+0:60          'c' (out mediump 4-component vector of uint)
+0:60          texture (global mediump 4-component vector of uint)
+0:60            'usampler' (uniform lowp usampler2D)
+0:60            subtract (temp highp 2-component vector of float)
+0:60              'tc' (smooth in highp 2-component vector of float)
+0:60              Constant:
+0:60                2.000000
+0:60                2.000000
+0:62      Test condition and select (temp void)
+0:62        Condition
+0:62        Compare Greater Than (temp bool)
+0:62          direct index (temp mediump uint)
+0:62            't' (flat in mediump 2-component vector of uint)
+0:62            Constant:
+0:62              0 (const int)
+0:62          Constant:
+0:62            4 (const uint)
+0:62        true case
+0:63        Sequence
+0:63          Sequence
+0:63            move second child to first child (temp mediump float)
+0:63              'af' (temp mediump float)
+0:63              Convert uint to float (temp mediump float)
+0:63                'u' (temp mediump uint)
+0:64          Sequence
+0:64            move second child to first child (temp bool)
+0:64              'ab' (temp bool)
+0:64              Convert uint to bool (temp bool)
+0:64                'u' (temp mediump uint)
+0:65          Sequence
+0:65            move second child to first child (temp mediump int)
+0:65              'ai' (temp mediump int)
+0:65              Convert uint to int (temp mediump int)
+0:65                'u' (temp mediump uint)
+0:67          add second child into first child (temp mediump 4-component vector of uint)
+0:67            'c' (out mediump 4-component vector of uint)
+0:67            Construct uvec4 (temp mediump 4-component vector of uint)
+0:67              Convert float to uint (temp mediump uint)
+0:67                'af' (temp mediump float)
+0:67              Convert bool to uint (temp mediump uint)
+0:67                'ab' (temp bool)
+0:67              Convert int to uint (temp mediump uint)
+0:67                'ai' (temp mediump int)
+0:67              Convert int to uint (temp mediump uint)
+0:67                'count' (temp mediump int)
+0:75      Test condition and select (temp void)
+0:75        Condition
+0:75        Constant:
+0:75          true (const bool)
+0:75        true case
+0:76        multiply second child into first child (temp mediump int)
+0:76          'count' (temp mediump int)
+0:76          Constant:
+0:76            17 (const int)
+0:78      Test condition and select (temp void)
+0:78        Condition
+0:78        Constant:
+0:78          false (const bool)
+0:78        true case
+0:79        multiply second child into first child (temp mediump int)
+0:79          'count' (temp mediump int)
+0:79          Constant:
+0:79            19 (const int)
+0:81      Test condition and select (temp void)
+0:81        Condition
+0:81        Constant:
+0:81          true (const bool)
+0:81        true case
+0:82        multiply second child into first child (temp mediump int)
+0:82          'count' (temp mediump int)
+0:82          Constant:
+0:82            23 (const int)
+0:84      Test condition and select (temp void)
+0:84        Condition
+0:84        Constant:
+0:84          true (const bool)
+0:84        true case
+0:85        multiply second child into first child (temp mediump int)
+0:85          'count' (temp mediump int)
+0:85          Constant:
+0:85            27 (const int)
+0:87      Sequence
+0:87        move second child to first child (temp mediump uint)
+0:87          'mask1' (temp mediump uint)
+0:87          Constant:
+0:87            161 (const uint)
+0:88      Sequence
+0:88        move second child to first child (temp mediump uint)
+0:88          'mask2' (temp mediump uint)
+0:88          Constant:
+0:88            2576 (const uint)
+0:89      Sequence
+0:89        move second child to first child (temp mediump uint)
+0:89          'mask3' (temp mediump uint)
+0:89          left-shift (temp mediump uint)
+0:89            'mask1' (temp mediump uint)
+0:89            Constant:
+0:89              4 (const int)
+0:90      Sequence
+0:90        move second child to first child (temp mediump uint)
+0:90          'mask4' (temp mediump uint)
+0:90          Constant:
+0:90            2737 (const uint)
+0:92      Test condition and select (temp void)
+0:92        Condition
+0:92        Compare Equal (temp bool)
+0:92          'mask3' (temp mediump uint)
+0:92          'mask2' (temp mediump uint)
+0:92        true case
+0:93        multiply second child into first child (temp mediump int)
+0:93          'count' (temp mediump int)
+0:93          Constant:
+0:93            100 (const int)
+0:95      Test condition and select (temp void)
+0:95        Condition
+0:95        Compare Not Equal (temp bool)
+0:95          bitwise and (temp mediump uint)
+0:95            'mask3' (temp mediump uint)
+0:95            'mask1' (temp mediump uint)
+0:95          Constant:
+0:95            0 (const uint)
+0:95        true case
+0:96        multiply second child into first child (temp mediump int)
+0:96          'count' (temp mediump int)
+0:96          Constant:
+0:96            101 (const int)
+0:98      Test condition and select (temp void)
+0:98        Condition
+0:98        Compare Equal (temp bool)
+0:98          inclusive-or (temp mediump uint)
+0:98            'mask1' (temp mediump uint)
+0:98            'mask3' (temp mediump uint)
+0:98          'mask4' (temp mediump uint)
+0:98        true case
+0:99        multiply second child into first child (temp mediump int)
+0:99          'count' (temp mediump int)
+0:99          Constant:
+0:99            102 (const int)
+0:101      Test condition and select (temp void)
+0:101        Condition
+0:101        Compare Equal (temp bool)
+0:101          exclusive-or (temp mediump uint)
+0:101            'mask1' (temp mediump uint)
+0:101            'mask4' (temp mediump uint)
+0:101          Constant:
+0:101            2576 (const uint)
+0:101        true case
+0:102        multiply second child into first child (temp mediump int)
+0:102          'count' (temp mediump int)
+0:102          Constant:
+0:102            103 (const int)
+0:104      add second child into first child (temp mediump 4-component vector of uint)
+0:104        'c' (out mediump 4-component vector of uint)
+0:104        Construct uvec4 (temp mediump 4-component vector of uint)
+0:104          Convert int to uint (temp mediump uint)
+0:104            'count' (temp mediump int)
+0:?   Linker Objects
+0:?     'badu' (smooth in mediump 2-component vector of uint)
+0:?     't' (flat in mediump 2-component vector of uint)
+0:?     'f' (smooth in highp float)
+0:?     'tc' (smooth in highp 2-component vector of float)
+0:?     'bad' (smooth in bool)
+0:?     'v' (uniform mediump 4-component vector of uint)
+0:?     'i' (uniform mediump int)
+0:?     'b' (uniform bool)
+0:?     'c' (out mediump 4-component vector of uint)
+0:?     'usampler' (uniform lowp usampler2D)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( (global void)
+0:15    Function Parameters: 
+0:17    Sequence
+0:17      Sequence
+0:17        move second child to first child (temp mediump int)
+0:17          'count' (temp mediump int)
+0:17          Constant:
+0:17            1 (const int)
+0:19      Sequence
+0:19        move second child to first child (temp mediump uint)
+0:19          'u' (temp mediump uint)
+0:19          add (temp mediump uint)
+0:19            direct index (temp mediump uint)
+0:19              't' (flat in mediump 2-component vector of uint)
+0:19              Constant:
+0:19                1 (const int)
+0:19            Constant:
+0:19              3 (const uint)
+0:27      Test condition and select (temp void)
+0:27        Condition
+0:27        Constant:
+0:27          true (const bool)
+0:27        true case
+0:28        multiply second child into first child (temp mediump int)
+0:28          'count' (temp mediump int)
+0:28          Constant:
+0:28            2 (const int)
+0:29      Test condition and select (temp void)
+0:29        Condition
+0:29        Constant:
+0:29          true (const bool)
+0:29        true case
+0:30        multiply second child into first child (temp mediump int)
+0:30          'count' (temp mediump int)
+0:30          Constant:
+0:30            3 (const int)
+0:31      Test condition and select (temp void)
+0:31        Condition
+0:31        Constant:
+0:31          false (const bool)
+0:31        true case
+0:32        multiply second child into first child (temp mediump int)
+0:32          'count' (temp mediump int)
+0:32          Constant:
+0:32            5 (const int)
+0:41      Test condition and select (temp void)
+0:41        Condition
+0:41        Constant:
+0:41          true (const bool)
+0:41        true case
+0:42        multiply second child into first child (temp mediump int)
+0:42          'count' (temp mediump int)
+0:42          Constant:
+0:42            7 (const int)
+0:43      Test condition and select (temp void)
+0:43        Condition
+0:43        Constant:
+0:43          true (const bool)
+0:43        true case
+0:44        multiply second child into first child (temp mediump int)
+0:44          'count' (temp mediump int)
+0:44          Constant:
+0:44            11 (const int)
+0:45      Test condition and select (temp void)
+0:45        Condition
+0:45        Constant:
+0:45          false (const bool)
+0:45        true case
+0:46        multiply second child into first child (temp mediump int)
+0:46          'count' (temp mediump int)
+0:46          Constant:
+0:46            13 (const int)
+0:49      Sequence
+0:49        move second child to first child (temp mediump int)
+0:49          'shiftedii' (temp mediump int)
+0:49          Constant:
+0:49            -1 (const int)
+0:50      Sequence
+0:50        move second child to first child (temp mediump uint)
+0:50          'shiftedui' (temp mediump uint)
+0:50          Constant:
+0:50            4194303 (const uint)
+0:52      Sequence
+0:52        move second child to first child (temp mediump int)
+0:52          'shiftediu' (temp mediump int)
+0:52          Constant:
+0:52            -1 (const int)
+0:53      Sequence
+0:53        move second child to first child (temp mediump uint)
+0:53          'shifteduu' (temp mediump uint)
+0:53          Constant:
+0:53            4194303 (const uint)
+0:55      Test condition and select (temp void)
+0:55        Condition
+0:55        Compare Equal (temp bool)
+0:55          'shiftedii' (temp mediump int)
+0:55          'shiftediu' (temp mediump int)
+0:55        true case
+0:56        move second child to first child (temp mediump 4-component vector of uint)
+0:56          'c' (out mediump 4-component vector of uint)
+0:56          texture (global mediump 4-component vector of uint)
+0:56            'usampler' (uniform lowp usampler2D)
+0:56            'tc' (smooth in highp 2-component vector of float)
+0:57      Test condition and select (temp void)
+0:57        Condition
+0:57        Compare Equal (temp bool)
+0:57          'shiftedui' (temp mediump uint)
+0:57          'shifteduu' (temp mediump uint)
+0:57        true case
+0:58        move second child to first child (temp mediump 4-component vector of uint)
+0:58          'c' (out mediump 4-component vector of uint)
+0:58          texture (global mediump 4-component vector of uint)
+0:58            'usampler' (uniform lowp usampler2D)
+0:58            add (temp highp 2-component vector of float)
+0:58              'tc' (smooth in highp 2-component vector of float)
+0:58              Constant:
+0:58                1.000000
+0:59      Test condition and select (temp void)
+0:59        Condition
+0:59        Compare Equal (temp bool)
+0:59          'shiftedii' (temp mediump int)
+0:59          Convert uint to int (temp int)
+0:59            'shiftedui' (temp mediump uint)
+0:59        true case
+0:60        move second child to first child (temp mediump 4-component vector of uint)
+0:60          'c' (out mediump 4-component vector of uint)
+0:60          texture (global mediump 4-component vector of uint)
+0:60            'usampler' (uniform lowp usampler2D)
+0:60            subtract (temp highp 2-component vector of float)
+0:60              'tc' (smooth in highp 2-component vector of float)
+0:60              Constant:
+0:60                2.000000
+0:60                2.000000
+0:62      Test condition and select (temp void)
+0:62        Condition
+0:62        Compare Greater Than (temp bool)
+0:62          direct index (temp mediump uint)
+0:62            't' (flat in mediump 2-component vector of uint)
+0:62            Constant:
+0:62              0 (const int)
+0:62          Constant:
+0:62            4 (const uint)
+0:62        true case
+0:63        Sequence
+0:63          Sequence
+0:63            move second child to first child (temp mediump float)
+0:63              'af' (temp mediump float)
+0:63              Convert uint to float (temp mediump float)
+0:63                'u' (temp mediump uint)
+0:64          Sequence
+0:64            move second child to first child (temp bool)
+0:64              'ab' (temp bool)
+0:64              Convert uint to bool (temp bool)
+0:64                'u' (temp mediump uint)
+0:65          Sequence
+0:65            move second child to first child (temp mediump int)
+0:65              'ai' (temp mediump int)
+0:65              Convert uint to int (temp mediump int)
+0:65                'u' (temp mediump uint)
+0:67          add second child into first child (temp mediump 4-component vector of uint)
+0:67            'c' (out mediump 4-component vector of uint)
+0:67            Construct uvec4 (temp mediump 4-component vector of uint)
+0:67              Convert float to uint (temp mediump uint)
+0:67                'af' (temp mediump float)
+0:67              Convert bool to uint (temp mediump uint)
+0:67                'ab' (temp bool)
+0:67              Convert int to uint (temp mediump uint)
+0:67                'ai' (temp mediump int)
+0:67              Convert int to uint (temp mediump uint)
+0:67                'count' (temp mediump int)
+0:75      Test condition and select (temp void)
+0:75        Condition
+0:75        Constant:
+0:75          true (const bool)
+0:75        true case
+0:76        multiply second child into first child (temp mediump int)
+0:76          'count' (temp mediump int)
+0:76          Constant:
+0:76            17 (const int)
+0:78      Test condition and select (temp void)
+0:78        Condition
+0:78        Constant:
+0:78          false (const bool)
+0:78        true case
+0:79        multiply second child into first child (temp mediump int)
+0:79          'count' (temp mediump int)
+0:79          Constant:
+0:79            19 (const int)
+0:81      Test condition and select (temp void)
+0:81        Condition
+0:81        Constant:
+0:81          true (const bool)
+0:81        true case
+0:82        multiply second child into first child (temp mediump int)
+0:82          'count' (temp mediump int)
+0:82          Constant:
+0:82            23 (const int)
+0:84      Test condition and select (temp void)
+0:84        Condition
+0:84        Constant:
+0:84          true (const bool)
+0:84        true case
+0:85        multiply second child into first child (temp mediump int)
+0:85          'count' (temp mediump int)
+0:85          Constant:
+0:85            27 (const int)
+0:87      Sequence
+0:87        move second child to first child (temp mediump uint)
+0:87          'mask1' (temp mediump uint)
+0:87          Constant:
+0:87            161 (const uint)
+0:88      Sequence
+0:88        move second child to first child (temp mediump uint)
+0:88          'mask2' (temp mediump uint)
+0:88          Constant:
+0:88            2576 (const uint)
+0:89      Sequence
+0:89        move second child to first child (temp mediump uint)
+0:89          'mask3' (temp mediump uint)
+0:89          left-shift (temp mediump uint)
+0:89            'mask1' (temp mediump uint)
+0:89            Constant:
+0:89              4 (const int)
+0:90      Sequence
+0:90        move second child to first child (temp mediump uint)
+0:90          'mask4' (temp mediump uint)
+0:90          Constant:
+0:90            2737 (const uint)
+0:92      Test condition and select (temp void)
+0:92        Condition
+0:92        Compare Equal (temp bool)
+0:92          'mask3' (temp mediump uint)
+0:92          'mask2' (temp mediump uint)
+0:92        true case
+0:93        multiply second child into first child (temp mediump int)
+0:93          'count' (temp mediump int)
+0:93          Constant:
+0:93            100 (const int)
+0:95      Test condition and select (temp void)
+0:95        Condition
+0:95        Compare Not Equal (temp bool)
+0:95          bitwise and (temp mediump uint)
+0:95            'mask3' (temp mediump uint)
+0:95            'mask1' (temp mediump uint)
+0:95          Constant:
+0:95            0 (const uint)
+0:95        true case
+0:96        multiply second child into first child (temp mediump int)
+0:96          'count' (temp mediump int)
+0:96          Constant:
+0:96            101 (const int)
+0:98      Test condition and select (temp void)
+0:98        Condition
+0:98        Compare Equal (temp bool)
+0:98          inclusive-or (temp mediump uint)
+0:98            'mask1' (temp mediump uint)
+0:98            'mask3' (temp mediump uint)
+0:98          'mask4' (temp mediump uint)
+0:98        true case
+0:99        multiply second child into first child (temp mediump int)
+0:99          'count' (temp mediump int)
+0:99          Constant:
+0:99            102 (const int)
+0:101      Test condition and select (temp void)
+0:101        Condition
+0:101        Compare Equal (temp bool)
+0:101          exclusive-or (temp mediump uint)
+0:101            'mask1' (temp mediump uint)
+0:101            'mask4' (temp mediump uint)
+0:101          Constant:
+0:101            2576 (const uint)
+0:101        true case
+0:102        multiply second child into first child (temp mediump int)
+0:102          'count' (temp mediump int)
+0:102          Constant:
+0:102            103 (const int)
+0:104      add second child into first child (temp mediump 4-component vector of uint)
+0:104        'c' (out mediump 4-component vector of uint)
+0:104        Construct uvec4 (temp mediump 4-component vector of uint)
+0:104          Convert int to uint (temp mediump uint)
+0:104            'count' (temp mediump int)
+0:?   Linker Objects
+0:?     'badu' (smooth in mediump 2-component vector of uint)
+0:?     't' (flat in mediump 2-component vector of uint)
+0:?     'f' (smooth in highp float)
+0:?     'tc' (smooth in highp 2-component vector of float)
+0:?     'bad' (smooth in bool)
+0:?     'v' (uniform mediump 4-component vector of uint)
+0:?     'i' (uniform mediump int)
+0:?     'b' (uniform bool)
+0:?     'c' (out mediump 4-component vector of uint)
+0:?     'usampler' (uniform lowp usampler2D)
+
diff --git a/Test/baseResults/uniformArray.frag.out b/Test/baseResults/uniformArray.frag.out
index f2f0901..4e8ace8 100644
--- a/Test/baseResults/uniformArray.frag.out
+++ b/Test/baseResults/uniformArray.frag.out
@@ -1,97 +1,97 @@
-uniformArray.frag

-Shader version: 130

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Sequence

-0:9        move second child to first child (temp 4-component vector of float)

-0:9          'texColor' (temp 4-component vector of float)

-0:9          add (temp 4-component vector of float)

-0:9            direct index (temp 4-component vector of float)

-0:9              'color' (uniform 6-element array of 4-component vector of float)

-0:9              Constant:

-0:9                1 (const int)

-0:9            direct index (temp 4-component vector of float)

-0:9              'color' (uniform 6-element array of 4-component vector of float)

-0:9              Constant:

-0:9                1 (const int)

-0:11      add second child into first child (temp 3-component vector of float)

-0:11        vector swizzle (temp 3-component vector of float)

-0:11          'texColor' (temp 4-component vector of float)

-0:11          Sequence

-0:11            Constant:

-0:11              0 (const int)

-0:11            Constant:

-0:11              1 (const int)

-0:11            Constant:

-0:11              2 (const int)

-0:11        'inColor' (uniform 3-component vector of float)

-0:13      add second child into first child (temp float)

-0:13        direct index (temp float)

-0:13          'texColor' (temp 4-component vector of float)

-0:13          Constant:

-0:13            3 (const int)

-0:13        direct index (temp float)

-0:13          'alpha' (uniform 16-element array of float)

-0:13          Constant:

-0:13            12 (const int)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:15        'texColor' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'inColor' (uniform 3-component vector of float)

-0:?     'color' (uniform 6-element array of 4-component vector of float)

-0:?     'alpha' (uniform 16-element array of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Sequence

-0:9        move second child to first child (temp 4-component vector of float)

-0:9          'texColor' (temp 4-component vector of float)

-0:9          add (temp 4-component vector of float)

-0:9            direct index (temp 4-component vector of float)

-0:9              'color' (uniform 6-element array of 4-component vector of float)

-0:9              Constant:

-0:9                1 (const int)

-0:9            direct index (temp 4-component vector of float)

-0:9              'color' (uniform 6-element array of 4-component vector of float)

-0:9              Constant:

-0:9                1 (const int)

-0:11      add second child into first child (temp 3-component vector of float)

-0:11        vector swizzle (temp 3-component vector of float)

-0:11          'texColor' (temp 4-component vector of float)

-0:11          Sequence

-0:11            Constant:

-0:11              0 (const int)

-0:11            Constant:

-0:11              1 (const int)

-0:11            Constant:

-0:11              2 (const int)

-0:11        'inColor' (uniform 3-component vector of float)

-0:13      add second child into first child (temp float)

-0:13        direct index (temp float)

-0:13          'texColor' (temp 4-component vector of float)

-0:13          Constant:

-0:13            3 (const int)

-0:13        direct index (temp float)

-0:13          'alpha' (uniform 16-element array of float)

-0:13          Constant:

-0:13            12 (const int)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:15        'texColor' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'inColor' (uniform 3-component vector of float)

-0:?     'color' (uniform 6-element array of 4-component vector of float)

-0:?     'alpha' (uniform 16-element array of float)

-

+uniformArray.frag
+Shader version: 130
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'texColor' (temp 4-component vector of float)
+0:9          add (temp 4-component vector of float)
+0:9            direct index (temp 4-component vector of float)
+0:9              'color' (uniform 6-element array of 4-component vector of float)
+0:9              Constant:
+0:9                1 (const int)
+0:9            direct index (temp 4-component vector of float)
+0:9              'color' (uniform 6-element array of 4-component vector of float)
+0:9              Constant:
+0:9                1 (const int)
+0:11      add second child into first child (temp 3-component vector of float)
+0:11        vector swizzle (temp 3-component vector of float)
+0:11          'texColor' (temp 4-component vector of float)
+0:11          Sequence
+0:11            Constant:
+0:11              0 (const int)
+0:11            Constant:
+0:11              1 (const int)
+0:11            Constant:
+0:11              2 (const int)
+0:11        'inColor' (uniform 3-component vector of float)
+0:13      add second child into first child (temp float)
+0:13        direct index (temp float)
+0:13          'texColor' (temp 4-component vector of float)
+0:13          Constant:
+0:13            3 (const int)
+0:13        direct index (temp float)
+0:13          'alpha' (uniform 16-element array of float)
+0:13          Constant:
+0:13            12 (const int)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15        'texColor' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'inColor' (uniform 3-component vector of float)
+0:?     'color' (uniform 6-element array of 4-component vector of float)
+0:?     'alpha' (uniform 16-element array of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'texColor' (temp 4-component vector of float)
+0:9          add (temp 4-component vector of float)
+0:9            direct index (temp 4-component vector of float)
+0:9              'color' (uniform 6-element array of 4-component vector of float)
+0:9              Constant:
+0:9                1 (const int)
+0:9            direct index (temp 4-component vector of float)
+0:9              'color' (uniform 6-element array of 4-component vector of float)
+0:9              Constant:
+0:9                1 (const int)
+0:11      add second child into first child (temp 3-component vector of float)
+0:11        vector swizzle (temp 3-component vector of float)
+0:11          'texColor' (temp 4-component vector of float)
+0:11          Sequence
+0:11            Constant:
+0:11              0 (const int)
+0:11            Constant:
+0:11              1 (const int)
+0:11            Constant:
+0:11              2 (const int)
+0:11        'inColor' (uniform 3-component vector of float)
+0:13      add second child into first child (temp float)
+0:13        direct index (temp float)
+0:13          'texColor' (temp 4-component vector of float)
+0:13          Constant:
+0:13            3 (const int)
+0:13        direct index (temp float)
+0:13          'alpha' (uniform 16-element array of float)
+0:13          Constant:
+0:13            12 (const int)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15        'texColor' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'inColor' (uniform 3-component vector of float)
+0:?     'color' (uniform 6-element array of 4-component vector of float)
+0:?     'alpha' (uniform 16-element array of float)
+
diff --git a/Test/baseResults/variableArrayIndex.frag.out b/Test/baseResults/variableArrayIndex.frag.out
index 2624985..2a63d11 100644
--- a/Test/baseResults/variableArrayIndex.frag.out
+++ b/Test/baseResults/variableArrayIndex.frag.out
@@ -1,225 +1,225 @@
-variableArrayIndex.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:29  Function Definition: main( (global void)

-0:29    Function Parameters: 

-0:?     Sequence

-0:32      Sequence

-0:32        move second child to first child (temp int)

-0:32          'iLocal' (temp int)

-0:32          'Count' (uniform int)

-0:34      Test condition and select (temp void)

-0:34        Condition

-0:34        Compare Greater Than (temp bool)

-0:34          i: direct index for structure (global int)

-0:34            direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34              s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34                'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34                Constant:

-0:34                  0 (const int)

-0:34              Constant:

-0:34                1 (const int)

-0:34            Constant:

-0:34              0 (const int)

-0:34          Constant:

-0:34            0 (const int)

-0:34        true case

-0:35        move second child to first child (temp float)

-0:35          'scale' (temp float)

-0:35          f: direct index for structure (global float)

-0:35            s1_1: direct index for structure (global structure{global int i, global float f})

-0:35              indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                add (temp int)

-0:35                  add (temp int)

-0:35                    i: direct index for structure (global int)

-0:35                      indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                        s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                          'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                          Constant:

-0:35                            0 (const int)

-0:35                        i: direct index for structure (global int)

-0:35                          'foo' (uniform structure{global int i, global float f})

-0:35                          Constant:

-0:35                            0 (const int)

-0:35                      Constant:

-0:35                        0 (const int)

-0:35                    Constant:

-0:35                      2 (const int)

-0:35                  Pre-Increment (temp int)

-0:35                    'iLocal' (temp int)

-0:35              Constant:

-0:35                2 (const int)

-0:35            Constant:

-0:35              1 (const int)

-0:34        false case

-0:37        move second child to first child (temp float)

-0:37          'scale' (temp float)

-0:37          f: direct index for structure (global float)

-0:37            s1_1: direct index for structure (global structure{global int i, global float f})

-0:37              direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:37                s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:37                  'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:37                  Constant:

-0:37                    0 (const int)

-0:37                Constant:

-0:37                  0 (const int)

-0:37              Constant:

-0:37                2 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:43      move second child to first child (temp 4-component vector of float)

-0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:43        vector-scale (temp 4-component vector of float)

-0:43          'scale' (temp float)

-0:43          texture (global 4-component vector of float)

-0:43            'sampler' (uniform sampler2D)

-0:43            'coord' (smooth in 2-component vector of float)

-0:45      Sequence

-0:45        move second child to first child (temp 3-element array of 2-component vector of float)

-0:45          'constructed' (temp 3-element array of 2-component vector of float)

-0:45          Construct vec2 (temp 3-element array of 2-component vector of float)

-0:45            'coord' (smooth in 2-component vector of float)

-0:45            Construct vec2 (temp 2-component vector of float)

-0:45              'scale' (temp float)

-0:45            Constant:

-0:45              1.000000

-0:45              2.000000

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:46        Construct vec4 (temp 4-component vector of float)

-0:46          indirect index (temp 2-component vector of float)

-0:46            'constructed' (temp 3-element array of 2-component vector of float)

-0:46            i: direct index for structure (global int)

-0:46              'foo' (uniform structure{global int i, global float f})

-0:46              Constant:

-0:46                0 (const int)

-0:46          indirect index (temp 2-component vector of float)

-0:46            'constructed' (temp 3-element array of 2-component vector of float)

-0:46            i: direct index for structure (global int)

-0:46              'foo' (uniform structure{global int i, global float f})

-0:46              Constant:

-0:46                0 (const int)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo' (uniform structure{global int i, global float f})

-0:?     'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'Count' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:29  Function Definition: main( (global void)

-0:29    Function Parameters: 

-0:?     Sequence

-0:32      Sequence

-0:32        move second child to first child (temp int)

-0:32          'iLocal' (temp int)

-0:32          'Count' (uniform int)

-0:34      Test condition and select (temp void)

-0:34        Condition

-0:34        Compare Greater Than (temp bool)

-0:34          i: direct index for structure (global int)

-0:34            direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34              s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34                'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:34                Constant:

-0:34                  0 (const int)

-0:34              Constant:

-0:34                1 (const int)

-0:34            Constant:

-0:34              0 (const int)

-0:34          Constant:

-0:34            0 (const int)

-0:34        true case

-0:35        move second child to first child (temp float)

-0:35          'scale' (temp float)

-0:35          f: direct index for structure (global float)

-0:35            s1_1: direct index for structure (global structure{global int i, global float f})

-0:35              indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                add (temp int)

-0:35                  add (temp int)

-0:35                    i: direct index for structure (global int)

-0:35                      indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                        s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                          'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:35                          Constant:

-0:35                            0 (const int)

-0:35                        i: direct index for structure (global int)

-0:35                          'foo' (uniform structure{global int i, global float f})

-0:35                          Constant:

-0:35                            0 (const int)

-0:35                      Constant:

-0:35                        0 (const int)

-0:35                    Constant:

-0:35                      2 (const int)

-0:35                  Pre-Increment (temp int)

-0:35                    'iLocal' (temp int)

-0:35              Constant:

-0:35                2 (const int)

-0:35            Constant:

-0:35              1 (const int)

-0:34        false case

-0:37        move second child to first child (temp float)

-0:37          'scale' (temp float)

-0:37          f: direct index for structure (global float)

-0:37            s1_1: direct index for structure (global structure{global int i, global float f})

-0:37              direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:37                s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:37                  'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:37                  Constant:

-0:37                    0 (const int)

-0:37                Constant:

-0:37                  0 (const int)

-0:37              Constant:

-0:37                2 (const int)

-0:37            Constant:

-0:37              1 (const int)

-0:43      move second child to first child (temp 4-component vector of float)

-0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:43        vector-scale (temp 4-component vector of float)

-0:43          'scale' (temp float)

-0:43          texture (global 4-component vector of float)

-0:43            'sampler' (uniform sampler2D)

-0:43            'coord' (smooth in 2-component vector of float)

-0:45      Sequence

-0:45        move second child to first child (temp 3-element array of 2-component vector of float)

-0:45          'constructed' (temp 3-element array of 2-component vector of float)

-0:45          Construct vec2 (temp 3-element array of 2-component vector of float)

-0:45            'coord' (smooth in 2-component vector of float)

-0:45            Construct vec2 (temp 2-component vector of float)

-0:45              'scale' (temp float)

-0:45            Constant:

-0:45              1.000000

-0:45              2.000000

-0:46      add second child into first child (temp 4-component vector of float)

-0:46        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:46        Construct vec4 (temp 4-component vector of float)

-0:46          indirect index (temp 2-component vector of float)

-0:46            'constructed' (temp 3-element array of 2-component vector of float)

-0:46            i: direct index for structure (global int)

-0:46              'foo' (uniform structure{global int i, global float f})

-0:46              Constant:

-0:46                0 (const int)

-0:46          indirect index (temp 2-component vector of float)

-0:46            'constructed' (temp 3-element array of 2-component vector of float)

-0:46            i: direct index for structure (global int)

-0:46              'foo' (uniform structure{global int i, global float f})

-0:46              Constant:

-0:46                0 (const int)

-0:?   Linker Objects

-0:?     'sampler' (uniform sampler2D)

-0:?     'coord' (smooth in 2-component vector of float)

-0:?     'foo' (uniform structure{global int i, global float f})

-0:?     'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})

-0:?     'Count' (uniform int)

-

+variableArrayIndex.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:29  Function Definition: main( (global void)
+0:29    Function Parameters: 
+0:?     Sequence
+0:32      Sequence
+0:32        move second child to first child (temp int)
+0:32          'iLocal' (temp int)
+0:32          'Count' (uniform int)
+0:34      Test condition and select (temp void)
+0:34        Condition
+0:34        Compare Greater Than (temp bool)
+0:34          i: direct index for structure (global int)
+0:34            direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34              s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34                'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34                Constant:
+0:34                  0 (const int)
+0:34              Constant:
+0:34                1 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        true case
+0:35        move second child to first child (temp float)
+0:35          'scale' (temp float)
+0:35          f: direct index for structure (global float)
+0:35            s1_1: direct index for structure (global structure{global int i, global float f})
+0:35              indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                add (temp int)
+0:35                  add (temp int)
+0:35                    i: direct index for structure (global int)
+0:35                      indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                        s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                          'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                          Constant:
+0:35                            0 (const int)
+0:35                        i: direct index for structure (global int)
+0:35                          'foo' (uniform structure{global int i, global float f})
+0:35                          Constant:
+0:35                            0 (const int)
+0:35                      Constant:
+0:35                        0 (const int)
+0:35                    Constant:
+0:35                      2 (const int)
+0:35                  Pre-Increment (temp int)
+0:35                    'iLocal' (temp int)
+0:35              Constant:
+0:35                2 (const int)
+0:35            Constant:
+0:35              1 (const int)
+0:34        false case
+0:37        move second child to first child (temp float)
+0:37          'scale' (temp float)
+0:37          f: direct index for structure (global float)
+0:37            s1_1: direct index for structure (global structure{global int i, global float f})
+0:37              direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37                s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37                  'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37                  Constant:
+0:37                    0 (const int)
+0:37                Constant:
+0:37                  0 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:43      move second child to first child (temp 4-component vector of float)
+0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43        vector-scale (temp 4-component vector of float)
+0:43          'scale' (temp float)
+0:43          texture (global 4-component vector of float)
+0:43            'sampler' (uniform sampler2D)
+0:43            'coord' (smooth in 2-component vector of float)
+0:45      Sequence
+0:45        move second child to first child (temp 3-element array of 2-component vector of float)
+0:45          'constructed' (temp 3-element array of 2-component vector of float)
+0:45          Construct vec2 (temp 3-element array of 2-component vector of float)
+0:45            'coord' (smooth in 2-component vector of float)
+0:45            Construct vec2 (temp 2-component vector of float)
+0:45              'scale' (temp float)
+0:45            Constant:
+0:45              1.000000
+0:45              2.000000
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:46        Construct vec4 (temp 4-component vector of float)
+0:46          indirect index (temp 2-component vector of float)
+0:46            'constructed' (temp 3-element array of 2-component vector of float)
+0:46            i: direct index for structure (global int)
+0:46              'foo' (uniform structure{global int i, global float f})
+0:46              Constant:
+0:46                0 (const int)
+0:46          indirect index (temp 2-component vector of float)
+0:46            'constructed' (temp 3-element array of 2-component vector of float)
+0:46            i: direct index for structure (global int)
+0:46              'foo' (uniform structure{global int i, global float f})
+0:46              Constant:
+0:46                0 (const int)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo' (uniform structure{global int i, global float f})
+0:?     'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'Count' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:29  Function Definition: main( (global void)
+0:29    Function Parameters: 
+0:?     Sequence
+0:32      Sequence
+0:32        move second child to first child (temp int)
+0:32          'iLocal' (temp int)
+0:32          'Count' (uniform int)
+0:34      Test condition and select (temp void)
+0:34        Condition
+0:34        Compare Greater Than (temp bool)
+0:34          i: direct index for structure (global int)
+0:34            direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34              s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34                'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:34                Constant:
+0:34                  0 (const int)
+0:34              Constant:
+0:34                1 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        true case
+0:35        move second child to first child (temp float)
+0:35          'scale' (temp float)
+0:35          f: direct index for structure (global float)
+0:35            s1_1: direct index for structure (global structure{global int i, global float f})
+0:35              indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                add (temp int)
+0:35                  add (temp int)
+0:35                    i: direct index for structure (global int)
+0:35                      indirect index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                        s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                          'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:35                          Constant:
+0:35                            0 (const int)
+0:35                        i: direct index for structure (global int)
+0:35                          'foo' (uniform structure{global int i, global float f})
+0:35                          Constant:
+0:35                            0 (const int)
+0:35                      Constant:
+0:35                        0 (const int)
+0:35                    Constant:
+0:35                      2 (const int)
+0:35                  Pre-Increment (temp int)
+0:35                    'iLocal' (temp int)
+0:35              Constant:
+0:35                2 (const int)
+0:35            Constant:
+0:35              1 (const int)
+0:34        false case
+0:37        move second child to first child (temp float)
+0:37          'scale' (temp float)
+0:37          f: direct index for structure (global float)
+0:37            s1_1: direct index for structure (global structure{global int i, global float f})
+0:37              direct index (temp structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37                s2_1: direct index for structure (global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37                  'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:37                  Constant:
+0:37                    0 (const int)
+0:37                Constant:
+0:37                  0 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:43      move second child to first child (temp 4-component vector of float)
+0:43        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:43        vector-scale (temp 4-component vector of float)
+0:43          'scale' (temp float)
+0:43          texture (global 4-component vector of float)
+0:43            'sampler' (uniform sampler2D)
+0:43            'coord' (smooth in 2-component vector of float)
+0:45      Sequence
+0:45        move second child to first child (temp 3-element array of 2-component vector of float)
+0:45          'constructed' (temp 3-element array of 2-component vector of float)
+0:45          Construct vec2 (temp 3-element array of 2-component vector of float)
+0:45            'coord' (smooth in 2-component vector of float)
+0:45            Construct vec2 (temp 2-component vector of float)
+0:45              'scale' (temp float)
+0:45            Constant:
+0:45              1.000000
+0:45              2.000000
+0:46      add second child into first child (temp 4-component vector of float)
+0:46        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:46        Construct vec4 (temp 4-component vector of float)
+0:46          indirect index (temp 2-component vector of float)
+0:46            'constructed' (temp 3-element array of 2-component vector of float)
+0:46            i: direct index for structure (global int)
+0:46              'foo' (uniform structure{global int i, global float f})
+0:46              Constant:
+0:46                0 (const int)
+0:46          indirect index (temp 2-component vector of float)
+0:46            'constructed' (temp 3-element array of 2-component vector of float)
+0:46            i: direct index for structure (global int)
+0:46              'foo' (uniform structure{global int i, global float f})
+0:46              Constant:
+0:46                0 (const int)
+0:?   Linker Objects
+0:?     'sampler' (uniform sampler2D)
+0:?     'coord' (smooth in 2-component vector of float)
+0:?     'foo' (uniform structure{global int i, global float f})
+0:?     'foo2' (uniform 5-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'foo3' (uniform structure{global 3-element array of structure{global int i, global float f, global structure{global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{global int i, global float f} s1_1})
+0:?     'Count' (uniform int)
+
diff --git a/Test/baseResults/varyingArray.frag.out b/Test/baseResults/varyingArray.frag.out
index 70ac8ea..c6cf6ba 100644
--- a/Test/baseResults/varyingArray.frag.out
+++ b/Test/baseResults/varyingArray.frag.out
@@ -1,120 +1,120 @@
-varyingArray.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-WARNING: 0:8: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'texColor' (temp 4-component vector of float)

-0:12          texture (global 4-component vector of float)

-0:12            'texSampler2D' (uniform sampler2D)

-0:12            Construct vec2 (temp 2-component vector of float)

-0:12              add (temp 4-component vector of float)

-0:12                direct index (smooth temp 4-component vector of float TexCoord)

-0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:12                  Constant:

-0:12                    4 (const int)

-0:12                direct index (smooth temp 4-component vector of float TexCoord)

-0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:12                  Constant:

-0:12                    5 (const int)

-0:14      add second child into first child (temp 4-component vector of float)

-0:14        'texColor' (temp 4-component vector of float)

-0:14        'color' (smooth in 4-component vector of float)

-0:16      move second child to first child (temp float)

-0:16        direct index (temp float)

-0:16          'texColor' (temp 4-component vector of float)

-0:16          Constant:

-0:16            3 (const int)

-0:16        'alpha' (smooth in float)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:18        add (temp 4-component vector of float)

-0:18          add (temp 4-component vector of float)

-0:18            add (temp 4-component vector of float)

-0:18              direct index (smooth temp 4-component vector of float)

-0:18                'foo' (smooth in 3-element array of 4-component vector of float)

-0:18                Constant:

-0:18                  1 (const int)

-0:18              direct index (smooth temp 4-component vector of float TexCoord)

-0:18                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:18                Constant:

-0:18                  0 (const int)

-0:18            direct index (smooth temp 4-component vector of float TexCoord)

-0:18              'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:18              Constant:

-0:18                4 (const int)

-0:18          'texColor' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'color' (smooth in 4-component vector of float)

-0:?     'alpha' (smooth in float)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'foo' (smooth in 3-element array of 4-component vector of float)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:10  Function Definition: main( (global void)

-0:10    Function Parameters: 

-0:12    Sequence

-0:12      Sequence

-0:12        move second child to first child (temp 4-component vector of float)

-0:12          'texColor' (temp 4-component vector of float)

-0:12          texture (global 4-component vector of float)

-0:12            'texSampler2D' (uniform sampler2D)

-0:12            Construct vec2 (temp 2-component vector of float)

-0:12              add (temp 4-component vector of float)

-0:12                direct index (smooth temp 4-component vector of float TexCoord)

-0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:12                  Constant:

-0:12                    4 (const int)

-0:12                direct index (smooth temp 4-component vector of float TexCoord)

-0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:12                  Constant:

-0:12                    5 (const int)

-0:14      add second child into first child (temp 4-component vector of float)

-0:14        'texColor' (temp 4-component vector of float)

-0:14        'color' (smooth in 4-component vector of float)

-0:16      move second child to first child (temp float)

-0:16        direct index (temp float)

-0:16          'texColor' (temp 4-component vector of float)

-0:16          Constant:

-0:16            3 (const int)

-0:16        'alpha' (smooth in float)

-0:18      move second child to first child (temp 4-component vector of float)

-0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:18        add (temp 4-component vector of float)

-0:18          add (temp 4-component vector of float)

-0:18            add (temp 4-component vector of float)

-0:18              direct index (smooth temp 4-component vector of float)

-0:18                'foo' (smooth in 3-element array of 4-component vector of float)

-0:18                Constant:

-0:18                  1 (const int)

-0:18              direct index (smooth temp 4-component vector of float TexCoord)

-0:18                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:18                Constant:

-0:18                  0 (const int)

-0:18            direct index (smooth temp 4-component vector of float TexCoord)

-0:18              'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:18              Constant:

-0:18                4 (const int)

-0:18          'texColor' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'color' (smooth in 4-component vector of float)

-0:?     'alpha' (smooth in float)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'foo' (smooth in 3-element array of 4-component vector of float)

-

+varyingArray.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:8: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'texColor' (temp 4-component vector of float)
+0:12          texture (global 4-component vector of float)
+0:12            'texSampler2D' (uniform sampler2D)
+0:12            Construct vec2 (temp 2-component vector of float)
+0:12              add (temp 4-component vector of float)
+0:12                direct index (smooth temp 4-component vector of float TexCoord)
+0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12                  Constant:
+0:12                    4 (const int)
+0:12                direct index (smooth temp 4-component vector of float TexCoord)
+0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12                  Constant:
+0:12                    5 (const int)
+0:14      add second child into first child (temp 4-component vector of float)
+0:14        'texColor' (temp 4-component vector of float)
+0:14        'color' (smooth in 4-component vector of float)
+0:16      move second child to first child (temp float)
+0:16        direct index (temp float)
+0:16          'texColor' (temp 4-component vector of float)
+0:16          Constant:
+0:16            3 (const int)
+0:16        'alpha' (smooth in float)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18        add (temp 4-component vector of float)
+0:18          add (temp 4-component vector of float)
+0:18            add (temp 4-component vector of float)
+0:18              direct index (smooth temp 4-component vector of float)
+0:18                'foo' (smooth in 3-element array of 4-component vector of float)
+0:18                Constant:
+0:18                  1 (const int)
+0:18              direct index (smooth temp 4-component vector of float TexCoord)
+0:18                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18                Constant:
+0:18                  0 (const int)
+0:18            direct index (smooth temp 4-component vector of float TexCoord)
+0:18              'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18              Constant:
+0:18                4 (const int)
+0:18          'texColor' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'color' (smooth in 4-component vector of float)
+0:?     'alpha' (smooth in float)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'foo' (smooth in 3-element array of 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:10  Function Definition: main( (global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child (temp 4-component vector of float)
+0:12          'texColor' (temp 4-component vector of float)
+0:12          texture (global 4-component vector of float)
+0:12            'texSampler2D' (uniform sampler2D)
+0:12            Construct vec2 (temp 2-component vector of float)
+0:12              add (temp 4-component vector of float)
+0:12                direct index (smooth temp 4-component vector of float TexCoord)
+0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12                  Constant:
+0:12                    4 (const int)
+0:12                direct index (smooth temp 4-component vector of float TexCoord)
+0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:12                  Constant:
+0:12                    5 (const int)
+0:14      add second child into first child (temp 4-component vector of float)
+0:14        'texColor' (temp 4-component vector of float)
+0:14        'color' (smooth in 4-component vector of float)
+0:16      move second child to first child (temp float)
+0:16        direct index (temp float)
+0:16          'texColor' (temp 4-component vector of float)
+0:16          Constant:
+0:16            3 (const int)
+0:16        'alpha' (smooth in float)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:18        add (temp 4-component vector of float)
+0:18          add (temp 4-component vector of float)
+0:18            add (temp 4-component vector of float)
+0:18              direct index (smooth temp 4-component vector of float)
+0:18                'foo' (smooth in 3-element array of 4-component vector of float)
+0:18                Constant:
+0:18                  1 (const int)
+0:18              direct index (smooth temp 4-component vector of float TexCoord)
+0:18                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18                Constant:
+0:18                  0 (const int)
+0:18            direct index (smooth temp 4-component vector of float TexCoord)
+0:18              'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:18              Constant:
+0:18                4 (const int)
+0:18          'texColor' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'color' (smooth in 4-component vector of float)
+0:?     'alpha' (smooth in float)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'foo' (smooth in 3-element array of 4-component vector of float)
+
diff --git a/Test/baseResults/varyingArrayIndirect.frag.out b/Test/baseResults/varyingArrayIndirect.frag.out
index 51fa713..02a41f3 100644
--- a/Test/baseResults/varyingArrayIndirect.frag.out
+++ b/Test/baseResults/varyingArrayIndirect.frag.out
@@ -1,126 +1,126 @@
-varyingArrayIndirect.frag

-WARNING: 0:3: varying deprecated in version 130; may be removed in future release

-WARNING: 0:4: varying deprecated in version 130; may be removed in future release

-WARNING: 0:6: varying deprecated in version 130; may be removed in future release

-WARNING: 0:8: varying deprecated in version 130; may be removed in future release

-

-Shader version: 130

-0:? Sequence

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:14    Sequence

-0:14      Sequence

-0:14        move second child to first child (temp 4-component vector of float)

-0:14          'texColor' (temp 4-component vector of float)

-0:14          texture (global 4-component vector of float)

-0:14            'texSampler2D' (uniform sampler2D)

-0:14            Construct vec2 (temp 2-component vector of float)

-0:14              add (temp 4-component vector of float)

-0:14                add (temp 4-component vector of float)

-0:14                  indirect index (smooth temp 4-component vector of float)

-0:14                    'userIn' (smooth in 2-element array of 4-component vector of float)

-0:14                    'b' (uniform int)

-0:14                  indirect index (smooth temp 4-component vector of float TexCoord)

-0:14                    'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:14                    'a' (uniform int)

-0:14                direct index (smooth temp 4-component vector of float TexCoord)

-0:14                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:14                  Constant:

-0:14                    5 (const int)

-0:16      add second child into first child (temp 4-component vector of float)

-0:16        'texColor' (temp 4-component vector of float)

-0:16        'color' (smooth in 4-component vector of float)

-0:18      move second child to first child (temp float)

-0:18        direct index (temp float)

-0:18          'texColor' (temp 4-component vector of float)

-0:18          Constant:

-0:18            3 (const int)

-0:18        'alpha' (smooth in float)

-0:20      move second child to first child (temp 4-component vector of float)

-0:20        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:20        add (temp 4-component vector of float)

-0:20          add (temp 4-component vector of float)

-0:20            add (temp 4-component vector of float)

-0:20              direct index (smooth temp 4-component vector of float TexCoord)

-0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:20                Constant:

-0:20                  0 (const int)

-0:20              indirect index (smooth temp 4-component vector of float TexCoord)

-0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:20                'b' (uniform int)

-0:20            'texColor' (temp 4-component vector of float)

-0:20          indirect index (smooth temp 4-component vector of float)

-0:20            'userIn' (smooth in 2-element array of 4-component vector of float)

-0:20            'a' (uniform int)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'color' (smooth in 4-component vector of float)

-0:?     'alpha' (smooth in float)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'userIn' (smooth in 2-element array of 4-component vector of float)

-0:?     'a' (uniform int)

-0:?     'b' (uniform int)

-

-

-Linked fragment stage:

-

-

-Shader version: 130

-0:? Sequence

-0:12  Function Definition: main( (global void)

-0:12    Function Parameters: 

-0:14    Sequence

-0:14      Sequence

-0:14        move second child to first child (temp 4-component vector of float)

-0:14          'texColor' (temp 4-component vector of float)

-0:14          texture (global 4-component vector of float)

-0:14            'texSampler2D' (uniform sampler2D)

-0:14            Construct vec2 (temp 2-component vector of float)

-0:14              add (temp 4-component vector of float)

-0:14                add (temp 4-component vector of float)

-0:14                  indirect index (smooth temp 4-component vector of float)

-0:14                    'userIn' (smooth in 2-element array of 4-component vector of float)

-0:14                    'b' (uniform int)

-0:14                  indirect index (smooth temp 4-component vector of float TexCoord)

-0:14                    'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:14                    'a' (uniform int)

-0:14                direct index (smooth temp 4-component vector of float TexCoord)

-0:14                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:14                  Constant:

-0:14                    5 (const int)

-0:16      add second child into first child (temp 4-component vector of float)

-0:16        'texColor' (temp 4-component vector of float)

-0:16        'color' (smooth in 4-component vector of float)

-0:18      move second child to first child (temp float)

-0:18        direct index (temp float)

-0:18          'texColor' (temp 4-component vector of float)

-0:18          Constant:

-0:18            3 (const int)

-0:18        'alpha' (smooth in float)

-0:20      move second child to first child (temp 4-component vector of float)

-0:20        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:20        add (temp 4-component vector of float)

-0:20          add (temp 4-component vector of float)

-0:20            add (temp 4-component vector of float)

-0:20              direct index (smooth temp 4-component vector of float TexCoord)

-0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:20                Constant:

-0:20                  0 (const int)

-0:20              indirect index (smooth temp 4-component vector of float TexCoord)

-0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:20                'b' (uniform int)

-0:20            'texColor' (temp 4-component vector of float)

-0:20          indirect index (smooth temp 4-component vector of float)

-0:20            'userIn' (smooth in 2-element array of 4-component vector of float)

-0:20            'a' (uniform int)

-0:?   Linker Objects

-0:?     'texSampler2D' (uniform sampler2D)

-0:?     'color' (smooth in 4-component vector of float)

-0:?     'alpha' (smooth in float)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)

-0:?     'userIn' (smooth in 2-element array of 4-component vector of float)

-0:?     'a' (uniform int)

-0:?     'b' (uniform int)

-

+varyingArrayIndirect.frag
+WARNING: 0:3: varying deprecated in version 130; may be removed in future release
+WARNING: 0:4: varying deprecated in version 130; may be removed in future release
+WARNING: 0:6: varying deprecated in version 130; may be removed in future release
+WARNING: 0:8: varying deprecated in version 130; may be removed in future release
+
+Shader version: 130
+0:? Sequence
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:14    Sequence
+0:14      Sequence
+0:14        move second child to first child (temp 4-component vector of float)
+0:14          'texColor' (temp 4-component vector of float)
+0:14          texture (global 4-component vector of float)
+0:14            'texSampler2D' (uniform sampler2D)
+0:14            Construct vec2 (temp 2-component vector of float)
+0:14              add (temp 4-component vector of float)
+0:14                add (temp 4-component vector of float)
+0:14                  indirect index (smooth temp 4-component vector of float)
+0:14                    'userIn' (smooth in 2-element array of 4-component vector of float)
+0:14                    'b' (uniform int)
+0:14                  indirect index (smooth temp 4-component vector of float TexCoord)
+0:14                    'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14                    'a' (uniform int)
+0:14                direct index (smooth temp 4-component vector of float TexCoord)
+0:14                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14                  Constant:
+0:14                    5 (const int)
+0:16      add second child into first child (temp 4-component vector of float)
+0:16        'texColor' (temp 4-component vector of float)
+0:16        'color' (smooth in 4-component vector of float)
+0:18      move second child to first child (temp float)
+0:18        direct index (temp float)
+0:18          'texColor' (temp 4-component vector of float)
+0:18          Constant:
+0:18            3 (const int)
+0:18        'alpha' (smooth in float)
+0:20      move second child to first child (temp 4-component vector of float)
+0:20        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20        add (temp 4-component vector of float)
+0:20          add (temp 4-component vector of float)
+0:20            add (temp 4-component vector of float)
+0:20              direct index (smooth temp 4-component vector of float TexCoord)
+0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20                Constant:
+0:20                  0 (const int)
+0:20              indirect index (smooth temp 4-component vector of float TexCoord)
+0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20                'b' (uniform int)
+0:20            'texColor' (temp 4-component vector of float)
+0:20          indirect index (smooth temp 4-component vector of float)
+0:20            'userIn' (smooth in 2-element array of 4-component vector of float)
+0:20            'a' (uniform int)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'color' (smooth in 4-component vector of float)
+0:?     'alpha' (smooth in float)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'userIn' (smooth in 2-element array of 4-component vector of float)
+0:?     'a' (uniform int)
+0:?     'b' (uniform int)
+
+
+Linked fragment stage:
+
+
+Shader version: 130
+0:? Sequence
+0:12  Function Definition: main( (global void)
+0:12    Function Parameters: 
+0:14    Sequence
+0:14      Sequence
+0:14        move second child to first child (temp 4-component vector of float)
+0:14          'texColor' (temp 4-component vector of float)
+0:14          texture (global 4-component vector of float)
+0:14            'texSampler2D' (uniform sampler2D)
+0:14            Construct vec2 (temp 2-component vector of float)
+0:14              add (temp 4-component vector of float)
+0:14                add (temp 4-component vector of float)
+0:14                  indirect index (smooth temp 4-component vector of float)
+0:14                    'userIn' (smooth in 2-element array of 4-component vector of float)
+0:14                    'b' (uniform int)
+0:14                  indirect index (smooth temp 4-component vector of float TexCoord)
+0:14                    'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14                    'a' (uniform int)
+0:14                direct index (smooth temp 4-component vector of float TexCoord)
+0:14                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:14                  Constant:
+0:14                    5 (const int)
+0:16      add second child into first child (temp 4-component vector of float)
+0:16        'texColor' (temp 4-component vector of float)
+0:16        'color' (smooth in 4-component vector of float)
+0:18      move second child to first child (temp float)
+0:18        direct index (temp float)
+0:18          'texColor' (temp 4-component vector of float)
+0:18          Constant:
+0:18            3 (const int)
+0:18        'alpha' (smooth in float)
+0:20      move second child to first child (temp 4-component vector of float)
+0:20        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:20        add (temp 4-component vector of float)
+0:20          add (temp 4-component vector of float)
+0:20            add (temp 4-component vector of float)
+0:20              direct index (smooth temp 4-component vector of float TexCoord)
+0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20                Constant:
+0:20                  0 (const int)
+0:20              indirect index (smooth temp 4-component vector of float TexCoord)
+0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:20                'b' (uniform int)
+0:20            'texColor' (temp 4-component vector of float)
+0:20          indirect index (smooth temp 4-component vector of float)
+0:20            'userIn' (smooth in 2-element array of 4-component vector of float)
+0:20            'a' (uniform int)
+0:?   Linker Objects
+0:?     'texSampler2D' (uniform sampler2D)
+0:?     'color' (smooth in 4-component vector of float)
+0:?     'alpha' (smooth in float)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
+0:?     'userIn' (smooth in 2-element array of 4-component vector of float)
+0:?     'a' (uniform int)
+0:?     'b' (uniform int)
+
diff --git a/Test/baseResults/versionsClean.frag.out b/Test/baseResults/versionsClean.frag.out
index a0b038a..44f04f6 100644
--- a/Test/baseResults/versionsClean.frag.out
+++ b/Test/baseResults/versionsClean.frag.out
@@ -1,44 +1,44 @@
-versionsClean.frag

-ERROR: #version: statement must appear first in es-profile shader; before comments or newlines

-ERROR: 0:34: '#version' : must occur first in shader 

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:41  Function Definition: main( (global void)

-0:41    Function Parameters: 

-0:43    Sequence

-0:43      move second child to first child (temp highp 4-component vector of float)

-0:43        'foo' (out highp 4-component vector of float)

-0:43        Construct vec4 (temp highp 4-component vector of float)

-0:43          'color' (smooth in highp 3-component vector of float)

-0:43          Constant:

-0:43            142.000000

-0:44      Branch: Kill

-0:?   Linker Objects

-0:?     'color' (smooth in highp 3-component vector of float)

-0:?     'foo' (out highp 4-component vector of float)

-0:?     'bar' (uniform highp sampler2DArrayShadow)

-

-

-Linked fragment stage:

-

-

-Shader version: 300

-ERROR: node is still EOpNull!

-0:41  Function Definition: main( (global void)

-0:41    Function Parameters: 

-0:43    Sequence

-0:43      move second child to first child (temp highp 4-component vector of float)

-0:43        'foo' (out highp 4-component vector of float)

-0:43        Construct vec4 (temp highp 4-component vector of float)

-0:43          'color' (smooth in highp 3-component vector of float)

-0:43          Constant:

-0:43            142.000000

-0:44      Branch: Kill

-0:?   Linker Objects

-0:?     'color' (smooth in highp 3-component vector of float)

-0:?     'foo' (out highp 4-component vector of float)

-0:?     'bar' (uniform highp sampler2DArrayShadow)

-

+versionsClean.frag
+ERROR: #version: statement must appear first in es-profile shader; before comments or newlines
+ERROR: 0:34: '#version' : must occur first in shader 
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:41  Function Definition: main( (global void)
+0:41    Function Parameters: 
+0:43    Sequence
+0:43      move second child to first child (temp highp 4-component vector of float)
+0:43        'foo' (out highp 4-component vector of float)
+0:43        Construct vec4 (temp highp 4-component vector of float)
+0:43          'color' (smooth in highp 3-component vector of float)
+0:43          Constant:
+0:43            142.000000
+0:44      Branch: Kill
+0:?   Linker Objects
+0:?     'color' (smooth in highp 3-component vector of float)
+0:?     'foo' (out highp 4-component vector of float)
+0:?     'bar' (uniform highp sampler2DArrayShadow)
+
+
+Linked fragment stage:
+
+
+Shader version: 300
+ERROR: node is still EOpNull!
+0:41  Function Definition: main( (global void)
+0:41    Function Parameters: 
+0:43    Sequence
+0:43      move second child to first child (temp highp 4-component vector of float)
+0:43        'foo' (out highp 4-component vector of float)
+0:43        Construct vec4 (temp highp 4-component vector of float)
+0:43          'color' (smooth in highp 3-component vector of float)
+0:43          Constant:
+0:43            142.000000
+0:44      Branch: Kill
+0:?   Linker Objects
+0:?     'color' (smooth in highp 3-component vector of float)
+0:?     'foo' (out highp 4-component vector of float)
+0:?     'bar' (uniform highp sampler2DArrayShadow)
+
diff --git a/Test/baseResults/versionsClean.vert.out b/Test/baseResults/versionsClean.vert.out
index 8f06e62..c5d05a7 100644
--- a/Test/baseResults/versionsClean.vert.out
+++ b/Test/baseResults/versionsClean.vert.out
@@ -1,49 +1,49 @@
-versionsClean.vert

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-

-Shader version: 420

-0:? Sequence

-0:40  Function Definition: main( (global void)

-0:40    Function Parameters: 

-0:42    Sequence

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:42          Constant:

-0:42            0 (const uint)

-0:42        Construct vec4 (temp 4-component vector of float)

-0:42          'color' (in 3-component vector of float)

-0:42          Constant:

-0:42            142.000000

-0:?   Linker Objects

-0:?     'color' (in 3-component vector of float)

-0:?     'foo' (uniform sampler2DRect)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 420

-0:? Sequence

-0:40  Function Definition: main( (global void)

-0:40    Function Parameters: 

-0:42    Sequence

-0:42      move second child to first child (temp 4-component vector of float)

-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:42          Constant:

-0:42            0 (const uint)

-0:42        Construct vec4 (temp 4-component vector of float)

-0:42          'color' (in 3-component vector of float)

-0:42          Constant:

-0:42            142.000000

-0:?   Linker Objects

-0:?     'color' (in 3-component vector of float)

-0:?     'foo' (uniform sampler2DRect)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+versionsClean.vert
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+
+Shader version: 420
+0:? Sequence
+0:40  Function Definition: main( (global void)
+0:40    Function Parameters: 
+0:42    Sequence
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:42          Constant:
+0:42            0 (const uint)
+0:42        Construct vec4 (temp 4-component vector of float)
+0:42          'color' (in 3-component vector of float)
+0:42          Constant:
+0:42            142.000000
+0:?   Linker Objects
+0:?     'color' (in 3-component vector of float)
+0:?     'foo' (uniform sampler2DRect)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 420
+0:? Sequence
+0:40  Function Definition: main( (global void)
+0:40    Function Parameters: 
+0:42    Sequence
+0:42      move second child to first child (temp 4-component vector of float)
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:42          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:42          Constant:
+0:42            0 (const uint)
+0:42        Construct vec4 (temp 4-component vector of float)
+0:42          'color' (in 3-component vector of float)
+0:42          Constant:
+0:42            142.000000
+0:?   Linker Objects
+0:?     'color' (in 3-component vector of float)
+0:?     'foo' (uniform sampler2DRect)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/versionsErrors.frag.out b/Test/baseResults/versionsErrors.frag.out
index 29d6fa7..34182d0 100644
--- a/Test/baseResults/versionsErrors.frag.out
+++ b/Test/baseResults/versionsErrors.frag.out
@@ -1,44 +1,44 @@
-versionsErrors.frag

-ERROR: #version: versions before 150 do not allow a profile token

-ERROR: 0:38: 'attribute' : not supported in this stage: fragment

-ERROR: 0:40: 'sampler2DRect' : Reserved word. 

-ERROR: 0:44: 'floating-point suffix' : not supported for this version or the enabled extensions 

-ERROR: 4 compilation errors.  No code generated.

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:42  Function Definition: main( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      move second child to first child (temp 4-component vector of float)

-0:44        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:44        Construct vec4 (temp 4-component vector of float)

-0:44          'color' (smooth in 3-component vector of float)

-0:44          Constant:

-0:44            142.000000

-0:45      Branch: Kill

-0:?   Linker Objects

-0:?     'color' (smooth in 3-component vector of float)

-0:?     'foo' (uniform sampler2DRect)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-ERROR: node is still EOpNull!

-0:42  Function Definition: main( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      move second child to first child (temp 4-component vector of float)

-0:44        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:44        Construct vec4 (temp 4-component vector of float)

-0:44          'color' (smooth in 3-component vector of float)

-0:44          Constant:

-0:44            142.000000

-0:45      Branch: Kill

-0:?   Linker Objects

-0:?     'color' (smooth in 3-component vector of float)

-0:?     'foo' (uniform sampler2DRect)

-

+versionsErrors.frag
+ERROR: #version: versions before 150 do not allow a profile token
+ERROR: 0:38: 'attribute' : not supported in this stage: fragment
+ERROR: 0:40: 'sampler2DRect' : Reserved word. 
+ERROR: 0:44: 'floating-point suffix' : not supported for this version or the enabled extensions 
+ERROR: 4 compilation errors.  No code generated.
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:42  Function Definition: main( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      move second child to first child (temp 4-component vector of float)
+0:44        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:44        Construct vec4 (temp 4-component vector of float)
+0:44          'color' (smooth in 3-component vector of float)
+0:44          Constant:
+0:44            142.000000
+0:45      Branch: Kill
+0:?   Linker Objects
+0:?     'color' (smooth in 3-component vector of float)
+0:?     'foo' (uniform sampler2DRect)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+ERROR: node is still EOpNull!
+0:42  Function Definition: main( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      move second child to first child (temp 4-component vector of float)
+0:44        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:44        Construct vec4 (temp 4-component vector of float)
+0:44          'color' (smooth in 3-component vector of float)
+0:44          Constant:
+0:44            142.000000
+0:45      Branch: Kill
+0:?   Linker Objects
+0:?     'color' (smooth in 3-component vector of float)
+0:?     'foo' (uniform sampler2DRect)
+
diff --git a/Test/baseResults/versionsErrors.vert.out b/Test/baseResults/versionsErrors.vert.out
index 440afd8..0aeaea8 100644
--- a/Test/baseResults/versionsErrors.vert.out
+++ b/Test/baseResults/versionsErrors.vert.out
@@ -1,58 +1,58 @@
-versionsErrors.vert

-Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.

-WARNING: 0:38: attribute deprecated in version 130; may be removed in future release

-ERROR: 0:38: 'attribute' : no longer supported in core profile; removed in version 420

-ERROR: 0:45: 'discard' : not supported in this stage: vertex

-ERROR: 2 compilation errors.  No code generated.

-

-

-Shader version: 420

-Requested GL_ARB_texture_rectangle

-ERROR: node is still EOpNull!

-0:42  Function Definition: main( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      move second child to first child (temp 4-component vector of float)

-0:44        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:44          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:44          Constant:

-0:44            0 (const uint)

-0:44        Construct vec4 (temp 4-component vector of float)

-0:44          'color' (in 3-component vector of float)

-0:44          Constant:

-0:44            142.000000

-0:45      Branch: Kill

-0:?   Linker Objects

-0:?     'color' (in 3-component vector of float)

-0:?     'foo' (uniform sampler2DRect)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

-

-Linked vertex stage:

-

-

-Shader version: 420

-Requested GL_ARB_texture_rectangle

-ERROR: node is still EOpNull!

-0:42  Function Definition: main( (global void)

-0:42    Function Parameters: 

-0:44    Sequence

-0:44      move second child to first child (temp 4-component vector of float)

-0:44        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)

-0:44          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:44          Constant:

-0:44            0 (const uint)

-0:44        Construct vec4 (temp 4-component vector of float)

-0:44          'color' (in 3-component vector of float)

-0:44          Constant:

-0:44            142.000000

-0:45      Branch: Kill

-0:?   Linker Objects

-0:?     'color' (in 3-component vector of float)

-0:?     'foo' (uniform sampler2DRect)

-0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})

-0:?     'gl_VertexID' (gl_VertexId int VertexId)

-0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)

-

+versionsErrors.vert
+Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
+WARNING: 0:38: attribute deprecated in version 130; may be removed in future release
+ERROR: 0:38: 'attribute' : no longer supported in core profile; removed in version 420
+ERROR: 0:45: 'discard' : not supported in this stage: vertex
+ERROR: 2 compilation errors.  No code generated.
+
+
+Shader version: 420
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:42  Function Definition: main( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      move second child to first child (temp 4-component vector of float)
+0:44        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:44          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:44          Constant:
+0:44            0 (const uint)
+0:44        Construct vec4 (temp 4-component vector of float)
+0:44          'color' (in 3-component vector of float)
+0:44          Constant:
+0:44            142.000000
+0:45      Branch: Kill
+0:?   Linker Objects
+0:?     'color' (in 3-component vector of float)
+0:?     'foo' (uniform sampler2DRect)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 420
+Requested GL_ARB_texture_rectangle
+ERROR: node is still EOpNull!
+0:42  Function Definition: main( (global void)
+0:42    Function Parameters: 
+0:44    Sequence
+0:44      move second child to first child (temp 4-component vector of float)
+0:44        gl_Position: direct index for structure (gl_Position 4-component vector of float Position)
+0:44          'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:44          Constant:
+0:44            0 (const uint)
+0:44        Construct vec4 (temp 4-component vector of float)
+0:44          'color' (in 3-component vector of float)
+0:44          Constant:
+0:44            142.000000
+0:45      Branch: Kill
+0:?   Linker Objects
+0:?     'color' (in 3-component vector of float)
+0:?     'foo' (uniform sampler2DRect)
+0:?     'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
+0:?     'gl_VertexID' (gl_VertexId int VertexId)
+0:?     'gl_InstanceID' (gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/voidFunction.frag.out b/Test/baseResults/voidFunction.frag.out
index 3124ab2..638cfbd 100644
--- a/Test/baseResults/voidFunction.frag.out
+++ b/Test/baseResults/voidFunction.frag.out
@@ -1,91 +1,91 @@
-voidFunction.frag

-Shader version: 120

-0:? Sequence

-0:7  Sequence

-0:7    move second child to first child (temp float)

-0:7      'bar' (global float)

-0:7      Constant:

-0:7        2.000000

-0:9  Function Definition: foo( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Post-Increment (temp float)

-0:11        'bar' (global float)

-0:13      Branch: Return

-0:16  Function Definition: foo2( (global void)

-0:16    Function Parameters: 

-0:18    Sequence

-0:18      Post-Increment (temp float)

-0:18        'bar' (global float)

-0:21  Function Definition: main( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'outColor' (temp 4-component vector of float)

-0:23          'bigColor' (uniform 4-component vector of float)

-0:25      Function Call: foo( (global void)

-0:27      Function Call: foo2( (global void)

-0:29      add second child into first child (temp float)

-0:29        direct index (temp float)

-0:29          'outColor' (temp 4-component vector of float)

-0:29          Constant:

-0:29            0 (const int)

-0:29        'bar' (global float)

-0:31      move second child to first child (temp 4-component vector of float)

-0:31        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:31        'outColor' (temp 4-component vector of float)

-0:33      Branch: Return

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'bar' (global float)

-

-

-Linked fragment stage:

-

-

-Shader version: 120

-0:? Sequence

-0:7  Sequence

-0:7    move second child to first child (temp float)

-0:7      'bar' (global float)

-0:7      Constant:

-0:7        2.000000

-0:9  Function Definition: foo( (global void)

-0:9    Function Parameters: 

-0:11    Sequence

-0:11      Post-Increment (temp float)

-0:11        'bar' (global float)

-0:13      Branch: Return

-0:16  Function Definition: foo2( (global void)

-0:16    Function Parameters: 

-0:18    Sequence

-0:18      Post-Increment (temp float)

-0:18        'bar' (global float)

-0:21  Function Definition: main( (global void)

-0:21    Function Parameters: 

-0:23    Sequence

-0:23      Sequence

-0:23        move second child to first child (temp 4-component vector of float)

-0:23          'outColor' (temp 4-component vector of float)

-0:23          'bigColor' (uniform 4-component vector of float)

-0:25      Function Call: foo( (global void)

-0:27      Function Call: foo2( (global void)

-0:29      add second child into first child (temp float)

-0:29        direct index (temp float)

-0:29          'outColor' (temp 4-component vector of float)

-0:29          Constant:

-0:29            0 (const int)

-0:29        'bar' (global float)

-0:31      move second child to first child (temp 4-component vector of float)

-0:31        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:31        'outColor' (temp 4-component vector of float)

-0:33      Branch: Return

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-0:?     'bar' (global float)

-

+voidFunction.frag
+Shader version: 120
+0:? Sequence
+0:7  Sequence
+0:7    move second child to first child (temp float)
+0:7      'bar' (global float)
+0:7      Constant:
+0:7        2.000000
+0:9  Function Definition: foo( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Post-Increment (temp float)
+0:11        'bar' (global float)
+0:13      Branch: Return
+0:16  Function Definition: foo2( (global void)
+0:16    Function Parameters: 
+0:18    Sequence
+0:18      Post-Increment (temp float)
+0:18        'bar' (global float)
+0:21  Function Definition: main( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'outColor' (temp 4-component vector of float)
+0:23          'bigColor' (uniform 4-component vector of float)
+0:25      Function Call: foo( (global void)
+0:27      Function Call: foo2( (global void)
+0:29      add second child into first child (temp float)
+0:29        direct index (temp float)
+0:29          'outColor' (temp 4-component vector of float)
+0:29          Constant:
+0:29            0 (const int)
+0:29        'bar' (global float)
+0:31      move second child to first child (temp 4-component vector of float)
+0:31        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31        'outColor' (temp 4-component vector of float)
+0:33      Branch: Return
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'bar' (global float)
+
+
+Linked fragment stage:
+
+
+Shader version: 120
+0:? Sequence
+0:7  Sequence
+0:7    move second child to first child (temp float)
+0:7      'bar' (global float)
+0:7      Constant:
+0:7        2.000000
+0:9  Function Definition: foo( (global void)
+0:9    Function Parameters: 
+0:11    Sequence
+0:11      Post-Increment (temp float)
+0:11        'bar' (global float)
+0:13      Branch: Return
+0:16  Function Definition: foo2( (global void)
+0:16    Function Parameters: 
+0:18    Sequence
+0:18      Post-Increment (temp float)
+0:18        'bar' (global float)
+0:21  Function Definition: main( (global void)
+0:21    Function Parameters: 
+0:23    Sequence
+0:23      Sequence
+0:23        move second child to first child (temp 4-component vector of float)
+0:23          'outColor' (temp 4-component vector of float)
+0:23          'bigColor' (uniform 4-component vector of float)
+0:25      Function Call: foo( (global void)
+0:27      Function Call: foo2( (global void)
+0:29      add second child into first child (temp float)
+0:29        direct index (temp float)
+0:29          'outColor' (temp 4-component vector of float)
+0:29          Constant:
+0:29            0 (const int)
+0:29        'bar' (global float)
+0:31      move second child to first child (temp 4-component vector of float)
+0:31        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:31        'outColor' (temp 4-component vector of float)
+0:33      Branch: Return
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+0:?     'bar' (global float)
+
diff --git a/Test/baseResults/whileLoop.frag.out b/Test/baseResults/whileLoop.frag.out
index 87d3af7..ad30b36 100644
--- a/Test/baseResults/whileLoop.frag.out
+++ b/Test/baseResults/whileLoop.frag.out
@@ -1,65 +1,65 @@
-whileLoop.frag

-Shader version: 110

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Sequence

-0:9        move second child to first child (temp 4-component vector of float)

-0:9          'color' (temp 4-component vector of float)

-0:9          'BaseColor' (smooth in 4-component vector of float)

-0:11      Loop with condition tested first

-0:11        Loop Condition

-0:11        Compare Less Than (temp bool)

-0:11          direct index (temp float)

-0:11            'color' (temp 4-component vector of float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          'd' (uniform float)

-0:11        Loop Body

-0:12        Sequence

-0:12          add second child into first child (temp 4-component vector of float)

-0:12            'color' (temp 4-component vector of float)

-0:12            'bigColor' (uniform 4-component vector of float)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:15        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

-

-Linked fragment stage:

-

-

-Shader version: 110

-0:? Sequence

-0:7  Function Definition: main( (global void)

-0:7    Function Parameters: 

-0:9    Sequence

-0:9      Sequence

-0:9        move second child to first child (temp 4-component vector of float)

-0:9          'color' (temp 4-component vector of float)

-0:9          'BaseColor' (smooth in 4-component vector of float)

-0:11      Loop with condition tested first

-0:11        Loop Condition

-0:11        Compare Less Than (temp bool)

-0:11          direct index (temp float)

-0:11            'color' (temp 4-component vector of float)

-0:11            Constant:

-0:11              0 (const int)

-0:11          'd' (uniform float)

-0:11        Loop Body

-0:12        Sequence

-0:12          add second child into first child (temp 4-component vector of float)

-0:12            'color' (temp 4-component vector of float)

-0:12            'bigColor' (uniform 4-component vector of float)

-0:15      move second child to first child (temp 4-component vector of float)

-0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)

-0:15        'color' (temp 4-component vector of float)

-0:?   Linker Objects

-0:?     'bigColor' (uniform 4-component vector of float)

-0:?     'BaseColor' (smooth in 4-component vector of float)

-0:?     'd' (uniform float)

-

+whileLoop.frag
+Shader version: 110
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'color' (temp 4-component vector of float)
+0:9          'BaseColor' (smooth in 4-component vector of float)
+0:11      Loop with condition tested first
+0:11        Loop Condition
+0:11        Compare Less Than (temp bool)
+0:11          direct index (temp float)
+0:11            'color' (temp 4-component vector of float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          'd' (uniform float)
+0:11        Loop Body
+0:12        Sequence
+0:12          add second child into first child (temp 4-component vector of float)
+0:12            'color' (temp 4-component vector of float)
+0:12            'bigColor' (uniform 4-component vector of float)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+0:? Sequence
+0:7  Function Definition: main( (global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'color' (temp 4-component vector of float)
+0:9          'BaseColor' (smooth in 4-component vector of float)
+0:11      Loop with condition tested first
+0:11        Loop Condition
+0:11        Compare Less Than (temp bool)
+0:11          direct index (temp float)
+0:11            'color' (temp 4-component vector of float)
+0:11            Constant:
+0:11              0 (const int)
+0:11          'd' (uniform float)
+0:11        Loop Body
+0:12        Sequence
+0:12          add second child into first child (temp 4-component vector of float)
+0:12            'color' (temp 4-component vector of float)
+0:12            'bigColor' (uniform 4-component vector of float)
+0:15      move second child to first child (temp 4-component vector of float)
+0:15        'gl_FragColor' (fragColor 4-component vector of float FragColor)
+0:15        'color' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'bigColor' (uniform 4-component vector of float)
+0:?     'BaseColor' (smooth in 4-component vector of float)
+0:?     'd' (uniform float)
+