diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out
index cb1589e6c8a5f2337233c0a46a21fbae012e0cbb..bcd28d3f7d419f8669f46e71d9425535ee2a74ef 100755
--- a/Test/baseResults/hlsl.array.frag.out
+++ b/Test/baseResults/hlsl.array.frag.out
@@ -2,7 +2,7 @@ hlsl.array.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'i' (layout(location=0 ) in int)
 0:8      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
@@ -57,7 +57,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'i' (layout(location=0 ) in int)
 0:8      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out
index 8201aaf3bbf4011d50e8d7a23a2963680b8b5f00..a99be59779015edd32635eef5581430f5b9c993f 100755
--- a/Test/baseResults/hlsl.assoc.frag.out
+++ b/Test/baseResults/hlsl.assoc.frag.out
@@ -2,7 +2,7 @@ hlsl.assoc.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'a1' (layout(location=0 ) in 4-component vector of float)
 0:8      'a2' (layout(location=1 ) in 4-component vector of float)
@@ -41,7 +41,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'a1' (layout(location=0 ) in 4-component vector of float)
 0:8      'a2' (layout(location=1 ) in 4-component vector of float)
diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out
index cb0b68bd65323fe7ae95667cad5a94c1e493e919..fd99cf511f8fa4ac3bd6b304bdb29b732c73f5cc 100755
--- a/Test/baseResults/hlsl.attribute.frag.out
+++ b/Test/baseResults/hlsl.attribute.frag.out
@@ -2,7 +2,7 @@ hlsl.attribute.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -20,7 +20,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out
index 9f79ab907eb4da0e4dbc616b45e9dea2c03903e1..23f8627dc1255d60b04f134e63b06a2e18954e4c 100755
--- a/Test/baseResults/hlsl.buffer.frag.out
+++ b/Test/baseResults/hlsl.buffer.frag.out
@@ -2,7 +2,7 @@ hlsl.buffer.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:29  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:26  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:26    Function Parameters: 
 0:26      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -44,7 +44,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:29  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:26  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:26    Function Parameters: 
 0:26      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index 7afcf8735506cfc837e756ea2cb35c7bcc4577a8..f11dd281bc02cbbccc83e781f1f7132b332a12bd 100644
--- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:28      Sequence
@@ -164,7 +164,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:28      Sequence
diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
index e46c1a6528adde18d869b2214f42d9bff78e4971..e9b3c0cfd8056c355d5e549cdb0ba1633265ade5 100644
--- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
@@ -14,7 +14,7 @@ ERROR: 9 compilation errors.  No code generated.
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:28      Sequence
@@ -176,7 +176,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:28      Sequence
diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out
index bcf35cb15f31541cfe4e24c390fdb4cf07e1b553..21edaf122ac379eaad8f54ac588fc83f7aba47eb 100755
--- a/Test/baseResults/hlsl.cast.frag.out
+++ b/Test/baseResults/hlsl.cast.frag.out
@@ -2,7 +2,7 @@ hlsl.cast.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -31,7 +31,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out
index e0356b5ef6163fc1504cd4e9c22fe2f71b7b3173..8694b1dc6b88576cd1874f77c725b674efab591b 100755
--- a/Test/baseResults/hlsl.conditional.frag.out
+++ b/Test/baseResults/hlsl.conditional.frag.out
@@ -2,7 +2,7 @@ hlsl.conditional.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:17  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -117,7 +117,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:17  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out
index 24e5f34e2d4287b292a4bc1433a73a8d938ac372..31e013ccd09d466f6281ef34a7e08ebd701d9e75 100644
--- a/Test/baseResults/hlsl.constructexpr.frag.out
+++ b/Test/baseResults/hlsl.constructexpr.frag.out
@@ -2,7 +2,7 @@ hlsl.constructexpr.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:18  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:4  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:4    Function Parameters: 
 0:?     Sequence
 0:6      Constant:
@@ -48,7 +48,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:18  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:4  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:4    Function Parameters: 
 0:?     Sequence
 0:6      Constant:
diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out
index cee9a456d175a8a754514aa97456d38f76163bf9..807799abd6108f7561b3fbdc5437a9aeacf3c24d 100755
--- a/Test/baseResults/hlsl.discard.frag.out
+++ b/Test/baseResults/hlsl.discard.frag.out
@@ -2,7 +2,7 @@ hlsl.discard.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: foo(f1; (global void)
+0:2  Function Definition: foo(f1; (global void)
 0:2    Function Parameters: 
 0:2      'f' (in float)
 0:?     Sequence
@@ -14,7 +14,7 @@ gl_FragCoord origin is upper left
 0:3            1.000000
 0:3        true case
 0:4        Branch: Kill
-0:15  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -48,7 +48,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: foo(f1; (global void)
+0:2  Function Definition: foo(f1; (global void)
 0:2    Function Parameters: 
 0:2      'f' (in float)
 0:?     Sequence
@@ -60,7 +60,7 @@ gl_FragCoord origin is upper left
 0:3            1.000000
 0:3        true case
 0:4        Branch: Kill
-0:15  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out
index 5f5d384e8a8517839ebc10e1dd287b2e3be7b6b7..b13e8d158fd9933d7b6100a75367f952445c91fb 100755
--- a/Test/baseResults/hlsl.doLoop.frag.out
+++ b/Test/baseResults/hlsl.doLoop.frag.out
@@ -2,7 +2,7 @@ hlsl.doLoop.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -36,7 +36,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out
index a5cac6fe30e1696607b6b45137fdf10142616ba3..b76d45274741745d39f2cbc0dc935efe624a77db 100755
--- a/Test/baseResults/hlsl.entry-out.frag.out
+++ b/Test/baseResults/hlsl.entry-out.frag.out
@@ -2,7 +2,7 @@ hlsl.entry-out.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:13  Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float)
+0:7  Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float)
 0:7    Function Parameters: 
 0:7      'input' (layout(location=0 ) in 4-component vector of float)
 0:7      'out1' (out 4-component vector of float)
@@ -41,7 +41,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:13  Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float)
+0:7  Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float)
 0:7    Function Parameters: 
 0:7      'input' (layout(location=0 ) in 4-component vector of float)
 0:7      'out1' (out 4-component vector of float)
diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out
index 64c7e17a89472a396c730af11db2e4e13a818d98..313be0b541a1f2dcd352e1dabd7d852613b23903 100755
--- a/Test/baseResults/hlsl.float1.frag.out
+++ b/Test/baseResults/hlsl.float1.frag.out
@@ -12,7 +12,7 @@ gl_FragCoord origin is upper left
 0:2      'scalar' (global float)
 0:2      Constant:
 0:2        2.000000
-0:8  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
+0:5  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:5    Function Parameters: 
 0:5      'inFloat1' (in 1-component vector of float)
 0:5      'inScalar' (in float)
@@ -46,7 +46,7 @@ gl_FragCoord origin is upper left
 0:2      'scalar' (global float)
 0:2      Constant:
 0:2        2.000000
-0:8  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
+0:5  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:5    Function Parameters: 
 0:5      'inFloat1' (in 1-component vector of float)
 0:5      'inScalar' (in float)
diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out
index ba443261fc0d3ebf4d4383df649cc3e3c91af4e5..85b3c9b4a0acb88fc047463bfb3e58ff212d1a0d 100755
--- a/Test/baseResults/hlsl.float4.frag.out
+++ b/Test/baseResults/hlsl.float4.frag.out
@@ -13,7 +13,7 @@ gl_FragCoord origin is upper left
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:12  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:9  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:9    Function Parameters: 
 0:9      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -43,7 +43,7 @@ gl_FragCoord origin is upper left
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:12  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:9  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:9    Function Parameters: 
 0:9      'input' (in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out
index ad9dc88f89d20901260d0ffe556bb725b9c4962f..ca0cf5aa8faeb2a53930f4be419b080eb5247582 100755
--- a/Test/baseResults/hlsl.forLoop.frag.out
+++ b/Test/baseResults/hlsl.forLoop.frag.out
@@ -2,7 +2,7 @@ hlsl.forLoop.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -122,7 +122,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out
index 314aa7f139cba4d5c98d15de229fd2d74efb4756..ca195e84cc05ffe83cde581d50d6ad5c87c3d775 100644
--- a/Test/baseResults/hlsl.gather.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gather.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:29      Sequence
@@ -116,7 +116,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:29      Sequence
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
index 9c38bb674e42867723a1452aef61225f2a32806e..0b0a2773951406d5d962f9036fe7ce7841428da6 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gather.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:49  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:29    Function Parameters: 
 0:?     Sequence
 0:34      Sequence
@@ -114,7 +114,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:49  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:29    Function Parameters: 
 0:?     Sequence
 0:34      Sequence
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
index b0e35787a4aa0d1173e39bed986b0b467df57eae..0573bdfe91275eb652a48e0e6628c055f5954789 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
@@ -1,7 +1,7 @@
 hlsl.gather.basic.dx10.vert
 Shader version: 450
 0:? Sequence
-0:47  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:28    Function Parameters: 
 0:?     Sequence
 0:33      Sequence
@@ -105,7 +105,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:47  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:28    Function Parameters: 
 0:?     Sequence
 0:33      Sequence
diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
index f5d818d051dff7efa67e189de771a369553a1379..75ac976cfb018e68bc6001239b90cdcaa85e0457 100644
--- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gather.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:33      Sequence
@@ -89,7 +89,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:45  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:33      Sequence
diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
index 32d56133b82391e3ba50da2146a676adf9a72703..3a0e637c8044b10caf549c34fe40583fda9d561f 100644
--- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gather.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:37  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:25      Sequence
@@ -86,7 +86,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:37  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:25      Sequence
diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
index 8e7a92663617d2fb798238143f7041218741379d..d85f20bc70157294ca622df36fec27af6223e875 100644
--- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gatherRGBA.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:72  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:33      Sequence
@@ -291,7 +291,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:72  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:33      Sequence
diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
index 24ad0a27d63f5498d5319ba26a6354f77f3f45aa..83992d55bfe0808fd27c34fafbba93492021070a 100644
--- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gatherRGBA.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:78  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:34    Function Parameters: 
 0:?     Sequence
 0:39      Sequence
@@ -295,7 +295,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:78  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:34    Function Parameters: 
 0:?     Sequence
 0:39      Sequence
diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
index 32ab1286c840900cfda4000482b51d739c339d8e..9b2ab9679d67c6491c873577b88a644dfa28d142 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gatherRGBA.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:117  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:39    Function Parameters: 
 0:?     Sequence
 0:46      Sequence
@@ -371,7 +371,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:117  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:39    Function Parameters: 
 0:?     Sequence
 0:46      Sequence
diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
index 771b3717b6a17639d65df4db86392e9fcc536199..acba726b5f69111c6a5c47ebadcd3ecaf4ab08da 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.gatherRGBA.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:111  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:33    Function Parameters: 
 0:?     Sequence
 0:40      Sequence
@@ -367,7 +367,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:111  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:33    Function Parameters: 
 0:?     Sequence
 0:40      Sequence
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
index 53864af147da079197e6aed0316aca3b16af1d10..ffd42faa5be4ee979d3452ebb7e29dccb0143c81 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:281  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:46  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:46    Function Parameters: 
 0:?     Sequence
 0:65      Sequence
@@ -1102,7 +1102,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:281  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:46  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:46    Function Parameters: 
 0:?     Sequence
 0:65      Sequence
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
index 605540e8653b934143712674b4c122dedb5af9e7..d98bb60bef62b04c009d920fb62fa8fff07897fa 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
@@ -1,7 +1,7 @@
 hlsl.getdimensions.dx10.vert
 Shader version: 450
 0:? Sequence
-0:28  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:11  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:11    Function Parameters: 
 0:?     Sequence
 0:21      Sequence
@@ -51,7 +51,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:28  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:11  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:11    Function Parameters: 
 0:?     Sequence
 0:21      Sequence
diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
index c138707f3c0696b5980da65157763f8f965232df..9ada2a3888671398dcb27d848599616e43f038dd 100644
--- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
+++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -7,7 +7,7 @@ ERROR: 2 compilation errors.  No code generated.
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:13  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:13    Function Parameters: 
 0:?     Sequence
 0:16      Sequence
@@ -60,7 +60,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:13  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:13    Function Parameters: 
 0:?     Sequence
 0:16      Sequence
diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out
index 5c8f21762ebdc48cea0c5957b8055094355aefe3..d29cdb1bab329d5d5ae0cb9d6455f7e817623840 100755
--- a/Test/baseResults/hlsl.if.frag.out
+++ b/Test/baseResults/hlsl.if.frag.out
@@ -2,7 +2,7 @@ hlsl.if.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:34  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -101,7 +101,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:34  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out
index 61a63a4144903988d6b798a11d3e3667fbff9252..65dae396b04ff2a0b5e8ae93b9539d846cea9e36 100755
--- a/Test/baseResults/hlsl.init.frag.out
+++ b/Test/baseResults/hlsl.init.frag.out
@@ -78,7 +78,7 @@ gl_FragCoord origin is upper left
 0:18      Constant:
 0:18        4 (const uint)
 0:18        5 (const uint)
-0:37  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:21  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:21    Function Parameters: 
 0:21      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -234,7 +234,7 @@ gl_FragCoord origin is upper left
 0:18      Constant:
 0:18        4 (const uint)
 0:18        5 (const uint)
-0:37  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:21  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:21    Function Parameters: 
 0:21      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out
index 6fed4767a71cb791df674c0325a5c7f003fa5ec8..d3721ec0e8108b937d2664e20fa8505401216462 100644
--- a/Test/baseResults/hlsl.init2.frag.out
+++ b/Test/baseResults/hlsl.init2.frag.out
@@ -2,7 +2,7 @@ hlsl.init2.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:23  Function Definition: Test1( (global void)
+0:3  Function Definition: Test1( (global void)
 0:3    Function Parameters: 
 0:?     Sequence
 0:5      Sequence
@@ -29,7 +29,7 @@ gl_FragCoord origin is upper left
 0:20            8.000000
 0:20            9.000000
 0:20            10.000000
-0:33  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:26  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:26    Function Parameters: 
 0:?     Sequence
 0:27      Function Call: Test1( (global void)
@@ -57,7 +57,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:23  Function Definition: Test1( (global void)
+0:3  Function Definition: Test1( (global void)
 0:3    Function Parameters: 
 0:?     Sequence
 0:5      Sequence
@@ -84,7 +84,7 @@ gl_FragCoord origin is upper left
 0:20            8.000000
 0:20            9.000000
 0:20            10.000000
-0:33  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:26  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:26    Function Parameters: 
 0:?     Sequence
 0:27      Function Call: Test1( (global void)
diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out
index c396c8fdf1008982e2f272e900d3e24c3ffd705f..175dd0cd1c12c5706009990a549b547bb5560fe9 100644
--- a/Test/baseResults/hlsl.inoutquals.frag.out
+++ b/Test/baseResults/hlsl.inoutquals.frag.out
@@ -2,7 +2,7 @@ hlsl.inoutquals.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: MyFunc(f1;f1;f1; (global void)
+0:8  Function Definition: MyFunc(f1;f1;f1; (global void)
 0:8    Function Parameters: 
 0:8      'x' (in float)
 0:8      'y' (out float)
@@ -18,7 +18,7 @@ gl_FragCoord origin is upper left
 0:11        'x' (in float)
 0:11        Constant:
 0:11          -1.000000
-0:26  Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:15  Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:15    Function Parameters: 
 0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
 0:?     Sequence
@@ -69,7 +69,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: MyFunc(f1;f1;f1; (global void)
+0:8  Function Definition: MyFunc(f1;f1;f1; (global void)
 0:8    Function Parameters: 
 0:8      'x' (in float)
 0:8      'y' (out float)
@@ -85,7 +85,7 @@ gl_FragCoord origin is upper left
 0:11        'x' (in float)
 0:11        Constant:
 0:11          -1.000000
-0:26  Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:15  Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:15    Function Parameters: 
 0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out
index 9178ddcdee01379dc049b0973703bd18c4d43926..3a1342c7f3d7ab70b0cab6bdf9d1888b6bff5e66 100644
--- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:14  Function Definition: ComputeShaderFunction( (global float)
+0:3  Function Definition: ComputeShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      MemoryBarrier (global void)
@@ -26,7 +26,7 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:14  Function Definition: ComputeShaderFunction( (global float)
+0:3  Function Definition: ComputeShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      MemoryBarrier (global void)
diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out
index fa1d8343a420cc03d30bfabbc4d9f350ce0dfca9..62337a998ebba4602e9bbbbdac5f2aa8815660fa 100644
--- a/Test/baseResults/hlsl.intrinsics.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.comp.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.comp
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:44  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float)
+0:17  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -74,7 +74,7 @@ local_size = (1, 1, 1)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:50  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
+0:45  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 1-component vector of float)
 0:45      'inF1' (in 1-component vector of float)
@@ -83,7 +83,7 @@ local_size = (1, 1, 1)
 0:47      Branch: Return with expression
 0:47        Constant:
 0:47          0.000000
-0:77  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
+0:51  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:51    Function Parameters: 
 0:51      'inF0' (in 2-component vector of float)
 0:51      'inF1' (in 2-component vector of float)
@@ -156,7 +156,7 @@ local_size = (1, 1, 1)
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:104  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:78  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:78    Function Parameters: 
 0:78      'inF0' (in 3-component vector of float)
 0:78      'inF1' (in 3-component vector of float)
@@ -230,7 +230,7 @@ local_size = (1, 1, 1)
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:105  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:105    Function Parameters: 
 0:105      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:105      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -329,7 +329,7 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:44  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float)
+0:17  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -401,7 +401,7 @@ local_size = (1, 1, 1)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:50  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
+0:45  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 1-component vector of float)
 0:45      'inF1' (in 1-component vector of float)
@@ -410,7 +410,7 @@ local_size = (1, 1, 1)
 0:47      Branch: Return with expression
 0:47        Constant:
 0:47          0.000000
-0:77  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
+0:51  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:51    Function Parameters: 
 0:51      'inF0' (in 2-component vector of float)
 0:51      'inF1' (in 2-component vector of float)
@@ -483,7 +483,7 @@ local_size = (1, 1, 1)
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:104  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:78  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:78    Function Parameters: 
 0:78      'inF0' (in 3-component vector of float)
 0:78      'inF1' (in 3-component vector of float)
@@ -557,7 +557,7 @@ local_size = (1, 1, 1)
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:105  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:105    Function Parameters: 
 0:105      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:105      'inF1' (layout(location=1 ) in 4-component vector of float)
diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out
index 07317af498e1f09911aaab79fc584dc6266f2ec3..c6a812cfd199276277c74973c8ad511dc5272c3e 100644
--- a/Test/baseResults/hlsl.intrinsics.double.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.double.frag.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.double.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
+0:5  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
 0:5    Function Parameters: 
 0:5      'inDV1a' (layout(location=0 ) in double)
 0:5      'inDV1b' (layout(location=1 ) in double)
@@ -42,7 +42,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
+0:5  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
 0:5    Function Parameters: 
 0:5      'inDV1a' (layout(location=0 ) in double)
 0:5      'inDV1b' (layout(location=1 ) in double)
diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
index 818c89c4d7a5e4ea39efe0df5c41722471728b7f..4b3b58d6cb617a623ad36d6b48a74086a27cd60a 100644
--- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.evalfns.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
+0:3  Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
 0:3    Function Parameters: 
 0:3      'inF1' (layout(location=0 ) in float)
 0:3      'inF2' (layout(location=1 ) in 2-component vector of float)
@@ -52,7 +52,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
+0:3  Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
 0:3    Function Parameters: 
 0:3      'inF1' (layout(location=0 ) in float)
 0:3      'inF2' (layout(location=1 ) in 2-component vector of float)
diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out
index 9eefd5ff568d725ae066f6015a1b68c31324f7a3..85e38391b1d6fc9e358288e474aca7c5eaabd745 100644
--- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out
@@ -9,7 +9,7 @@ ERROR: 4 compilation errors.  No code generated.
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:8  Function Definition: PixelShaderFunctionS(f1; (global float)
+0:2  Function Definition: PixelShaderFunctionS(f1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:?     Sequence
@@ -19,14 +19,14 @@ ERROR: node is still EOpNull!
 0:5      Branch: Return with expression
 0:5        Constant:
 0:5          0.000000
-0:14  Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
+0:9  Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inF0' (in 1-component vector of float)
 0:?     Sequence
 0:11      Branch: Return with expression
 0:11        Constant:
 0:11          0.000000
-0:21  Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
+0:15  Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
 0:15    Function Parameters: 
 0:15      'inF0' (in 2-component vector of float)
 0:?     Sequence
@@ -37,7 +37,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:28  Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
+0:22  Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
 0:22    Function Parameters: 
 0:22      'inF0' (in 3-component vector of float)
 0:?     Sequence
@@ -49,7 +49,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:35  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:29  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:29    Function Parameters: 
 0:29      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -74,7 +74,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:8  Function Definition: PixelShaderFunctionS(f1; (global float)
+0:2  Function Definition: PixelShaderFunctionS(f1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:?     Sequence
@@ -84,14 +84,14 @@ ERROR: node is still EOpNull!
 0:5      Branch: Return with expression
 0:5        Constant:
 0:5          0.000000
-0:14  Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
+0:9  Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inF0' (in 1-component vector of float)
 0:?     Sequence
 0:11      Branch: Return with expression
 0:11        Constant:
 0:11          0.000000
-0:21  Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
+0:15  Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
 0:15    Function Parameters: 
 0:15      'inF0' (in 2-component vector of float)
 0:?     Sequence
@@ -102,7 +102,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:28  Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
+0:22  Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
 0:22    Function Parameters: 
 0:22      'inF0' (in 3-component vector of float)
 0:?     Sequence
@@ -114,7 +114,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:35  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:29  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:29    Function Parameters: 
 0:29      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index 8bf2e283ea4c6caab0c7363a3fbcdc800ebaa6fe..ba3cb5372ebac0533df865ad206cb7638d28b0d7 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:88  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float)
+0:17  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -339,7 +339,7 @@ gl_FragCoord origin is upper left
 0:85      Branch: Return with expression
 0:85        Constant:
 0:85          0.000000
-0:94  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
+0:89  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:89    Function Parameters: 
 0:89      'inF0' (in 1-component vector of float)
 0:89      'inF1' (in 1-component vector of float)
@@ -348,7 +348,7 @@ gl_FragCoord origin is upper left
 0:91      Branch: Return with expression
 0:91        Constant:
 0:91          0.000000
-0:177  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
+0:95  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:95    Function Parameters: 
 0:95      'inF0' (in 2-component vector of float)
 0:95      'inF1' (in 2-component vector of float)
@@ -733,7 +733,7 @@ gl_FragCoord origin is upper left
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:259  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:178  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:178    Function Parameters: 
 0:178      'inF0' (in 3-component vector of float)
 0:178      'inF1' (in 3-component vector of float)
@@ -1138,7 +1138,7 @@ gl_FragCoord origin is upper left
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:400  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:260  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:260    Function Parameters: 
 0:260      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:260      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -1561,7 +1561,7 @@ gl_FragCoord origin is upper left
 0:?             3.000000
 0:?             4.000000
 0:337        Branch: Return
-0:409  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:401  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:401    Function Parameters: 
 0:401      'inF0' (in 2X2 matrix of float)
 0:401      'inF1' (in 2X2 matrix of float)
@@ -1849,7 +1849,7 @@ gl_FragCoord origin is upper left
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:418  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:410  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:410    Function Parameters: 
 0:410      'inF0' (in 3X3 matrix of float)
 0:410      'inF1' (in 3X3 matrix of float)
@@ -2147,7 +2147,7 @@ gl_FragCoord origin is upper left
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:439  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:419  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:419    Function Parameters: 
 0:419      'inF0' (in 4X4 matrix of float)
 0:419      'inF1' (in 4X4 matrix of float)
@@ -2459,7 +2459,7 @@ gl_FragCoord origin is upper left
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:446  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
+0:442  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:442    Function Parameters: 
 0:442      'inF0' (in float)
 0:442      'inF1' (in float)
@@ -2522,7 +2522,7 @@ gl_FragCoord origin is upper left
 0:443          matrix-multiply (temp 2X2 matrix of float)
 0:443            'inFM0' (in 2X2 matrix of float)
 0:443            'inFM1' (in 2X2 matrix of float)
-0:453  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
+0:449  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:449    Function Parameters: 
 0:449      'inF0' (in float)
 0:449      'inF1' (in float)
@@ -2585,7 +2585,7 @@ gl_FragCoord origin is upper left
 0:450          matrix-multiply (temp 3X3 matrix of float)
 0:450            'inFM0' (in 3X3 matrix of float)
 0:450            'inFM1' (in 3X3 matrix of float)
-0:461  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
+0:456  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:456    Function Parameters: 
 0:456      'inF0' (in float)
 0:456      'inF1' (in float)
@@ -2648,7 +2648,7 @@ gl_FragCoord origin is upper left
 0:457          matrix-multiply (temp 4X4 matrix of float)
 0:457            'inFM0' (in 4X4 matrix of float)
 0:457            'inFM1' (in 4X4 matrix of float)
-0:485  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
+0:466  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:466    Function Parameters: 
 0:466      'inF0' (in float)
 0:466      'inF1' (in float)
@@ -2783,7 +2783,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:88  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float)
+0:17  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -3120,7 +3120,7 @@ gl_FragCoord origin is upper left
 0:85      Branch: Return with expression
 0:85        Constant:
 0:85          0.000000
-0:94  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
+0:89  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:89    Function Parameters: 
 0:89      'inF0' (in 1-component vector of float)
 0:89      'inF1' (in 1-component vector of float)
@@ -3129,7 +3129,7 @@ gl_FragCoord origin is upper left
 0:91      Branch: Return with expression
 0:91        Constant:
 0:91          0.000000
-0:177  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
+0:95  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:95    Function Parameters: 
 0:95      'inF0' (in 2-component vector of float)
 0:95      'inF1' (in 2-component vector of float)
@@ -3514,7 +3514,7 @@ gl_FragCoord origin is upper left
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:259  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:178  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:178    Function Parameters: 
 0:178      'inF0' (in 3-component vector of float)
 0:178      'inF1' (in 3-component vector of float)
@@ -3919,7 +3919,7 @@ gl_FragCoord origin is upper left
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:400  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:260  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:260    Function Parameters: 
 0:260      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:260      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -4342,7 +4342,7 @@ gl_FragCoord origin is upper left
 0:?             3.000000
 0:?             4.000000
 0:337        Branch: Return
-0:409  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:401  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:401    Function Parameters: 
 0:401      'inF0' (in 2X2 matrix of float)
 0:401      'inF1' (in 2X2 matrix of float)
@@ -4630,7 +4630,7 @@ gl_FragCoord origin is upper left
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:418  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:410  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:410    Function Parameters: 
 0:410      'inF0' (in 3X3 matrix of float)
 0:410      'inF1' (in 3X3 matrix of float)
@@ -4928,7 +4928,7 @@ gl_FragCoord origin is upper left
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:439  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:419  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:419    Function Parameters: 
 0:419      'inF0' (in 4X4 matrix of float)
 0:419      'inF1' (in 4X4 matrix of float)
@@ -5240,7 +5240,7 @@ gl_FragCoord origin is upper left
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:446  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
+0:442  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:442    Function Parameters: 
 0:442      'inF0' (in float)
 0:442      'inF1' (in float)
@@ -5303,7 +5303,7 @@ gl_FragCoord origin is upper left
 0:443          matrix-multiply (temp 2X2 matrix of float)
 0:443            'inFM0' (in 2X2 matrix of float)
 0:443            'inFM1' (in 2X2 matrix of float)
-0:453  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
+0:449  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:449    Function Parameters: 
 0:449      'inF0' (in float)
 0:449      'inF1' (in float)
@@ -5366,7 +5366,7 @@ gl_FragCoord origin is upper left
 0:450          matrix-multiply (temp 3X3 matrix of float)
 0:450            'inFM0' (in 3X3 matrix of float)
 0:450            'inFM1' (in 3X3 matrix of float)
-0:461  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
+0:456  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:456    Function Parameters: 
 0:456      'inF0' (in float)
 0:456      'inF1' (in float)
@@ -5429,7 +5429,7 @@ gl_FragCoord origin is upper left
 0:457          matrix-multiply (temp 4X4 matrix of float)
 0:457            'inFM0' (in 4X4 matrix of float)
 0:457            'inFM1' (in 4X4 matrix of float)
-0:485  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
+0:466  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:466    Function Parameters: 
 0:466      'inF0' (in float)
 0:466      'inF1' (in float)
diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out
index 12e5919f86583805a03f898600d3ff79ba090710..506f6147878a219d162653733d7eff7906b23d07 100644
--- a/Test/baseResults/hlsl.intrinsics.lit.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.lit.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
+0:2  Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
 0:2    Function Parameters: 
 0:2      'n_dot_l' (layout(location=0 ) in float)
 0:2      'n_dot_h' (layout(location=1 ) in float)
@@ -44,7 +44,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
+0:2  Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
 0:2    Function Parameters: 
 0:2      'n_dot_l' (layout(location=0 ) in float)
 0:2      'n_dot_h' (layout(location=1 ) in float)
diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out
index 75f8d685338ee3bee84c2db2fed29e477d0c8af4..d8ca8b07ef42bf44d8f0f5bb0a6600b4d0b8a9da 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out
@@ -2,7 +2,7 @@ hlsl.intrinsics.negative.comp
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:56  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
+0:2  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -12,7 +12,7 @@ local_size = (1, 1, 1)
 0:53      Branch: Return with expression
 0:53        Constant:
 0:53          0.000000
-0:65  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
+0:57  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:57    Function Parameters: 
 0:57      'inF0' (in 1-component vector of float)
 0:57      'inF1' (in 1-component vector of float)
@@ -22,7 +22,7 @@ local_size = (1, 1, 1)
 0:62      Branch: Return with expression
 0:62        Constant:
 0:62          0.000000
-0:112  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
+0:66  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:66    Function Parameters: 
 0:66      'inF0' (in 2-component vector of float)
 0:66      'inF1' (in 2-component vector of float)
@@ -33,7 +33,7 @@ local_size = (1, 1, 1)
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:157  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
+0:113  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:113    Function Parameters: 
 0:113      'inF0' (in 3-component vector of float)
 0:113      'inF1' (in 3-component vector of float)
@@ -45,7 +45,7 @@ local_size = (1, 1, 1)
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:202  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
+0:158  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:158    Function Parameters: 
 0:158      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:158      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -70,7 +70,7 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:56  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
+0:2  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -80,7 +80,7 @@ local_size = (1, 1, 1)
 0:53      Branch: Return with expression
 0:53        Constant:
 0:53          0.000000
-0:65  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
+0:57  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:57    Function Parameters: 
 0:57      'inF0' (in 1-component vector of float)
 0:57      'inF1' (in 1-component vector of float)
@@ -90,7 +90,7 @@ local_size = (1, 1, 1)
 0:62      Branch: Return with expression
 0:62        Constant:
 0:62          0.000000
-0:112  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
+0:66  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:66    Function Parameters: 
 0:66      'inF0' (in 2-component vector of float)
 0:66      'inF1' (in 2-component vector of float)
@@ -101,7 +101,7 @@ local_size = (1, 1, 1)
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:157  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
+0:113  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:113    Function Parameters: 
 0:113      'inF0' (in 3-component vector of float)
 0:113      'inF1' (in 3-component vector of float)
@@ -113,7 +113,7 @@ local_size = (1, 1, 1)
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:202  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
+0:158  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:158    Function Parameters: 
 0:158      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:158      'inF1' (layout(location=1 ) in 4-component vector of float)
diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out
index 95a3021269b7c41dbaa0634244020460587466fd..ff8775a36df059632c6bfcdabf3315cf02087d09 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out
@@ -65,7 +65,7 @@ ERROR: 60 compilation errors.  No code generated.
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:35  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
+0:2  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -142,7 +142,7 @@ ERROR: node is still EOpNull!
 0:32      Branch: Return with expression
 0:32        Constant:
 0:32          0.000000
-0:44  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
+0:36  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:36    Function Parameters: 
 0:36      'inF0' (in 1-component vector of float)
 0:36      'inF1' (in 1-component vector of float)
@@ -154,7 +154,7 @@ ERROR: node is still EOpNull!
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:62  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
+0:45  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 2-component vector of float)
 0:45      'inF1' (in 2-component vector of float)
@@ -197,7 +197,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:79  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
+0:63  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:63    Function Parameters: 
 0:63      'inF0' (in 3-component vector of float)
 0:63      'inF1' (in 3-component vector of float)
@@ -233,7 +233,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:114  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
+0:80  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:80    Function Parameters: 
 0:80      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:80      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -276,7 +276,7 @@ ERROR: node is still EOpNull!
 0:?             3.000000
 0:?             4.000000
 0:92        Branch: Return
-0:122  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:115  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:115    Function Parameters: 
 0:115      'inF0' (in 2X2 matrix of float)
 0:115      'inF1' (in 2X2 matrix of float)
@@ -314,7 +314,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:130  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:123  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:123    Function Parameters: 
 0:123      'inF0' (in 3X3 matrix of float)
 0:123      'inF1' (in 3X3 matrix of float)
@@ -357,7 +357,7 @@ ERROR: node is still EOpNull!
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:137  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:131  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 4X4 matrix of float)
 0:131      'inF1' (in 4X4 matrix of float)
@@ -416,7 +416,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:35  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
+0:2  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -493,7 +493,7 @@ ERROR: node is still EOpNull!
 0:32      Branch: Return with expression
 0:32        Constant:
 0:32          0.000000
-0:44  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
+0:36  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:36    Function Parameters: 
 0:36      'inF0' (in 1-component vector of float)
 0:36      'inF1' (in 1-component vector of float)
@@ -505,7 +505,7 @@ ERROR: node is still EOpNull!
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:62  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
+0:45  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 2-component vector of float)
 0:45      'inF1' (in 2-component vector of float)
@@ -548,7 +548,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:79  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
+0:63  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:63    Function Parameters: 
 0:63      'inF0' (in 3-component vector of float)
 0:63      'inF1' (in 3-component vector of float)
@@ -584,7 +584,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:114  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
+0:80  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:80    Function Parameters: 
 0:80      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:80      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -627,7 +627,7 @@ ERROR: node is still EOpNull!
 0:?             3.000000
 0:?             4.000000
 0:92        Branch: Return
-0:122  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:115  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:115    Function Parameters: 
 0:115      'inF0' (in 2X2 matrix of float)
 0:115      'inF1' (in 2X2 matrix of float)
@@ -665,7 +665,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:130  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:123  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:123    Function Parameters: 
 0:123      'inF0' (in 3X3 matrix of float)
 0:123      'inF1' (in 3X3 matrix of float)
@@ -708,7 +708,7 @@ ERROR: node is still EOpNull!
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:137  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:131  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 4X4 matrix of float)
 0:131      'inF1' (in 4X4 matrix of float)
diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out
index c3165e74e3ed6c51a7922031582cc50ce4038bf6..364a3eb0a5d5ea2c82998034ec9819193dc1ab23 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out
@@ -1,7 +1,7 @@
 hlsl.intrinsics.negative.vert
 Shader version: 450
 0:? Sequence
-0:74  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float)
+0:15  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float)
 0:15    Function Parameters: 
 0:15      'inF0' (in float)
 0:15      'inF1' (in float)
@@ -11,7 +11,7 @@ Shader version: 450
 0:71      Branch: Return with expression
 0:71        Constant:
 0:71          0.000000
-0:83  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
+0:75  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:75    Function Parameters: 
 0:75      'inF0' (in 1-component vector of float)
 0:75      'inF1' (in 1-component vector of float)
@@ -21,7 +21,7 @@ Shader version: 450
 0:80      Branch: Return with expression
 0:80        Constant:
 0:80          0.000000
-0:130  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
+0:84  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:84    Function Parameters: 
 0:84      'inF0' (in 2-component vector of float)
 0:84      'inF1' (in 2-component vector of float)
@@ -32,7 +32,7 @@ Shader version: 450
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:175  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
+0:131  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 3-component vector of float)
 0:131      'inF1' (in 3-component vector of float)
@@ -44,7 +44,7 @@ Shader version: 450
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:225  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
+0:176  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:176    Function Parameters: 
 0:176      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:176      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -60,7 +60,7 @@ Shader version: 450
 0:?             3.000000
 0:?             4.000000
 0:217        Branch: Return
-0:233  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:226  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:226    Function Parameters: 
 0:226      'inF0' (in 2X2 matrix of float)
 0:226      'inF1' (in 2X2 matrix of float)
@@ -72,7 +72,7 @@ Shader version: 450
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:241  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:234  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:234    Function Parameters: 
 0:234      'inF0' (in 3X3 matrix of float)
 0:234      'inF1' (in 3X3 matrix of float)
@@ -89,7 +89,7 @@ Shader version: 450
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:248  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:242  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:242    Function Parameters: 
 0:242      'inF0' (in 4X4 matrix of float)
 0:242      'inF1' (in 4X4 matrix of float)
@@ -133,7 +133,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:74  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float)
+0:15  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float)
 0:15    Function Parameters: 
 0:15      'inF0' (in float)
 0:15      'inF1' (in float)
@@ -143,7 +143,7 @@ Shader version: 450
 0:71      Branch: Return with expression
 0:71        Constant:
 0:71          0.000000
-0:83  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
+0:75  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:75    Function Parameters: 
 0:75      'inF0' (in 1-component vector of float)
 0:75      'inF1' (in 1-component vector of float)
@@ -153,7 +153,7 @@ Shader version: 450
 0:80      Branch: Return with expression
 0:80        Constant:
 0:80          0.000000
-0:130  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
+0:84  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:84    Function Parameters: 
 0:84      'inF0' (in 2-component vector of float)
 0:84      'inF1' (in 2-component vector of float)
@@ -164,7 +164,7 @@ Shader version: 450
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:175  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
+0:131  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 3-component vector of float)
 0:131      'inF1' (in 3-component vector of float)
@@ -176,7 +176,7 @@ Shader version: 450
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:225  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
+0:176  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:176    Function Parameters: 
 0:176      'inF0' (layout(location=0 ) in 4-component vector of float)
 0:176      'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -192,7 +192,7 @@ Shader version: 450
 0:?             3.000000
 0:?             4.000000
 0:217        Branch: Return
-0:233  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:226  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:226    Function Parameters: 
 0:226      'inF0' (in 2X2 matrix of float)
 0:226      'inF1' (in 2X2 matrix of float)
@@ -204,7 +204,7 @@ Shader version: 450
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:241  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:234  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:234    Function Parameters: 
 0:234      'inF0' (in 3X3 matrix of float)
 0:234      'inF1' (in 3X3 matrix of float)
@@ -221,7 +221,7 @@ Shader version: 450
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:248  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:242  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:242    Function Parameters: 
 0:242      'inF0' (in 4X4 matrix of float)
 0:242      'inF1' (in 4X4 matrix of float)
diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out
index 7f9ee7d7880b336d4bf7fda2d895d03a8ebdf555..8368e2678d3821f0792d41b522f019b66d877c72 100644
--- a/Test/baseResults/hlsl.intrinsics.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.vert.out
@@ -1,7 +1,7 @@
 hlsl.intrinsics.vert
 Shader version: 450
 0:? Sequence
-0:63  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float)
+0:2  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -142,7 +142,7 @@ Shader version: 450
 0:60      Branch: Return with expression
 0:60        Constant:
 0:60          0.000000
-0:69  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
+0:64  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:64    Function Parameters: 
 0:64      'inF0' (in 1-component vector of float)
 0:64      'inF1' (in 1-component vector of float)
@@ -151,7 +151,7 @@ Shader version: 450
 0:66      Branch: Return with expression
 0:66        Constant:
 0:66          0.000000
-0:139  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
+0:70  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:70    Function Parameters: 
 0:70      'inF0' (in 2-component vector of float)
 0:70      'inF1' (in 2-component vector of float)
@@ -317,7 +317,7 @@ Shader version: 450
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:210  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:140  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:140    Function Parameters: 
 0:140      'inF0' (in 3-component vector of float)
 0:140      'inF1' (in 3-component vector of float)
@@ -489,7 +489,7 @@ Shader version: 450
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:335  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:211  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:211    Function Parameters: 
 0:211      'inF0' (in 4-component vector of float)
 0:211      'inF1' (in 4-component vector of float)
@@ -681,7 +681,7 @@ Shader version: 450
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:344  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:336  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:336    Function Parameters: 
 0:336      'inF0' (in 2X2 matrix of float)
 0:336      'inF1' (in 2X2 matrix of float)
@@ -811,7 +811,7 @@ Shader version: 450
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:353  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:345  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:345    Function Parameters: 
 0:345      'inF0' (in 3X3 matrix of float)
 0:345      'inF1' (in 3X3 matrix of float)
@@ -946,7 +946,7 @@ Shader version: 450
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:374  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:354  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:354    Function Parameters: 
 0:354      'inF0' (in 4X4 matrix of float)
 0:354      'inF1' (in 4X4 matrix of float)
@@ -1088,7 +1088,7 @@ Shader version: 450
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:381  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
+0:377  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:377    Function Parameters: 
 0:377      'inF0' (in float)
 0:377      'inF1' (in float)
@@ -1151,7 +1151,7 @@ Shader version: 450
 0:378          matrix-multiply (temp 2X2 matrix of float)
 0:378            'inFM0' (in 2X2 matrix of float)
 0:378            'inFM1' (in 2X2 matrix of float)
-0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
+0:384  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:384    Function Parameters: 
 0:384      'inF0' (in float)
 0:384      'inF1' (in float)
@@ -1214,7 +1214,7 @@ Shader version: 450
 0:385          matrix-multiply (temp 3X3 matrix of float)
 0:385            'inFM0' (in 3X3 matrix of float)
 0:385            'inFM1' (in 3X3 matrix of float)
-0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
+0:391  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:391    Function Parameters: 
 0:391      'inF0' (in float)
 0:391      'inF1' (in float)
@@ -1277,7 +1277,7 @@ Shader version: 450
 0:392          matrix-multiply (temp 4X4 matrix of float)
 0:392            'inFM0' (in 4X4 matrix of float)
 0:392            'inFM1' (in 4X4 matrix of float)
-0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
+0:401  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:401    Function Parameters: 
 0:401      'inF0' (in float)
 0:401      'inF1' (in float)
@@ -1399,7 +1399,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:63  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float)
+0:2  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -1540,7 +1540,7 @@ Shader version: 450
 0:60      Branch: Return with expression
 0:60        Constant:
 0:60          0.000000
-0:69  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
+0:64  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:64    Function Parameters: 
 0:64      'inF0' (in 1-component vector of float)
 0:64      'inF1' (in 1-component vector of float)
@@ -1549,7 +1549,7 @@ Shader version: 450
 0:66      Branch: Return with expression
 0:66        Constant:
 0:66          0.000000
-0:139  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
+0:70  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:70    Function Parameters: 
 0:70      'inF0' (in 2-component vector of float)
 0:70      'inF1' (in 2-component vector of float)
@@ -1715,7 +1715,7 @@ Shader version: 450
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:210  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:140  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:140    Function Parameters: 
 0:140      'inF0' (in 3-component vector of float)
 0:140      'inF1' (in 3-component vector of float)
@@ -1887,7 +1887,7 @@ Shader version: 450
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:335  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:211  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:211    Function Parameters: 
 0:211      'inF0' (in 4-component vector of float)
 0:211      'inF1' (in 4-component vector of float)
@@ -2079,7 +2079,7 @@ Shader version: 450
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:344  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:336  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:336    Function Parameters: 
 0:336      'inF0' (in 2X2 matrix of float)
 0:336      'inF1' (in 2X2 matrix of float)
@@ -2209,7 +2209,7 @@ Shader version: 450
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:353  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:345  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:345    Function Parameters: 
 0:345      'inF0' (in 3X3 matrix of float)
 0:345      'inF1' (in 3X3 matrix of float)
@@ -2344,7 +2344,7 @@ Shader version: 450
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:374  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:354  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:354    Function Parameters: 
 0:354      'inF0' (in 4X4 matrix of float)
 0:354      'inF1' (in 4X4 matrix of float)
@@ -2486,7 +2486,7 @@ Shader version: 450
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:381  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
+0:377  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:377    Function Parameters: 
 0:377      'inF0' (in float)
 0:377      'inF1' (in float)
@@ -2549,7 +2549,7 @@ Shader version: 450
 0:378          matrix-multiply (temp 2X2 matrix of float)
 0:378            'inFM0' (in 2X2 matrix of float)
 0:378            'inFM1' (in 2X2 matrix of float)
-0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
+0:384  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:384    Function Parameters: 
 0:384      'inF0' (in float)
 0:384      'inF1' (in float)
@@ -2612,7 +2612,7 @@ Shader version: 450
 0:385          matrix-multiply (temp 3X3 matrix of float)
 0:385            'inFM0' (in 3X3 matrix of float)
 0:385            'inFM1' (in 3X3 matrix of float)
-0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
+0:391  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:391    Function Parameters: 
 0:391      'inF0' (in float)
 0:391      'inF1' (in float)
@@ -2675,7 +2675,7 @@ Shader version: 450
 0:392          matrix-multiply (temp 4X4 matrix of float)
 0:392            'inFM0' (in 4X4 matrix of float)
 0:392            'inFM1' (in 4X4 matrix of float)
-0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
+0:401  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:401    Function Parameters: 
 0:401      'inF0' (in float)
 0:401      'inF1' (in float)
diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out
index 58b4100d8d0a795fca4f12ded0735aafe27e95e3..0aacbd7615e5ba29f8f2f4c56b5590676bbc1c39 100755
--- a/Test/baseResults/hlsl.layout.frag.out
+++ b/Test/baseResults/hlsl.layout.frag.out
@@ -2,7 +2,7 @@ hlsl.layout.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:15  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:12  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:12    Function Parameters: 
 0:12      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -31,7 +31,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:15  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:12  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:12    Function Parameters: 
 0:12      'input' (in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index f8b930cb37a55110d311be706d0476f5af4aec9c..49c9acd5dba001e52d802efa57da360e354d400a 100644
--- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.load.2dms.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:57  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:32      textureFetch (global 4-component vector of float)
@@ -117,7 +117,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:57  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:32      textureFetch (global 4-component vector of float)
diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out
index a9280b4c1fe1727789791505f7adb780a676f648..28c5e043699f38b7e30822c5147acec1d9379230 100644
--- a/Test/baseResults/hlsl.load.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.load.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:72  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetch (global 4-component vector of float)
@@ -150,7 +150,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:72  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetch (global 4-component vector of float)
diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out
index 8146577002fad6588307854e5dd4a0c92d146d69..48860594d869797361d1d703d7f9f1e95df64a10 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.load.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:77  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetch (global 4-component vector of float)
@@ -183,7 +183,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:77  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetch (global 4-component vector of float)
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
index 8cae6d41f5e320e064f420beddfd53dc9d7bde80..73fc756d6a518f0cc2c2cd68207d2d9e5d9a6c2a 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -1,7 +1,7 @@
 hlsl.load.basic.dx10.vert
 Shader version: 450
 0:? Sequence
-0:71  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:47  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:47    Function Parameters: 
 0:?     Sequence
 0:51      textureFetch (global 4-component vector of float)
@@ -174,7 +174,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:71  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:47  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:47    Function Parameters: 
 0:?     Sequence
 0:51      textureFetch (global 4-component vector of float)
diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
index 9e14aef0413d9a78c14d47e43a83abb142891f9d..64c14bc082a92c4d7af8a25f506d5ea1211c008c 100644
--- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.load.buffer.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:39  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:28      Sequence
@@ -66,7 +66,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:39  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:28      Sequence
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
index 7f32c688eec24869eb7af12ac6a627dd3dd514b6..317ff0987bad608f1afcb441814f96fdc95f27de 100644
--- a/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.load.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:77  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetchOffset (global 4-component vector of float)
@@ -192,7 +192,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:77  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetchOffset (global 4-component vector of float)
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index 1997d3dfa92665e573fea11700cc9096bc413c16..6feae5d21ca73c4b457ac88cc7f975cb73bc968b 100644
--- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.load.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:70  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetchOffset (global 4-component vector of float)
@@ -156,7 +156,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:70  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:48    Function Parameters: 
 0:?     Sequence
 0:52      textureFetchOffset (global 4-component vector of float)
diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out
index a1a6d49264e959a22f18fee3e83fe06d89369b79..2159a814e7daa303d85262a070f1e4eaada98961 100755
--- a/Test/baseResults/hlsl.matType.frag.out
+++ b/Test/baseResults/hlsl.matType.frag.out
@@ -7,7 +7,7 @@ gl_FragCoord origin is upper left
 0:1      'f1' (global 1-component vector of float)
 0:1      Constant:
 0:1        1.000000
-0:11  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
+0:9  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inFloat1' (in 1-component vector of float)
 0:9      'inScalar' (in float)
@@ -31,7 +31,7 @@ gl_FragCoord origin is upper left
 0:1      'f1' (global 1-component vector of float)
 0:1      Constant:
 0:1        1.000000
-0:11  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
+0:9  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inFloat1' (in 1-component vector of float)
 0:9      'inScalar' (in float)
diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out
index 2fe397a6dfd47695a39016df87bdca4084eacd1c..51759586aea3e3c9bb813611ad6a466c40e9b5bc 100755
--- a/Test/baseResults/hlsl.max.frag.out
+++ b/Test/baseResults/hlsl.max.frag.out
@@ -2,7 +2,7 @@ hlsl.max.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input1' (layout(location=0 ) in 4-component vector of float)
 0:2      'input2' (layout(location=1 ) in 4-component vector of float)
@@ -23,7 +23,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input1' (layout(location=0 ) in 4-component vector of float)
 0:2      'input2' (layout(location=1 ) in 4-component vector of float)
diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out
index ea6c4dd68e7720df2ee53f145ad03d5ffda80964..b48967fa9b23ce5ca0077ea0aed33e75c7534298 100644
--- a/Test/baseResults/hlsl.numericsuffixes.frag.out
+++ b/Test/baseResults/hlsl.numericsuffixes.frag.out
@@ -2,7 +2,7 @@ hlsl.numericsuffixes.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:21  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:5  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:5    Function Parameters: 
 0:?     Sequence
 0:7      Sequence
@@ -72,7 +72,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:21  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:5  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:5    Function Parameters: 
 0:?     Sequence
 0:7      Sequence
diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out
index 15123182573300b369b8418758dfe655ec1d9282..201d08461be667c0a8382c09266696bcd433c1b8 100755
--- a/Test/baseResults/hlsl.overload.frag.out
+++ b/Test/baseResults/hlsl.overload.frag.out
@@ -2,113 +2,113 @@ hlsl.overload.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:3  Function Definition: foo1(d1;b1; (global void)
+0:2  Function Definition: foo1(d1;b1; (global void)
 0:2    Function Parameters: 
 0:2      'a' (in double)
 0:2      'b' (in bool)
-0:4  Function Definition: foo1(d1;u1; (global void)
+0:3  Function Definition: foo1(d1;u1; (global void)
 0:3    Function Parameters: 
 0:3      'a' (in double)
 0:3      'b' (in uint)
-0:5  Function Definition: foo1(d1;i1; (global void)
+0:4  Function Definition: foo1(d1;i1; (global void)
 0:4    Function Parameters: 
 0:4      'a' (in double)
 0:4      'b' (in int)
-0:6  Function Definition: foo1(d1;f1; (global void)
+0:5  Function Definition: foo1(d1;f1; (global void)
 0:5    Function Parameters: 
 0:5      'a' (in double)
 0:5      'b' (in float)
-0:9  Function Definition: foo1(d1;d1; (global void)
+0:6  Function Definition: foo1(d1;d1; (global void)
 0:6    Function Parameters: 
 0:6      'a' (in double)
 0:6      'b' (in double)
-0:10  Function Definition: foo2(i1;b1; (global void)
+0:9  Function Definition: foo2(i1;b1; (global void)
 0:9    Function Parameters: 
 0:9      'a' (in int)
 0:9      'b' (in bool)
-0:11  Function Definition: foo2(i1;u1; (global void)
+0:10  Function Definition: foo2(i1;u1; (global void)
 0:10    Function Parameters: 
 0:10      'a' (in int)
 0:10      'b' (in uint)
-0:12  Function Definition: foo2(i1;i1; (global void)
+0:11  Function Definition: foo2(i1;i1; (global void)
 0:11    Function Parameters: 
 0:11      'a' (in int)
 0:11      'b' (in int)
-0:13  Function Definition: foo2(i1;f1; (global void)
+0:12  Function Definition: foo2(i1;f1; (global void)
 0:12    Function Parameters: 
 0:12      'a' (in int)
 0:12      'b' (in float)
-0:16  Function Definition: foo2(i1;d1; (global void)
+0:13  Function Definition: foo2(i1;d1; (global void)
 0:13    Function Parameters: 
 0:13      'a' (in int)
 0:13      'b' (in double)
-0:17  Function Definition: foo3(b1; (global void)
+0:16  Function Definition: foo3(b1; (global void)
 0:16    Function Parameters: 
 0:16      'b' (in bool)
-0:18  Function Definition: foo4(u1; (global void)
+0:17  Function Definition: foo4(u1; (global void)
 0:17    Function Parameters: 
 0:17      'b' (in uint)
-0:19  Function Definition: foo5(i1; (global void)
+0:18  Function Definition: foo5(i1; (global void)
 0:18    Function Parameters: 
 0:18      'b' (in int)
-0:20  Function Definition: foo6(f1; (global void)
+0:19  Function Definition: foo6(f1; (global void)
 0:19    Function Parameters: 
 0:19      'b' (in float)
-0:23  Function Definition: foo7(d1; (global void)
+0:20  Function Definition: foo7(d1; (global void)
 0:20    Function Parameters: 
 0:20      'b' (in double)
-0:24  Function Definition: foo8(f1; (global void)
+0:23  Function Definition: foo8(f1; (global void)
 0:23    Function Parameters: 
 0:23      '' (in float)
-0:25  Function Definition: foo8(d1; (global void)
+0:24  Function Definition: foo8(d1; (global void)
 0:24    Function Parameters: 
 0:24      '' (in double)
-0:26  Function Definition: foo9(i1; (global void)
+0:25  Function Definition: foo9(i1; (global void)
 0:25    Function Parameters: 
 0:25      '' (in int)
-0:27  Function Definition: foo9(u1; (global void)
+0:26  Function Definition: foo9(u1; (global void)
 0:26    Function Parameters: 
 0:26      '' (in uint)
-0:28  Function Definition: foo10(b1; (global void)
+0:27  Function Definition: foo10(b1; (global void)
 0:27    Function Parameters: 
 0:27      '' (in bool)
-0:31  Function Definition: foo10(i1; (global void)
+0:28  Function Definition: foo10(i1; (global void)
 0:28    Function Parameters: 
 0:28      '' (in int)
-0:32  Function Definition: foo11(vf3; (global void)
+0:31  Function Definition: foo11(vf3; (global void)
 0:31    Function Parameters: 
 0:31      '' (in 3-component vector of float)
-0:33  Function Definition: foo11(d1; (global void)
+0:32  Function Definition: foo11(d1; (global void)
 0:32    Function Parameters: 
 0:32      '' (in double)
-0:34  Function Definition: foo11(vi3; (global void)
+0:33  Function Definition: foo11(vi3; (global void)
 0:33    Function Parameters: 
 0:33      '' (in 3-component vector of int)
-0:35  Function Definition: foo11(u1; (global void)
+0:34  Function Definition: foo11(u1; (global void)
 0:34    Function Parameters: 
 0:34      '' (in uint)
-0:36  Function Definition: foo12(vf1; (global void)
+0:35  Function Definition: foo12(vf1; (global void)
 0:35    Function Parameters: 
 0:35      '' (in 1-component vector of float)
-0:37  Function Definition: foo12(vd3; (global void)
+0:36  Function Definition: foo12(vd3; (global void)
 0:36    Function Parameters: 
 0:36      '' (in 3-component vector of double)
-0:38  Function Definition: foo16(u1; (global void)
+0:37  Function Definition: foo16(u1; (global void)
 0:37    Function Parameters: 
 0:37      '' (in uint)
-0:41  Function Definition: foo16(vu2; (global void)
+0:38  Function Definition: foo16(vu2; (global void)
 0:38    Function Parameters: 
 0:38      '' (in 2-component vector of uint)
-0:42  Function Definition: foo13(vf3; (global void)
+0:41  Function Definition: foo13(vf3; (global void)
 0:41    Function Parameters: 
 0:41      '' (in 3-component vector of float)
-0:43  Function Definition: foo14(vi1; (global void)
+0:42  Function Definition: foo14(vi1; (global void)
 0:42    Function Parameters: 
 0:42      '' (in 1-component vector of int)
-0:45  Function Definition: foo15(vb1; (global void)
+0:43  Function Definition: foo15(vb1; (global void)
 0:43    Function Parameters: 
 0:43      '' (in 1-component vector of bool)
-0:143  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:46  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:46    Function Parameters: 
 0:46      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -362,113 +362,113 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:3  Function Definition: foo1(d1;b1; (global void)
+0:2  Function Definition: foo1(d1;b1; (global void)
 0:2    Function Parameters: 
 0:2      'a' (in double)
 0:2      'b' (in bool)
-0:4  Function Definition: foo1(d1;u1; (global void)
+0:3  Function Definition: foo1(d1;u1; (global void)
 0:3    Function Parameters: 
 0:3      'a' (in double)
 0:3      'b' (in uint)
-0:5  Function Definition: foo1(d1;i1; (global void)
+0:4  Function Definition: foo1(d1;i1; (global void)
 0:4    Function Parameters: 
 0:4      'a' (in double)
 0:4      'b' (in int)
-0:6  Function Definition: foo1(d1;f1; (global void)
+0:5  Function Definition: foo1(d1;f1; (global void)
 0:5    Function Parameters: 
 0:5      'a' (in double)
 0:5      'b' (in float)
-0:9  Function Definition: foo1(d1;d1; (global void)
+0:6  Function Definition: foo1(d1;d1; (global void)
 0:6    Function Parameters: 
 0:6      'a' (in double)
 0:6      'b' (in double)
-0:10  Function Definition: foo2(i1;b1; (global void)
+0:9  Function Definition: foo2(i1;b1; (global void)
 0:9    Function Parameters: 
 0:9      'a' (in int)
 0:9      'b' (in bool)
-0:11  Function Definition: foo2(i1;u1; (global void)
+0:10  Function Definition: foo2(i1;u1; (global void)
 0:10    Function Parameters: 
 0:10      'a' (in int)
 0:10      'b' (in uint)
-0:12  Function Definition: foo2(i1;i1; (global void)
+0:11  Function Definition: foo2(i1;i1; (global void)
 0:11    Function Parameters: 
 0:11      'a' (in int)
 0:11      'b' (in int)
-0:13  Function Definition: foo2(i1;f1; (global void)
+0:12  Function Definition: foo2(i1;f1; (global void)
 0:12    Function Parameters: 
 0:12      'a' (in int)
 0:12      'b' (in float)
-0:16  Function Definition: foo2(i1;d1; (global void)
+0:13  Function Definition: foo2(i1;d1; (global void)
 0:13    Function Parameters: 
 0:13      'a' (in int)
 0:13      'b' (in double)
-0:17  Function Definition: foo3(b1; (global void)
+0:16  Function Definition: foo3(b1; (global void)
 0:16    Function Parameters: 
 0:16      'b' (in bool)
-0:18  Function Definition: foo4(u1; (global void)
+0:17  Function Definition: foo4(u1; (global void)
 0:17    Function Parameters: 
 0:17      'b' (in uint)
-0:19  Function Definition: foo5(i1; (global void)
+0:18  Function Definition: foo5(i1; (global void)
 0:18    Function Parameters: 
 0:18      'b' (in int)
-0:20  Function Definition: foo6(f1; (global void)
+0:19  Function Definition: foo6(f1; (global void)
 0:19    Function Parameters: 
 0:19      'b' (in float)
-0:23  Function Definition: foo7(d1; (global void)
+0:20  Function Definition: foo7(d1; (global void)
 0:20    Function Parameters: 
 0:20      'b' (in double)
-0:24  Function Definition: foo8(f1; (global void)
+0:23  Function Definition: foo8(f1; (global void)
 0:23    Function Parameters: 
 0:23      '' (in float)
-0:25  Function Definition: foo8(d1; (global void)
+0:24  Function Definition: foo8(d1; (global void)
 0:24    Function Parameters: 
 0:24      '' (in double)
-0:26  Function Definition: foo9(i1; (global void)
+0:25  Function Definition: foo9(i1; (global void)
 0:25    Function Parameters: 
 0:25      '' (in int)
-0:27  Function Definition: foo9(u1; (global void)
+0:26  Function Definition: foo9(u1; (global void)
 0:26    Function Parameters: 
 0:26      '' (in uint)
-0:28  Function Definition: foo10(b1; (global void)
+0:27  Function Definition: foo10(b1; (global void)
 0:27    Function Parameters: 
 0:27      '' (in bool)
-0:31  Function Definition: foo10(i1; (global void)
+0:28  Function Definition: foo10(i1; (global void)
 0:28    Function Parameters: 
 0:28      '' (in int)
-0:32  Function Definition: foo11(vf3; (global void)
+0:31  Function Definition: foo11(vf3; (global void)
 0:31    Function Parameters: 
 0:31      '' (in 3-component vector of float)
-0:33  Function Definition: foo11(d1; (global void)
+0:32  Function Definition: foo11(d1; (global void)
 0:32    Function Parameters: 
 0:32      '' (in double)
-0:34  Function Definition: foo11(vi3; (global void)
+0:33  Function Definition: foo11(vi3; (global void)
 0:33    Function Parameters: 
 0:33      '' (in 3-component vector of int)
-0:35  Function Definition: foo11(u1; (global void)
+0:34  Function Definition: foo11(u1; (global void)
 0:34    Function Parameters: 
 0:34      '' (in uint)
-0:36  Function Definition: foo12(vf1; (global void)
+0:35  Function Definition: foo12(vf1; (global void)
 0:35    Function Parameters: 
 0:35      '' (in 1-component vector of float)
-0:37  Function Definition: foo12(vd3; (global void)
+0:36  Function Definition: foo12(vd3; (global void)
 0:36    Function Parameters: 
 0:36      '' (in 3-component vector of double)
-0:38  Function Definition: foo16(u1; (global void)
+0:37  Function Definition: foo16(u1; (global void)
 0:37    Function Parameters: 
 0:37      '' (in uint)
-0:41  Function Definition: foo16(vu2; (global void)
+0:38  Function Definition: foo16(vu2; (global void)
 0:38    Function Parameters: 
 0:38      '' (in 2-component vector of uint)
-0:42  Function Definition: foo13(vf3; (global void)
+0:41  Function Definition: foo13(vf3; (global void)
 0:41    Function Parameters: 
 0:41      '' (in 3-component vector of float)
-0:43  Function Definition: foo14(vi1; (global void)
+0:42  Function Definition: foo14(vi1; (global void)
 0:42    Function Parameters: 
 0:42      '' (in 1-component vector of int)
-0:45  Function Definition: foo15(vb1; (global void)
+0:43  Function Definition: foo15(vb1; (global void)
 0:43    Function Parameters: 
 0:43      '' (in 1-component vector of bool)
-0:143  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:46  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:46    Function Parameters: 
 0:46      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out
index 94a061f5d06c3112849bdf6625050ae9cc8a2550..f8ed19e94b8098dc6dd98f6c79f99e9c16f57e76 100644
--- a/Test/baseResults/hlsl.pp.line.frag.out
+++ b/Test/baseResults/hlsl.pp.line.frag.out
@@ -2,7 +2,7 @@ hlsl.pp.line.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:131  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:4  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:4    Function Parameters: 
 0:?     Sequence
 0:124      Sequence
@@ -45,7 +45,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:131  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:4  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:4    Function Parameters: 
 0:?     Sequence
 0:124      Sequence
diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out
index 5144f9dfee15e878066ea50f8230734c4c350be6..d606cc96100764458ac96021b2ebc9d42ac57b4b 100755
--- a/Test/baseResults/hlsl.precedence.frag.out
+++ b/Test/baseResults/hlsl.precedence.frag.out
@@ -2,7 +2,7 @@ hlsl.precedence.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
+0:7  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:7    Function Parameters: 
 0:7      'a1' (layout(location=0 ) in 4-component vector of float)
 0:7      'a2' (layout(location=1 ) in 4-component vector of float)
@@ -54,7 +54,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
+0:7  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:7    Function Parameters: 
 0:7      'a1' (layout(location=0 ) in 4-component vector of float)
 0:7      'a2' (layout(location=1 ) in 4-component vector of float)
diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out
index 57fab462501dbcde68f178dae8d250d718758019..3218c792b9fb4c7f25db757efb4dc1573cd3f46f 100755
--- a/Test/baseResults/hlsl.precedence2.frag.out
+++ b/Test/baseResults/hlsl.precedence2.frag.out
@@ -2,7 +2,7 @@ hlsl.precedence2.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
+0:7  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
 0:7    Function Parameters: 
 0:7      'a1' (layout(location=0 ) in int)
 0:7      'a2' (layout(location=1 ) in int)
@@ -37,7 +37,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
+0:7  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
 0:7    Function Parameters: 
 0:7      'a1' (layout(location=0 ) in int)
 0:7      'a2' (layout(location=1 ) in int)
diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out
index 1cf38b36e16e6ae62b7ee2b904de98e52cbdd54e..a3a780b1bd31eb311a4dae8e30b1ad693fffa086 100644
--- a/Test/baseResults/hlsl.precise.frag.out
+++ b/Test/baseResults/hlsl.precise.frag.out
@@ -2,11 +2,11 @@ hlsl.precise.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:8  Function Definition: MyFunction(f1;vf3; (global void)
+0:6  Function Definition: MyFunction(f1;vf3; (global void)
 0:6    Function Parameters: 
 0:6      'myfloat' (noContraction in float)
 0:6      'myfloat3' (noContraction out 3-component vector of float)
-0:15  Function Definition: main( (global structure{noContraction temp 4-component vector of float color})
+0:9  Function Definition: main( (global structure{noContraction temp 4-component vector of float color})
 0:9    Function Parameters: 
 0:?     Sequence
 0:11      move second child to first child (noContraction temp 4-component vector of float)
@@ -34,11 +34,11 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:8  Function Definition: MyFunction(f1;vf3; (global void)
+0:6  Function Definition: MyFunction(f1;vf3; (global void)
 0:6    Function Parameters: 
 0:6      'myfloat' (noContraction in float)
 0:6      'myfloat3' (noContraction out 3-component vector of float)
-0:15  Function Definition: main( (global structure{noContraction temp 4-component vector of float color})
+0:9  Function Definition: main( (global structure{noContraction temp 4-component vector of float color})
 0:9    Function Parameters: 
 0:?     Sequence
 0:11      move second child to first child (noContraction temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out
index 5586d57ad471bc2fc32210a68a3015b7d0067f4e..fbad6bc00fe148cd63e46521820dbf47106dc84b 100644
--- a/Test/baseResults/hlsl.promotions.frag.out
+++ b/Test/baseResults/hlsl.promotions.frag.out
@@ -2,22 +2,22 @@ hlsl.promotions.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:20  Function Definition: Fn_F3(vf3; (global void)
+0:19  Function Definition: Fn_F3(vf3; (global void)
 0:19    Function Parameters: 
 0:19      'x' (in 3-component vector of float)
-0:21  Function Definition: Fn_I3(vi3; (global void)
+0:20  Function Definition: Fn_I3(vi3; (global void)
 0:20    Function Parameters: 
 0:20      'x' (in 3-component vector of int)
-0:22  Function Definition: Fn_U3(vu3; (global void)
+0:21  Function Definition: Fn_U3(vu3; (global void)
 0:21    Function Parameters: 
 0:21      'x' (in 3-component vector of uint)
-0:23  Function Definition: Fn_B3(vb3; (global void)
+0:22  Function Definition: Fn_B3(vb3; (global void)
 0:22    Function Parameters: 
 0:22      'x' (in 3-component vector of bool)
-0:26  Function Definition: Fn_D3(vd3; (global void)
+0:23  Function Definition: Fn_D3(vd3; (global void)
 0:23    Function Parameters: 
 0:23      'x' (in 3-component vector of double)
-0:27  Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float)
+0:26  Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float)
 0:26    Function Parameters: 
 0:26      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -28,7 +28,7 @@ gl_FragCoord origin is upper left
 0:26      Branch: Return with expression
 0:26        Convert int to float (temp 3-component vector of float)
 0:26          'i3' (uniform 3-component vector of int)
-0:28  Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float)
+0:27  Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float)
 0:27    Function Parameters: 
 0:27      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -39,7 +39,7 @@ gl_FragCoord origin is upper left
 0:27      Branch: Return with expression
 0:27        Convert uint to float (temp 3-component vector of float)
 0:27          'u3' (uniform 3-component vector of uint)
-0:29  Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float)
+0:28  Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float)
 0:28    Function Parameters: 
 0:28      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
 0:28      Branch: Return with expression
 0:28        Convert bool to float (temp 3-component vector of float)
 0:28          'b3' (uniform 3-component vector of bool)
-0:31  Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float)
+0:29  Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float)
 0:29    Function Parameters: 
 0:29      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -61,7 +61,7 @@ gl_FragCoord origin is upper left
 0:29      Branch: Return with expression
 0:29        Convert double to float (temp 3-component vector of float)
 0:29          'd3' (uniform 3-component vector of double)
-0:32  Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int)
+0:31  Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int)
 0:31    Function Parameters: 
 0:31      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
 0:31      Branch: Return with expression
 0:31        Convert uint to int (temp 3-component vector of int)
 0:31          'u3' (uniform 3-component vector of uint)
-0:33  Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int)
+0:32  Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int)
 0:32    Function Parameters: 
 0:32      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -83,7 +83,7 @@ gl_FragCoord origin is upper left
 0:32      Branch: Return with expression
 0:32        Convert bool to int (temp 3-component vector of int)
 0:32          'b3' (uniform 3-component vector of bool)
-0:34  Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int)
+0:33  Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int)
 0:33    Function Parameters: 
 0:33      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -94,7 +94,7 @@ gl_FragCoord origin is upper left
 0:33      Branch: Return with expression
 0:33        Convert float to int (temp 3-component vector of int)
 0:33          'f3' (uniform 3-component vector of float)
-0:36  Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int)
+0:34  Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int)
 0:34    Function Parameters: 
 0:34      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -105,7 +105,7 @@ gl_FragCoord origin is upper left
 0:34      Branch: Return with expression
 0:34        Convert double to int (temp 3-component vector of int)
 0:34          'd3' (uniform 3-component vector of double)
-0:37  Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint)
+0:36  Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint)
 0:36    Function Parameters: 
 0:36      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -116,7 +116,7 @@ gl_FragCoord origin is upper left
 0:36      Branch: Return with expression
 0:36        Convert int to uint (temp 3-component vector of uint)
 0:36          'i3' (uniform 3-component vector of int)
-0:38  Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint)
+0:37  Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint)
 0:37    Function Parameters: 
 0:37      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -127,7 +127,7 @@ gl_FragCoord origin is upper left
 0:37      Branch: Return with expression
 0:37        Convert float to uint (temp 3-component vector of uint)
 0:37          'f3' (uniform 3-component vector of float)
-0:39  Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint)
+0:38  Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint)
 0:38    Function Parameters: 
 0:38      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -138,7 +138,7 @@ gl_FragCoord origin is upper left
 0:38      Branch: Return with expression
 0:38        Convert bool to uint (temp 3-component vector of uint)
 0:38          'b3' (uniform 3-component vector of bool)
-0:41  Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint)
+0:39  Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint)
 0:39    Function Parameters: 
 0:39      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
 0:39      Branch: Return with expression
 0:39        Convert double to uint (temp 3-component vector of uint)
 0:39          'd3' (uniform 3-component vector of double)
-0:42  Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool)
+0:41  Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool)
 0:41    Function Parameters: 
 0:41      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -160,7 +160,7 @@ gl_FragCoord origin is upper left
 0:41      Branch: Return with expression
 0:41        Convert int to bool (temp 3-component vector of bool)
 0:41          'i3' (uniform 3-component vector of int)
-0:43  Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool)
+0:42  Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool)
 0:42    Function Parameters: 
 0:42      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -171,7 +171,7 @@ gl_FragCoord origin is upper left
 0:42      Branch: Return with expression
 0:42        Convert uint to bool (temp 3-component vector of bool)
 0:42          'u3' (uniform 3-component vector of uint)
-0:44  Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool)
+0:43  Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool)
 0:43    Function Parameters: 
 0:43      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -182,7 +182,7 @@ gl_FragCoord origin is upper left
 0:43      Branch: Return with expression
 0:43        Convert float to bool (temp 3-component vector of bool)
 0:43          'f3' (uniform 3-component vector of float)
-0:46  Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool)
+0:44  Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool)
 0:44    Function Parameters: 
 0:44      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -193,7 +193,7 @@ gl_FragCoord origin is upper left
 0:44      Branch: Return with expression
 0:44        Convert double to bool (temp 3-component vector of bool)
 0:44          'd3' (uniform 3-component vector of double)
-0:47  Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double)
+0:46  Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double)
 0:46    Function Parameters: 
 0:46      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -204,7 +204,7 @@ gl_FragCoord origin is upper left
 0:46      Branch: Return with expression
 0:46        Convert int to double (temp 3-component vector of double)
 0:46          'i3' (uniform 3-component vector of int)
-0:48  Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double)
+0:47  Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double)
 0:47    Function Parameters: 
 0:47      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -215,7 +215,7 @@ gl_FragCoord origin is upper left
 0:47      Branch: Return with expression
 0:47        Convert uint to double (temp 3-component vector of double)
 0:47          'u3' (uniform 3-component vector of uint)
-0:49  Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double)
+0:48  Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double)
 0:48    Function Parameters: 
 0:48      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -226,7 +226,7 @@ gl_FragCoord origin is upper left
 0:48      Branch: Return with expression
 0:48        Convert bool to double (temp 3-component vector of double)
 0:48          'b3' (uniform 3-component vector of bool)
-0:51  Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double)
+0:49  Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double)
 0:49    Function Parameters: 
 0:49      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -237,7 +237,7 @@ gl_FragCoord origin is upper left
 0:49      Branch: Return with expression
 0:49        Convert float to double (temp 3-component vector of double)
 0:49          'f3' (uniform 3-component vector of float)
-0:202  Function Definition: main( (global structure{temp 4-component vector of float Color})
+0:52  Function Definition: main( (global structure{temp 4-component vector of float Color})
 0:52    Function Parameters: 
 0:?     Sequence
 0:54      Sequence
@@ -520,22 +520,22 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:20  Function Definition: Fn_F3(vf3; (global void)
+0:19  Function Definition: Fn_F3(vf3; (global void)
 0:19    Function Parameters: 
 0:19      'x' (in 3-component vector of float)
-0:21  Function Definition: Fn_I3(vi3; (global void)
+0:20  Function Definition: Fn_I3(vi3; (global void)
 0:20    Function Parameters: 
 0:20      'x' (in 3-component vector of int)
-0:22  Function Definition: Fn_U3(vu3; (global void)
+0:21  Function Definition: Fn_U3(vu3; (global void)
 0:21    Function Parameters: 
 0:21      'x' (in 3-component vector of uint)
-0:23  Function Definition: Fn_B3(vb3; (global void)
+0:22  Function Definition: Fn_B3(vb3; (global void)
 0:22    Function Parameters: 
 0:22      'x' (in 3-component vector of bool)
-0:26  Function Definition: Fn_D3(vd3; (global void)
+0:23  Function Definition: Fn_D3(vd3; (global void)
 0:23    Function Parameters: 
 0:23      'x' (in 3-component vector of double)
-0:27  Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float)
+0:26  Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float)
 0:26    Function Parameters: 
 0:26      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -546,7 +546,7 @@ gl_FragCoord origin is upper left
 0:26      Branch: Return with expression
 0:26        Convert int to float (temp 3-component vector of float)
 0:26          'i3' (uniform 3-component vector of int)
-0:28  Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float)
+0:27  Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float)
 0:27    Function Parameters: 
 0:27      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -557,7 +557,7 @@ gl_FragCoord origin is upper left
 0:27      Branch: Return with expression
 0:27        Convert uint to float (temp 3-component vector of float)
 0:27          'u3' (uniform 3-component vector of uint)
-0:29  Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float)
+0:28  Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float)
 0:28    Function Parameters: 
 0:28      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -568,7 +568,7 @@ gl_FragCoord origin is upper left
 0:28      Branch: Return with expression
 0:28        Convert bool to float (temp 3-component vector of float)
 0:28          'b3' (uniform 3-component vector of bool)
-0:31  Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float)
+0:29  Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float)
 0:29    Function Parameters: 
 0:29      'p' (out 3-component vector of float)
 0:?     Sequence
@@ -579,7 +579,7 @@ gl_FragCoord origin is upper left
 0:29      Branch: Return with expression
 0:29        Convert double to float (temp 3-component vector of float)
 0:29          'd3' (uniform 3-component vector of double)
-0:32  Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int)
+0:31  Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int)
 0:31    Function Parameters: 
 0:31      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -590,7 +590,7 @@ gl_FragCoord origin is upper left
 0:31      Branch: Return with expression
 0:31        Convert uint to int (temp 3-component vector of int)
 0:31          'u3' (uniform 3-component vector of uint)
-0:33  Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int)
+0:32  Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int)
 0:32    Function Parameters: 
 0:32      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -601,7 +601,7 @@ gl_FragCoord origin is upper left
 0:32      Branch: Return with expression
 0:32        Convert bool to int (temp 3-component vector of int)
 0:32          'b3' (uniform 3-component vector of bool)
-0:34  Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int)
+0:33  Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int)
 0:33    Function Parameters: 
 0:33      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -612,7 +612,7 @@ gl_FragCoord origin is upper left
 0:33      Branch: Return with expression
 0:33        Convert float to int (temp 3-component vector of int)
 0:33          'f3' (uniform 3-component vector of float)
-0:36  Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int)
+0:34  Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int)
 0:34    Function Parameters: 
 0:34      'p' (out 3-component vector of int)
 0:?     Sequence
@@ -623,7 +623,7 @@ gl_FragCoord origin is upper left
 0:34      Branch: Return with expression
 0:34        Convert double to int (temp 3-component vector of int)
 0:34          'd3' (uniform 3-component vector of double)
-0:37  Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint)
+0:36  Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint)
 0:36    Function Parameters: 
 0:36      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -634,7 +634,7 @@ gl_FragCoord origin is upper left
 0:36      Branch: Return with expression
 0:36        Convert int to uint (temp 3-component vector of uint)
 0:36          'i3' (uniform 3-component vector of int)
-0:38  Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint)
+0:37  Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint)
 0:37    Function Parameters: 
 0:37      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -645,7 +645,7 @@ gl_FragCoord origin is upper left
 0:37      Branch: Return with expression
 0:37        Convert float to uint (temp 3-component vector of uint)
 0:37          'f3' (uniform 3-component vector of float)
-0:39  Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint)
+0:38  Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint)
 0:38    Function Parameters: 
 0:38      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -656,7 +656,7 @@ gl_FragCoord origin is upper left
 0:38      Branch: Return with expression
 0:38        Convert bool to uint (temp 3-component vector of uint)
 0:38          'b3' (uniform 3-component vector of bool)
-0:41  Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint)
+0:39  Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint)
 0:39    Function Parameters: 
 0:39      'p' (out 3-component vector of uint)
 0:?     Sequence
@@ -667,7 +667,7 @@ gl_FragCoord origin is upper left
 0:39      Branch: Return with expression
 0:39        Convert double to uint (temp 3-component vector of uint)
 0:39          'd3' (uniform 3-component vector of double)
-0:42  Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool)
+0:41  Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool)
 0:41    Function Parameters: 
 0:41      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -678,7 +678,7 @@ gl_FragCoord origin is upper left
 0:41      Branch: Return with expression
 0:41        Convert int to bool (temp 3-component vector of bool)
 0:41          'i3' (uniform 3-component vector of int)
-0:43  Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool)
+0:42  Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool)
 0:42    Function Parameters: 
 0:42      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -689,7 +689,7 @@ gl_FragCoord origin is upper left
 0:42      Branch: Return with expression
 0:42        Convert uint to bool (temp 3-component vector of bool)
 0:42          'u3' (uniform 3-component vector of uint)
-0:44  Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool)
+0:43  Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool)
 0:43    Function Parameters: 
 0:43      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -700,7 +700,7 @@ gl_FragCoord origin is upper left
 0:43      Branch: Return with expression
 0:43        Convert float to bool (temp 3-component vector of bool)
 0:43          'f3' (uniform 3-component vector of float)
-0:46  Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool)
+0:44  Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool)
 0:44    Function Parameters: 
 0:44      'p' (out 3-component vector of bool)
 0:?     Sequence
@@ -711,7 +711,7 @@ gl_FragCoord origin is upper left
 0:44      Branch: Return with expression
 0:44        Convert double to bool (temp 3-component vector of bool)
 0:44          'd3' (uniform 3-component vector of double)
-0:47  Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double)
+0:46  Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double)
 0:46    Function Parameters: 
 0:46      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -722,7 +722,7 @@ gl_FragCoord origin is upper left
 0:46      Branch: Return with expression
 0:46        Convert int to double (temp 3-component vector of double)
 0:46          'i3' (uniform 3-component vector of int)
-0:48  Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double)
+0:47  Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double)
 0:47    Function Parameters: 
 0:47      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -733,7 +733,7 @@ gl_FragCoord origin is upper left
 0:47      Branch: Return with expression
 0:47        Convert uint to double (temp 3-component vector of double)
 0:47          'u3' (uniform 3-component vector of uint)
-0:49  Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double)
+0:48  Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double)
 0:48    Function Parameters: 
 0:48      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -744,7 +744,7 @@ gl_FragCoord origin is upper left
 0:48      Branch: Return with expression
 0:48        Convert bool to double (temp 3-component vector of double)
 0:48          'b3' (uniform 3-component vector of bool)
-0:51  Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double)
+0:49  Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double)
 0:49    Function Parameters: 
 0:49      'p' (out 3-component vector of double)
 0:?     Sequence
@@ -755,7 +755,7 @@ gl_FragCoord origin is upper left
 0:49      Branch: Return with expression
 0:49        Convert float to double (temp 3-component vector of double)
 0:49          'f3' (uniform 3-component vector of float)
-0:202  Function Definition: main( (global structure{temp 4-component vector of float Color})
+0:52  Function Definition: main( (global structure{temp 4-component vector of float Color})
 0:52    Function Parameters: 
 0:?     Sequence
 0:54      Sequence
diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out
index 9d367f09c9c97e974fced6ce51d0146f3618acc9..2caeb72e85765b036bd73118294546b17cad3b99 100644
--- a/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.sample.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
@@ -146,7 +146,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index 4423c5c31d8808b6f52d9e7cd0dccc9b50e30034..73c397849b79548f83f6ad80ed0a291da43ee2a1 100644
--- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:91  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:53  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:53    Function Parameters: 
 0:?     Sequence
 0:57      move second child to first child (temp int)
@@ -261,7 +261,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:91  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:53  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:53    Function Parameters: 
 0:?     Sequence
 0:57      move second child to first child (temp int)
diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index 8084650933531fa4b3922692a3e86e44eea55f0e..ec030678139dd01b1cb699ef92a38cf766937173 100644
--- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.sample.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
@@ -167,7 +167,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index 3887bbab7ffaa6db05fac754ac843d73a0919ff1..e9ab2c702e939b1d567dcce2bfbf40c832835241 100644
--- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.sample.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:23      Sequence
@@ -122,7 +122,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:23      Sequence
diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index 6ed1f206fd24308f5a70a75ec27f0f51381a4f27..b50661151f5ccaf10fc5c30c780ecd63f20e2540 100644
--- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplebias.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
@@ -164,7 +164,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index 26ebe477ad39312d4211fc5b5f9d08183b24081a..bd0263ca5dad4033f87801b48e9df725dd6cd7cc 100644
--- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplebias.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:52  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
@@ -197,7 +197,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:52  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index c7e379dec7536e12416b092ed5edb4b51bebf3bc..a6bca8b8933779ee39d4d5b820f70a684f3f0fbe 100644
--- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplebias.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
@@ -185,7 +185,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index d2955b0a864e791a74a13293df34c10c498d28f1..908fda0ce1067ff0c1e5f9e04611f1559bea8543 100644
--- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplebias.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:23      Sequence
@@ -134,7 +134,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:23      Sequence
diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
index 847e29165e06c3f96d4fe0c4e4ea9e66af865464..ed4c1bf64771008fd772d8a36213a349df6d2cda 100644
--- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmp.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:61  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -184,7 +184,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:61  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
index ab624e24ff2867e9c6f383946d93495b83448082..b6ff4eb4b110d3165b0bac946beff1a4aaa2a41a 100644
--- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmp.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:62  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -175,7 +175,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:62  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
index 3c5a9143a9d5f4707fab28a4f8a8372a87cab50f..47bd5d910c33b7bd923fc860729b3cba7d8a3c1b 100644
--- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmp.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:67  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -148,7 +148,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:67  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
index 84918d0da2b03aa3895d447db846d450fe803fcd..7eba5d3f8bc7087508760a4ae2f8007eb46d3854 100644
--- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmp.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:68  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -154,7 +154,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:68  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
index e8e2603f1375cede346c6445e3d2adf5470459c7..1f0fda7de68b3a9dd1fca9475207c81241b33ce4 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:61  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -202,7 +202,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:61  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
index a1f48e6c41eb02c43c73cfb51bccb65f40277f1d..14dd752ca9225e68355750ba76a3bf6a01eac351 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:62  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -193,7 +193,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:62  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
index d9563a7200b384be03423ae19d7a8e5f3192f60c..ac223cb06351f3d3da7d1e54e9c583d32ff9ac3c 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:67  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -160,7 +160,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:67  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
index 9e04bb0f97e46d3f2b0f27e4712248b33b412c84..764d0dc42de59833dc47fa300c435ce96b48ffa0 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:68  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
@@ -166,7 +166,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:68  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:38    Function Parameters: 
 0:?     Sequence
 0:42      Sequence
diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index 10fa479263cca017235134e5da3e8b1504247ba6..27a2a42a8bfa91c495d11021e158477b8d52facc 100644
--- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplegrad.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
@@ -200,7 +200,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index 4580f21f06f8e8ef0966bf7a17766328227f3aa4..ce6d6efa9295c803ba53886c3c18e63a4db99768 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplegrad.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:52  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
@@ -251,7 +251,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:52  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index c5fbcaa3a732c7db562ae1ce0873d4542bc65b57..5943081cf9ea3789e2077697b51f1fedaec9a94c 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -1,7 +1,7 @@
 hlsl.samplegrad.basic.dx10.vert
 Shader version: 450
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:27  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:27    Function Parameters: 
 0:?     Sequence
 0:30      Sequence
@@ -242,7 +242,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:27  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:27    Function Parameters: 
 0:?     Sequence
 0:30      Sequence
diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index ad1adae72aa231562f346cba673dca81e190bec5..348d27ad61d9f153f0cf136b8e8ecf2a99ca1d6d 100644
--- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplegrad.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
@@ -221,7 +221,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index d1dd59ec6a90b6ef2ac6f71f11bf81cbe9515d94..9aeaeddd7853b3dce3d9551cc38f6b3efca10c22 100644
--- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplegrad.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:40  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
@@ -155,7 +155,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:40  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
index 246fb89b05b42364b7de8aa12c80306c0bc15ab4..59beba60596259ea845fd565189dff9d1ab0e3df 100644
--- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplelevel.array.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
@@ -164,7 +164,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:44  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:24    Function Parameters: 
 0:?     Sequence
 0:27      Sequence
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
index 230eb9e7e323c6652b5274dac9727b4f1329d00e..a7e26ca82f353b0192f2752dc3c94ef3b0d51a76 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplelevel.basic.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:53  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:29    Function Parameters: 
 0:?     Sequence
 0:32      Sequence
@@ -198,7 +198,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:53  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:29    Function Parameters: 
 0:?     Sequence
 0:32      Sequence
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
index a04ef218785b10d1ec8106f24a495f1dbdf78cbc..f1fef1f693e60b29bfc878ecb8542611535464d2 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -1,7 +1,7 @@
 hlsl.samplelevel.basic.dx10.vert
 Shader version: 450
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:27  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:27    Function Parameters: 
 0:?     Sequence
 0:30      Sequence
@@ -188,7 +188,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
+0:27  Function Definition: main( (global structure{temp 4-component vector of float Position Pos})
 0:27    Function Parameters: 
 0:?     Sequence
 0:30      Sequence
diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
index 71be1ef1c131ba5d157df13c29fbed643890a636..608fd0cedf8c31396109d651aeeef8b1034ebebd 100644
--- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplelevel.offset.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
@@ -185,7 +185,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:50  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:28    Function Parameters: 
 0:?     Sequence
 0:31      Sequence
diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
index ffe344d6108c196c015aebe545db4b75e3229791..e762d59d365e6563ae2e98db12bb4bc8844e2f97 100644
--- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -2,7 +2,7 @@ hlsl.samplelevel.offsetarray.dx10.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:23      Sequence
@@ -134,7 +134,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:38  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20  Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
 0:20    Function Parameters: 
 0:?     Sequence
 0:23      Sequence
diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out
index ba0c2d53a36e1e966329895bd35b8255e92dd2a6..49dd577d73deca00100f2d324c2c4b481e5fb9a6 100755
--- a/Test/baseResults/hlsl.scope.frag.out
+++ b/Test/baseResults/hlsl.scope.frag.out
@@ -2,7 +2,7 @@ hlsl.scope.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:31  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -46,7 +46,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:31  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out
index 53c599eb7f534d10cd2d19f52a2376185d2bf107..91b88fd4839b63b9b8462daf2ec79083b9ff118e 100644
--- a/Test/baseResults/hlsl.semicolons.frag.out
+++ b/Test/baseResults/hlsl.semicolons.frag.out
@@ -2,11 +2,11 @@ hlsl.semicolons.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:4  Function Definition: MyFunc( (global void)
+0:2  Function Definition: MyFunc( (global void)
 0:2    Function Parameters: 
 0:8  Function Definition: MyFunc2( (global void)
 0:8    Function Parameters: 
-0:18  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:13  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:13    Function Parameters: 
 0:?     Sequence
 0:16      move second child to first child (temp 4-component vector of float)
@@ -33,11 +33,11 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:4  Function Definition: MyFunc( (global void)
+0:2  Function Definition: MyFunc( (global void)
 0:2    Function Parameters: 
 0:8  Function Definition: MyFunc2( (global void)
 0:8    Function Parameters: 
-0:18  Function Definition: main( (global structure{temp 4-component vector of float color})
+0:13  Function Definition: main( (global structure{temp 4-component vector of float color})
 0:13    Function Parameters: 
 0:?     Sequence
 0:16      move second child to first child (temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out
index 84b3922727cbec04814b700b37e37020e7d6bee8..beeda4ae56e747f0732dfd0eb53e6a5e882548c9 100755
--- a/Test/baseResults/hlsl.shapeConv.frag.out
+++ b/Test/baseResults/hlsl.shapeConv.frag.out
@@ -2,7 +2,7 @@ hlsl.shapeConv.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:23  Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:2      'f' (in float)
@@ -93,7 +93,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:23  Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:2      'f' (in float)
diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out
index c32282bead80b3b957f51186084ac80310eca29e..87c26bcaec5ee7709508040ecdac4292fe59ed98 100755
--- a/Test/baseResults/hlsl.sin.frag.out
+++ b/Test/baseResults/hlsl.sin.frag.out
@@ -2,7 +2,7 @@ hlsl.sin.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -21,7 +21,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out
index 2cf9dc0a8cc56f243f832078816a1baddaeeed85..7cfd2d52c92dde25615d048f51a56266d9b4d9d7 100644
--- a/Test/baseResults/hlsl.stringtoken.frag.out
+++ b/Test/baseResults/hlsl.stringtoken.frag.out
@@ -2,7 +2,7 @@ hlsl.stringtoken.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:21  Function Definition: main( (global structure{temp 4-component vector of float Color})
+0:16  Function Definition: main( (global structure{temp 4-component vector of float Color})
 0:16    Function Parameters: 
 0:?     Sequence
 0:18      move second child to first child (temp 4-component vector of float)
@@ -31,7 +31,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:21  Function Definition: main( (global structure{temp 4-component vector of float Color})
+0:16  Function Definition: main( (global structure{temp 4-component vector of float Color})
 0:16    Function Parameters: 
 0:?     Sequence
 0:18      move second child to first child (temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out
index a1c23a276e90df966aa8b0e55729f0a55a50b0d0..70287ec0469a09eeaed64ecd00565951acda7848 100755
--- a/Test/baseResults/hlsl.struct.frag.out
+++ b/Test/baseResults/hlsl.struct.frag.out
@@ -6,7 +6,7 @@ WARNING: 0:30: 'register' : ignoring shader_profile
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:43  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:34  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:34    Function Parameters: 
 0:34      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -41,7 +41,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:43  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:34  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:34    Function Parameters: 
 0:34      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out
index ac46f01b93e94b971a751d8eb2109f7db4f0596b..241dec3ce38f38612ae68f58f43521debd856cd6 100755
--- a/Test/baseResults/hlsl.switch.frag.out
+++ b/Test/baseResults/hlsl.switch.frag.out
@@ -2,7 +2,7 @@ hlsl.switch.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:2      'c' (layout(location=1 ) in int)
@@ -133,7 +133,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:2      'c' (layout(location=1 ) in int)
diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out
index accf27b7d20a39067d99279f23c657b6dd4cf909..0bc4bd069b2aff841c27a7eaa7f7b59ee7660fc1 100755
--- a/Test/baseResults/hlsl.swizzle.frag.out
+++ b/Test/baseResults/hlsl.swizzle.frag.out
@@ -10,7 +10,7 @@ gl_FragCoord origin is upper left
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:7  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:4  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:7  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:4  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out
index 06f3f480b7219e034f0513f1ef412aa5d5aba641..1cbd292e64c54a2d52beb687db610f0b2c0a8d16 100644
--- a/Test/baseResults/hlsl.templatetypes.frag.out
+++ b/Test/baseResults/hlsl.templatetypes.frag.out
@@ -2,7 +2,7 @@ hlsl.templatetypes.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:48  Function Definition: PixelShaderFunction( (global float)
+0:3  Function Definition: PixelShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      Sequence
@@ -254,7 +254,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:48  Function Definition: PixelShaderFunction( (global float)
+0:3  Function Definition: PixelShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      Sequence
diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out
index 8e0c4290b41c73b7eb8bbcb3308ca48de307f5b6..0600873f509d9f7ff571ae7479d4b80f66acaebd 100755
--- a/Test/baseResults/hlsl.typedef.frag.out
+++ b/Test/baseResults/hlsl.typedef.frag.out
@@ -2,7 +2,7 @@ hlsl.typedef.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float)
+0:4  Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
 0:4      'ii' (in int)
@@ -43,7 +43,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float)
+0:4  Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
 0:4      'ii' (in int)
diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out
index df1ef864803b350570f44b2fc4dbbb37295bead7..f9e0eaf1a4bed9a11cfa9e2e237458b253c09635 100755
--- a/Test/baseResults/hlsl.void.frag.out
+++ b/Test/baseResults/hlsl.void.frag.out
@@ -2,11 +2,11 @@ hlsl.void.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:2  Function Definition: foo1( (global void)
+0:1  Function Definition: foo1( (global void)
 0:1    Function Parameters: 
-0:4  Function Definition: foo2( (global void)
+0:2  Function Definition: foo2( (global void)
 0:2    Function Parameters: 
-0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:5    Function Parameters: 
 0:5      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -21,11 +21,11 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:2  Function Definition: foo1( (global void)
+0:1  Function Definition: foo1( (global void)
 0:1    Function Parameters: 
-0:4  Function Definition: foo2( (global void)
+0:2  Function Definition: foo2( (global void)
 0:2    Function Parameters: 
-0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:5    Function Parameters: 
 0:5      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out
index 564c74c4e7c05a55487502450b8813ad0940bd22..cd88050b0f02df39e3199232e69f6cecb4f33347 100755
--- a/Test/baseResults/hlsl.whileLoop.frag.out
+++ b/Test/baseResults/hlsl.whileLoop.frag.out
@@ -2,7 +2,7 @@ hlsl.whileLoop.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
@@ -42,7 +42,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (layout(location=0 ) in 4-component vector of float)
 0:?     Sequence
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index 3669b520d550101ba5d5818918ece1c090fbb593..192e28ae6ab7f330b73926c4a1e30358a306bf8e 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -1497,15 +1497,16 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function)
 bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node)
 {
     TFunction* functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */);
+    TSourceLoc loc = token.loc;
 
     // This does a pushScope()
-    node = parseContext.handleFunctionDefinition(token.loc, *functionDeclarator);
+    node = parseContext.handleFunctionDefinition(loc, *functionDeclarator);
 
     // compound_statement
     TIntermNode* functionBody = nullptr;
     if (acceptCompoundStatement(functionBody)) {
         node = intermediate.growAggregate(node, functionBody);
-        intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), token.loc);
+        intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), loc);
         node->getAsAggregate()->setName(functionDeclarator->getMangledName().c_str());
         parseContext.popScope();